[ANN] SurgeMQ: High-Performance MQTT Server and Client Libraries in Go

2,189 views
Skip to first unread message

Jian Zhen

unread,
Dec 25, 2014, 2:47:38 AM12/25/14
to golang-nuts
Hi Everyone,

Happy Holidays! In the spirits of holiday sharing, I wanted to share a project I've been working on.

SurgeMQ
-------

SurgeMQ is a high performance MQTT broker and client library that aims to be fully compliant with MQTT 3.1 and 3.1.1 specs. It is currently under active development and should be considered unstable until further notice. However, it has passed enough compatibility tests w/ other client libraries (such as libmosquitto, Paho conformance tests, Paho Go client library and Paho C client library) that I think it's in a state that one can start playing with it.

You can find more details about SurgeMQ here: http://zhen.org/blog/surgemq-high-performance-mqtt-server-and-client-libraries-in-go/

pingmq
------

To demonstrate how one can use SurgeMQ, I wrote a quick utility called `pingmq` that hopefully will help. In this simplified use case, a network administrator can setup server uptime monitoring system by periodically sending ICMP ECHO_REQUEST to all the IPs in their network, and send the results to SurgeMQ. Then multiple clients can subscribe to results based on their different needs. For example, a client maybe only interested in any failed ping attempts, as that would indicate a host might be down. Or a client maybe interested in only a certain number of IPs. SurgeMQ would enable these clients to subscribe to the right topics and get the right sets of information.

More details can be found at: http://godoc.org/github.com/surge/surgemq/cmd/pingmq

Comments and feedbacks welcome and encouraged!

Thanks and Happy Holidays!

Jian

ro4tub

unread,
Dec 25, 2014, 9:57:04 PM12/25/14
to golan...@googlegroups.com
cool!

Julien Vehent

unread,
Dec 25, 2014, 10:19:54 PM12/25/14
to golan...@googlegroups.com
This is interesting work.
How would you compare it to RabbitMQ and github.com/streadway/amqp ?
Asked differently: as a user of AMQP, in which situation would I want
to look at MQTT ?

Thanks,
Julien

Jian Zhen

unread,
Dec 26, 2014, 12:06:27 AM12/26/14
to Julien Vehent, golan...@googlegroups.com
Hi Julien,

Here are a couple posts on AMQP vs MQTT


In short it really depends on the use case. For my use case which is mainly collect and process, MQTT is a much simpler protocol and better fit. AMQP is a much more full-featured protocol but also more complicated.

Also, github.com/streadway/amqp seems to be client only, not a server implementation of AMQP. SurgeMQ has both client and server implementations for MQTT.

Sorry, don’t mean to turn this into a MQ discussion forum. Happy to discuss further separately.

thanks

Jian

-- 
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Orlovsky Alexander

unread,
Dec 26, 2014, 10:29:45 AM12/26/14
to golan...@googlegroups.com
Thank you for sharing!
Could you suggest me, how to create go-websocket server with MQTT-support based on this codebase?
Is there any support for this use case from lib itself?

четверг, 25 декабря 2014 г., 10:47:38 UTC+3 пользователь Jian Zhen написал:

Jian Zhen

unread,
Dec 27, 2014, 12:08:35 AM12/27/14
to Orlovsky Alexander, golan...@googlegroups.com
Orlovsky, Websocket is definitely on the TODO list. 

How do you plan use the Go websocket version of MQTT? I am interested in understanding the use case a bit more.

I plan to use the Gorilla Websocket lib. Was wondering if anyone else has an opinion on the go.net version vs Gorilla version…

thx

Jian

Orlovsky Alexander

unread,
Dec 28, 2014, 6:30:03 PM12/28/14
to golan...@googlegroups.com, nordi...@gmail.com
I'm mostly newbie in the topic, but I'm interested in it.

For now I'm considering chat/messages emitter implementation for our website (backend&frontend), and MQTT looks promising.

Also I've read this:


суббота, 27 декабря 2014 г., 8:08:35 UTC+3 пользователь Jian Zhen написал:
Reply all
Reply to author
Forward
Message has been deleted
0 new messages