Skip to content

A high-performance mqtt server(broker) implemented using C++20 asio coroutine

License

Notifications You must be signed in to change notification settings

xukeawsl/mqtt-server

Repository files navigation

mqtt-server 简介

License Codacy Badge Build status

mqtt-server 是一个使用 C++20 协程开发的支持 MQTT v3.1.1 协议的高性能 MQTT Broker, 支持单机上万的并发连接, CPU 及内存占用小, 可以很好的运行在资源有限的机器上, 支持 Linux 和 Windows 平台

前提

  • 需要支持 C++20 的编译器版本(Linux GCC 11.2+, Windows MinGW 11.2+)

特性

  • 支持完整的 MQTT 3.1.1 协议

  • 支持 ACL 认证 (详见 How to use ACL )

  • 支持自动订阅 (为新连接的客户端自动订阅指定主题, 不受 ACL 控制)

  • 支持 SSL/TLS 安全通信 (TLS1.2TLS1.3) (详见 How to use TLS )

  • EMQX 更优秀的性能和更低的资源消耗 (详见 压测报告 )

  • 支持 Docker 部署 (详见 Use Docker Image )

使用

1. 克隆源代码

git clone https://github.com/xukeawsl/mqtt-server.git
cd mqtt-server
mkdir build && cd build

2. Cmake 构建

  • Linux 平台
# 默认 Release 级别, 也可以选择 Debug 级别构建
# cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake ..
cmake --build .

# 构建时可以选择日志级别, Release 构建默认日志级别是 Info
# Debug 构建默认日志级别是 Debug, 支持以下的日志级别
# Trace, Debug, Info, Warn, Error, Critical, Off
cmake -DLOG_LEVEL=Error ..
  • Windows 平台
cmake -G "MinGW Makefiles" ..
cmake --build .

3. 运行 mqtt-server

# Linux
./mqtt-server

# Windows
.\mqtt-server.exe

文档

关于如何使用 SSL/TLS 或其他详细内容见 wiki 页面

参考

About

A high-performance mqtt server(broker) implemented using C++20 asio coroutine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published