A modern messaging platform for Message Push、IM、Group Chatting、IoT etc, based on MQTT protocol. MeQ is written in pure go and standard library,nearly no messy dependencies. so you can easily deploy a standalone binary in linux、unix、macos、windows.
Our goal is to be the best messaging platform in the world.
- Homepage: http://meq.io
- 中文Readme
Mac OS: https://www.foundationdb.org/downloads/5.1.7/macOS/installers/FoundationDB-5.1.7.pkg
Other Os: https://www.foundationdb.org/download/
> go get github.com/meqio/meq
> cd $GOPATH/src/github.com/meqio/meq/broker
> go run main.go
> cd ../demos/chatting
> npm install
> npm run dev
Open your browser and accsess http://localhost:8080 in two seperate pages,in one page input username A,in other page input username B, then you can start chatting!
The version is Alpha V0.5.0. The website,documents and a group chat demo will soon be possible to access(before 2018.6.30)
- Written in go, as fast as c/c++ network programing
- Zero allocation and copy
- Hot path and algorithm optimized
- Easy to study and use
- Efficient when you need to develop on meq,because the nice design and code
- Detailed docs and examples
- Robust is one of our most important goal throughout the developing
- Default message persistent,also you can implement the persistent inteface in your way.
- Message push
- Group chatting
- IM
- IoT messaging
- Real time Web interaction,like dashboard、online collaboration etc
- Join and leave the group
- Each user has a separate unread message number,e.g. you have 97 unread messages in ethereum-welcom group
- You can retrive your message even after sended
- History messages playback
- Query all the users or online users in the group
- Every message will store only once, all the users share the message
- Topic wild match, e.g. you can push to /china/+/city1, then all the china province which has city named city1, will receive the message.
- Mqtt and websocket,tcp etc
- Low latency, message push deliver to user as soon as possible
- Fertile administrator features and ui
- Monitor and message trace
There were already many messaging platform out there, but none of them can satisfy all the messaging scenario, e.g., if you want build a online chatting platform, you need to build it from scratch, nearly none of the existing platform can satisfy your need. So �here meq comes, cover your messaging scenario in the most easy way.
Want to be part of the meq project? Great! All are welcome! We will get there quicker together :) Whether you find a bug, have a great feature request or you fancy owning a task from the road map, you can leave a issue.
In this benchmark, I use the memory engine, all is done in my macbook pro laptop.
- A client with 5 goroutine can publish 2700K messages to meq per second
- A client with 5 goroutine can consume 2000K messages from meq per second