This project is a simple and easy to use, powerful performance, simple design concept instant messaging service, fully custom protocol chat (Chat) system
- QQ group: 496193831
- Website: http://www.limao.io
- Source: https://github.com/lim-team/LiMaoIM
- Protocol: LiMaoIM Protocol
- Issues: https://github.com/lim-team/LiMaoIM/issues
- Docs: http://www.limao.io/docs
- Go language development, high performance and easy maintenance have both
- The bottom layer is 100% open source
- Binary protocol (supports customization), the packet size is extremely small, the minimum heartbeat packet is only 1 byte, the power consumption is small, the flow is small, and the transmission speed is fast
- The message channel and message content are fully encrypted to prevent man-in-the-middle attacks and modify of message content.
- Simple and easy to use, strong performance, MAC notebook stand-alone test more than 6w/sec message throughput, in order to achieve this performance and easy to use, completely independent message storage, no need to rely on third-party components, a single command can start the service
- The tcp + ack mechanism is used to ensure that the message is stable and reliable without loss
- Strong scalability Adopting the channel design concept, currently supports group channels, point-to-point channels, and you can customize channels according to your own business in the future. It can realize functions such as robot channels, customer service channels, etc
- Multi-terminal synchronization, real-time synchronization of web, pc, app messages
- TCP and Websocket are supported indiscriminately
- Ten thousand people support
- The message partition is permanently stored, and the message will not be lost when the device is uninstalled
- Support offline pull in read mode
Run the server (Note: Because it rewrites the Go network library, this library is temporarily not supported by Windows. Windows recommends using Docker to run.)
$ go run cmd/app/main.go -e mode=test
After the server is running, visit http://127.0.0.1:1516/api to view the api document
Android SDK: Android SDK (built-in simple demo)
iOS SDK: Open source from Star to 500 (please help us some Star, thanks 😄)
JS SDK: Star to 1000 open source (please help us some Star, thanks 😄)
note: Please check document for the use of SDK
Log in to test1, test2 and test2 to send a message "hello" to test1
// Log in to test1
$ go run cmd/play/main.go -user=test1
// Log in to test2
$ go run cmd/play/main.go -user=test2
test2 sends the message hello to test1
$ >send hello to test1
One-click pressure test
./bench.sh
My test results are as follows:
Achieve a throughput of 63420 messages per second, which is close to the pressure test data of redis!
goos: darwin
goarch: amd64
cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
SEND: 2021/06/29 15:05:49 duration: 10.605478656s - 12.096mb/s - 63420.051ops/s - 15.768us/op
$ docker-compose up
Case experience
Screenshot of self-developed IM product case using this communication terminal