Articulo de referencia

Comparación de implementaciones de MQTT

MQTT es un estándar ISO (ISO/IEC PRF 20922) [ 1 ] de protocolo de mensajería basado en publicación-suscripción . Funciona sobre el conjunto de protocolos de Internet TCP/IP. Est...

MQTT es un estándar ISO (ISO/IEC PRF 20922) [ 1 ] de protocolo de mensajería basado en publicación-suscripción . Funciona sobre el conjunto de protocolos de Internet TCP/IP. Está diseñado para conexiones con ubicaciones remotas donde se requiere una "huella de código pequeña" o el ancho de banda de la red es limitado. El patrón de mensajería de publicación-suscripción requiere un intermediario de mensajes .

Todas las categorías de comparación utilizan la versión estable de cada implementación que se detalla en la sección de descripción general. La comparación se limita a las características relacionadas con el protocolo MQTT.

Descripción general

La siguiente tabla enumera tanto las bibliotecas como las implementaciones de MQTT, junto con información general sobre cada una.

En GitHub se puede encontrar una lista más completa de implementaciones de MQTT .

Soporte de protocolo

Actualmente existen varias versiones estandarizadas del protocolo MQTT . A continuación, se presenta una lista con las versiones más recientes del protocolo MQTT , junto con la organización que las estandarizó.

La siguiente tabla enumera las versiones de MQTT que admite cada implementación, así como su compatibilidad con SSL/TLS y TCP . La seguridad que proporciona SSL/TLS puede ser deseable según el tipo de tráfico que se envíe entre dispositivos, ya que MQTT transmite mensajes sin cifrar . [ 77 ]

Niveles de calidad del servicio ofrecido

En la página de MQTT , la calidad del servicio (QoS) se describe como:

La calidad del servicio se refiere a los mecanismos de priorización del tráfico y control de la reserva de recursos, más que a la calidad del servicio en sí. La calidad del servicio es la capacidad de asignar diferentes prioridades a diferentes aplicaciones, usuarios o flujos de datos, o de garantizar un determinado nivel de rendimiento a un flujo de datos.

A continuación se describe cada nivel de QoS. [ 88 ]

  1. Como máximo una entrega (enviar y olvidar).
  2. Al menos una entrega (entrega confirmada)
  3. Una sola entrega (entrega garantizada)

La siguiente tabla enumera el nivel de compatibilidad de QoS de cada implementación.

Preocupaciones sobre la portabilidad

En esta sección, las consideraciones sobre portabilidad se refieren a detalles técnicos que pueden ser factores decisivos a la hora de seleccionar una implementación. En general, esta tabla debería ser utilizada por quienes tengan un mayor conocimiento del dispositivo que van a usar.

Requisitos generales

La tabla que aparece a continuación muestra varios requisitos que pueden resultar útiles a la hora de decidir qué implementación utilizar para un dispositivo.

Referencias

  1. "ISO/IEC 20922:2016 Tecnología de la información – Transporte de telemetría de cola de mensajes (MQTT) v3.1.1" . iso.org . Organización Internacional de Normalización . 15 de junio de 2016.
  2. "Descripción general" . Sistema de aprendizaje de Adafruit .
  3. "Documentación de la API REST de Adafruit IO" . io.adafruit.com .
  4. ^ "Amlen " . eclipse.org/amlen .
  5. "Documentación de la API REST de Azure Event Grid" . 31 de octubre de 2023.
  6. "CoreFlux" . coreflux.org .
  7. "Notas de la versión de Coreflux Broker" . 10 de enero de 2024.
  8. "EMQX" . emqx.io .
  9. "Aviso sobre el fin del ciclo de vida de la versión de código abierto EMQX 5.8 y la estrategia futura del producto " . emqx.com
  10. "EMQ X - Erlang MQTT Broker — Documentación de EMQ X - Erlang MQTT Broker 3.0" . emqx.io. Consultado el 30 de septiembre de 2018 .
  11. "Registro de cambios de EMQX 5.8.8" . emqx.com .
  12. "EMQX Enterprise" . emqx.com .
  13. "Registro de cambios de EMQX Enterprise 5.3.1" . emqx.com .
  14. "NanoMQ" . nanomq.io .
  15. "MQTT X" . mqttx.app .
  16. "FairCom EDGE IIoT Integration Hub" . FairCom . Consultado el 26 de mayo de 2021 .
  17. "Kit de recursos FairCom EDGE V3 ya disponible" . FairCom . 8 de noviembre de 2020. Consultado el 26 de mayo de 2021 .
  18. "Servidor MQTT FlashMQ" . flashmq.org .
  19. "flespi MQTT broker" . flespi.com .
  20. "Cliente MQTT de HiveMQ" . hivemq.com . 10 de noviembre de 2021.
  21. "Cliente MQTT HiveMQ 1.3.1" . hivemq.com .
  22. "HiveMQ Community Edition" . hivemq.com . 27 de mayo de 2026.
  23. «HiveMQ CE 2026.5» . hivemq.com .
  24. "HiveMQ" . hivemq.com .
  25. "Lanzamiento de nuevas funciones de HiveMQ 4.53.0" . hivemq.com . 30 de junio de 2026.
  26. "WIoTP Message Gateway" . ibm.com . 9 de noviembre de 2020.
  27. "JoramMQ" . jorammq.com .
  28. ^ Pianca, Davide (5 de julio de 2020), davidepianca98/KMQTT , consultado el 6 de julio de 2020
  29. "Versión 0.4.1 · davidepianca98/KMQTT" . GitHub . Consultado el 12 de abril de 2023 .
  30. ^ " Eclipse Paho M2Mqtt " . eclipse.org .
  31. "Lanzamientos de M2MQTT" . GitHub .
  32. 1 2 "Cabeza de máquina" . clojurewerkz.org .
  33. "ClojureWerks" . clojurewerz.org .
  34. "Biblioteca de redes Mongoose para C/C++" . mongoose.ws . Consultado el 7 de febrero de 2023 .
  35. "Mongoose: Ejemplos: Cliente MQTT" . mongoose.ws . Consultado el 7 de febrero de 2023 .
  36. "Mongoose: Ejemplos: Servidor MQTT" . mongoose.ws . Consultado el 7 de febrero de 2023 .
  37. "moqueta" . GitHub . 11 de noviembre de 2021.
  38. "Lanzamientos de moqueta" . GitHub .
  39. "Mosquitto" . mosquitto.org .
  40. "Mosquitto ChangeLog.txt" . GitHub . 3 de marzo de 2023. Consultado el 24 de noviembre de 2023 .
  41. "MQTT Home" . GitHub . 2 de octubre de 2021.
  42. "MQTT-C" . liambindle.ca/MQTT-C . 10 de noviembre de 2021.
  43. "Lanzamientos de MQTT-C" . GitHub .
  44. "mqttools" . GitHub . 2 de noviembre de 2021.
  45. "net-mqtt: Una implementación del protocolo MQTT" . Hackage . Consultado el 16 de septiembre de 2019 .
  46. "MQTT broker" . openremote.io .
  47. 1 2 "Paho" . eclipse.org . Consultado el 16 de diciembre de 2020 .
  48. "Licencia de distribución de Eclipse - v 1.0" . eclipse.org .
  49. "Descargas de Eclipse Paho - Comparación de clientes MQTT" .
  50. "Últimos lanzamientos" . eclipse.org/projects . 21 de noviembre de 2017.
  51. "Solace PubSub+" . solace.com .
  52. "API y protocolos" . Solace . Consultado el 8 de abril de 2021 .
  53. "Información de referencia" . docs.solace.com . Consultado el 8 de abril de 2021 .
  54. "Funciones del agente de eventos" . docs.solace.com . Consultado el 8 de abril de 2021 .
  55. " Plugin MQTT RabbitMQ" . www.rabbitmq.com
  56. "Información de referencia" .
  57. "Información de lanzamiento" .
  58. "Inicio" . Thingstream . Consultado el 31 de enero de 2019 .
  59. "DOCS - Notas de la versión" . sites.google.com . Consultado el 7 de junio de 2019 .
  60. ^ "Broker VerneMQ MQTT" . vernemq.com .
  61. "Registro de cambios de VerneMQ" . GitHub . Consultado el 29 de abril de 2024 .
  62. 1 2 3 4 "Biblioteca cliente wolfMQTT" . wolfSSL . Consultado el 16 de diciembre de 2020 .
  63. "wolfssl.com" .
  64. "registro de cambios de wolfMQTT" . Documentación de la biblioteca SSL/TLS integrada de wolfSSL . Consultado el 16 de diciembre de 2020 .
  65. "Biblioteca cliente eMQTT v5.0" . GitHub . 15 de septiembre de 2021.
  66. "Bevywise MQTT broker" . bevywise.com .
  67. "Cliente MQTT" . openhab.org .
  68. "Arroyo de agua" . waterstream.io .
  69. "SimpleMatter" . simplematter.io .
  70. "MQTTDESK Cliente MQTT" . mqttfy.com .
  71. "MQTTfy" . mqttfy.com .
  72. Andy Stanford-Clark; Hong Linh Truong (14 de noviembre de 2013). "Especificación del protocolo MQTT para redes de sensores (MQTT-SN) versión 1.2" (PDF) . IBM.
  73. "Especificación del protocolo MQTT V3.1" . public.dhe.ibm.com . 2010. Archivado del original el 21 de mayo de 2018. Consultado el 13 de diciembre de 2017 .
  74. Andrew Banks; Rahul Gupta, eds. (29 de octubre de 2014). "MQTT Versión 3.1.1" . OASIS.
  75. Andrew Banks; Rahul Gupta, eds. (10 de diciembre de 2015). "MQTT Versión 3.1.1 más Errata 01" . OASIS.
  76. ^ Andrew bancos; Ed Briggs; Ken Borgendale; Rahul Gupta, eds. (25 de diciembre de 2017). "MQTT Versión 5.0" . OASIS.
  77. "FAQ - Preguntas frecuentes" . MQTT.org . Consultado el 30 de enero de 2018 .
  78. "Agente MQTT de Azure Event Grid" . 15 de noviembre de 2023.
  79. "Complemento HTTP" . docs.faircom.com . Consultado el 26 de mayo de 2021 .
  80. 1 2 "Lista de verificación de cumplimiento de MQTT 5.0" . flespi.com .
  81. «HiveMQ 4.1» . hivemq.com . 16 de abril de 2019.
  82. "Documentación de Moquette - Configuración SSL" .
  83. "mosquitto.conf(5)" . 3 de noviembre de 2021.
  84. "Eclipse Paho - Puerta de enlace transparente MQTT-SN" . Consultado el 16 de diciembre de 2020 .
  85. "API y protocolos abiertos" . Consultado el 8 de abril de 2021 .
  86. "Soporte para MQTT 5.0 🎉" . 4 de enero de 2021. Consultado el 8 de abril de 2021 .
  87. "Centro de conocimiento de IBM" . www.ibm.com . Consultado el 30 de enero de 2018 .
  88. "API MQTT" . adafruit.com .
  89. "Agente MQTT de Azure Event Grid" . 15 de noviembre de 2023.
  90. "Documentación de EMQX 3.0" . emqx.io. Consultado el 30 de septiembre de 2018 .
  91. "Calidad de servicio 0, 1 y 2 - Fundamentos de MQTT: Parte 6" . 16 de febrero de 2015.
  92. Selva, Andrea (29/01/2018), moquette: intermediario ligero Java MQTT , consultado el 01/02/2018
  93. "mosquitto.conf" . mosquitto.org . Consultado el 15-12-2017 .
  94. "Documentación de Solace: niveles de calidad de servicio compatibles" .
  95. 1 2 3 EMQX GitHub , EMQX, 30-09-2018 , consultado el 30-09-2018
  96. 1 2 machine_head: Cliente MQTT para Clojure , ClojureWerkz, 29/11/2017 , consultado el 13/12/2017 . Machine Head utiliza Leiningen 2. Asegúrese de tenerlo instalado y luego ejecute pruebas con versiones de Clojure compatibles utilizando...
  97. "Aplicaciones de un solo hilo MQTT-C" . liambindle.ca/MQTT-C/group__api.html#gae3d3aafc7588ed53a90c9f66fc620a6e .
  98. emqx.io, feng en. "EMQ X- Descargas" . emqx.io. Consultado el 30-09-2018 .
  99. "Primeros pasos con MQTT y Clojure" . clojuremqtt.info . Consultado el 14 de diciembre de 2017 .
  100. "Descargas" . Mosquitto.org . Consultado el 14 de diciembre de 2017 .
  101. "Solace PubSub+ Cloud" . cloud.solace.com .
  102. "Manual de usuario de wolfMQTT - 2.4 Construyendo sobre otros sistemas" . 25 de mayo de 2018. Consultado el 16 de diciembre de 2020 .