KEMBAR78
Releases · rmqtt/rmqtt · GitHub
Skip to content

Releases: rmqtt/rmqtt

0.17.1

20 Oct 09:12
d38f955

Choose a tag to compare

What's Changed

Full Changelog: 0.17.0...0.17.1

Note: This update only affects the ws feature of rmqtt-net, so no Docker images or precompiled installation packages will be generated.

0.17.0

17 Oct 13:33
2d12e6d

Choose a tag to compare

What's Changed

  • chore: bump version to 0.17.0 and add star history badges by @bittcrafter in #301
  • docs: add FUNDING.yml file to support GitHub Sponsors by @bittcrafter in #302
  • refactor(delayed): restructure delayed message handling and add debug… by @bittcrafter in #303
  • feat: add NATS ingress bridge support by @bittcrafter in #304
  • fix(queue): correct queue capacity check in push operation by @bittcrafter in #305
  • docs: add offline message documentation links by @bittcrafter in #306
  • docs: add detailed documentation links for MQTT protocol features by @bittcrafter in #307
  • docs: add documentation links for Last Will message support by @bittcrafter in #308
  • fix(connection): improve connection closing and error handling by @bittcrafter in #309
  • chore(deps): upgrade pulsar client from 6.3.1 to 6.4.1 by @bittcrafter in #310
  • feat(quic): add MQTT over QUIC protocol support with examples #64 by @bittcrafter in #315
  • Allow Extraction of Client TLS Certificate (CN/SAN) at rmqtt-net or Plugin Layer in MQTT Context by @deluxetiky in #313
  • fix(metrics): correct CPU load calculation formula by @bittcrafter in #319
  • feat(config): add environment variable support for MQTT bridge credentials #317 by @bittcrafter in #320

New Contributors

Full Changelog: 0.16.1...0.17.0

0.16.1

19 Sep 13:52
52a180e

Choose a tag to compare

What's Changed

  • docs: update version to 0.16.0 and add p2p-messaging documentation by @bittcrafter in #286
  • chore(net): bump version from 0.1.5 to 0.2.0 by @bittcrafter in #287
  • chore(deps): update rmqtt-net dependency to 0.2.0 by @bittcrafter in #288
  • docs(p2p-messaging): add comprehensive plugin description by @bittcrafter in #289
  • chore(conf): bump version from 0.1.1 to 0.2.0 by @bittcrafter in #290
  • chore(deps): update rmqtt-conf dependency to 0.2.0 by @bittcrafter in #291
  • chore(deps): pin pulsar to exact version 6.3.1 in rmqtt-bridge-egress-pulsar and rmqtt-bridge-ingress-pulsar plugins by @bittcrafter in #295
  • docs(auth-http): add subscription ACL caching limitation note by @bittcrafter in #298

Full Changelog: 0.16.0...0.16.1

Note: This update only affects cargo install rmqttd, so no Docker images and precompiled installation packages will be generated.

0.16.0

14 Sep 09:13
3f1862d

Choose a tag to compare

What's Changed

  • chore(logging): change default log level from Debug to Info by @bittcrafter in #273
  • fix(session): ensure proper cleanup of inflight messages on publish failure by @bittcrafter in #275
  • refactor(codec): separate codec and broker publish types and bump codec to 0.2.0 by @bittcrafter in #276
  • perf(shutdown): reduce shutdown delay and exit explicitly by @bittcrafter in #283
  • feat(shared): add targeted client forwarding support by @bittcrafter in #284
  • feat: add new p2p-messaging plugin by @bittcrafter in #285

Full Changelog: 0.15.0...0.16.0

0.15.1

08 Sep 13:56
9c518af

Choose a tag to compare

What's Changed

  • chore: bump version to 0.15.1 and improve shutdown process by @bittcrafter in #281

Full Changelog: 0.15.0...0.15.1

0.15.0

28 Aug 10:25
3ac5d56

Choose a tag to compare

What's Changed

  • chore(deps/net): update core dependencies, bump component versions, and enhance tokio features by @bittcrafter in #254
  • perf(session): optimize offline message handling with VecDeque by @bittcrafter in #260
  • feat(plugins): introduce unified plugins meta-package with enhanced feature organization by @bittcrafter in #261
  • feat(plugin): enhance plugin configuration management with builder pattern by @bittcrafter in #262
  • docs: update README with latest version links and simplify version references by @bittcrafter in #264
  • refactor(plugin, config): make plugins_config_map_add generic and remove default plugin path by @bittcrafter in #265
  • feat(plugins): enhance configuration handling with defaults and better error reporting by @bittcrafter in #266
  • docs: add library mode integration and crate badges to README by @bittcrafter in #267
  • chore: release version 0.15.0 and update documentation by @bittcrafter in #268
  • chore: synchronize all plugin versions with main 0.15.0 release by @bittcrafter in #269
  • chore(gitignore): add publish script files to gitignore by @bittcrafter in #270

Full Changelog: 0.15.0-rc.6...0.15.0


🚀 RMQTT 0.15.0

RMQTT 0.15.0 Stable Release is out!
This milestone version has gone through multiple Beta and RC iterations. The core framework is fully upgraded, the plugin system is more flexible, memory usage and performance are optimized, and clustering and observability are significantly improved.


🔧 Core Framework & Network Layer

  • Network Layer Refactoring

    • Completely rewritten on Tokio async runtime, fully removing ntex dependency, decoupling framework constraints, and improving performance.
    • Reused and optimized ntex-mqtt codec code, maintaining protocol maturity and compatibility.
    • Lower memory usage for sessions and connections: removing ntex-mqtt runtime reduces extra abstraction and context overhead, improving single-node connection capacity under high concurrency.
  • Native Multi-Protocol Support

    • Supports TCP / TLS (MQTT over SSL) / WebSocket (WS) / WSS.
    • Compliant with RFC 6455, RFC 8446, allowing flexible access channel configuration.
  • Multiple Listener Parallel Binding

    • Single broker can start multiple Listeners concurrently with independent protocol, port, heartbeat, and TLS certificate settings.
    • New ListenerId supports management by ID instead of port.
    • Supports internal/external network isolation, load balancing, and fine-grained operations.

⚡ Performance & Storage

  • Offline Message Ordering Optimization

    • Improved delivery mechanism ensures message order closer to original publishing sequence.
    • max_inflight configurable to balance order consistency vs. throughput performance.
  • Session Storage Optimization

    • Storage operations moved to background tasks for higher concurrency.
    • Added metrics with active/offline session distinction and timeout protection.
  • Modular Storage

    • Storage backends (ram / sled / redis) fully modular, selectable via Cargo feature.
    • Retainer and message storage configuration more flexible, with improved logging and error handling.
    • Retainer default TTL adjustment: retained_message_ttl changed from 1m → 0m (default is never expire).

🛠 Plugin System

  • Plugin System Upgrade

    • Introduced unified meta-package for better functionality organization.
    • Plugin configuration uses builder pattern, with default configs and clearer error reporting.
    • Added register_named() for explicit plugin registration.
    • plugins_config_map_add is now generic, more flexible configuration.
  • Plugin Architecture Improvements

    • Webhook / Auth-HTTP plugins: removed global HTTP client and once_cell, replaced with instance-based management.
    • Plugin initialization supports config map.
    • Bridge plugin: fixed error handling for MQTT v4/v5, replaced unreachable!() with explicit error return and log.

🔗 Clustering & Networking

  • Cluster gRPC

    • Supports streaming-based message forwarding.

    • Added concurrency and timeout settings:

      • worker_threads
      • node_grpc_batch_size
      • node_grpc_client_concurrency_limit
      • node_grpc_client_timeout
  • Raft Upgrade

    • Upgraded to raft v0.5.x, supporting async snapshot, parallel optimization, and compression improvements.
    • Removed global backoff strategy, replaced with instance-based ExponentialBackoff.
  • Cluster Plugin Improvements

    • cluster-broadcast adds health monitoring.
    • Subscription sync, error handling, and logging improved.

🌐 HTTP API & Observability

  • All routes now have /api/v1 prefix.

  • Health Check API:

    • /api/v1/health/check/{node} with JSON output.
    • Node status determined via NodeHealthStatus.is_running().
  • Health checks and Prometheus metrics enhanced, supporting cluster init timeout detection.

  • HTTP API monitoring and metrics improved.


⚙️ Configuration, Build & Operations

  • Plugin initialization supports config map configuration.
  • Dockerfile improvements: ENTRYPOINT supports runtime arguments.
  • Build config: panic=abort enabled to reduce runtime overhead.
  • Updated core dependencies with enhanced Tokio features.
  • Log cleaning and optimization across cluster, storage, and network modules.
  • New installation method: cargo install rmqttd for one-step deployment.

🛡️ Stability & Error Handling

  • Reduced panic! usage, unified to explicit error returns.
  • Handshake module timeout control added.
  • Unified concurrency control and clearer thread management.
  • cluster, executor, storage, bridge modules enhanced with error logs and retry mechanisms.

📚 Documentation & Maintenance

  • Rust docs updated to 1.85.0.

  • Updated cluster-raft.md with Raft configuration details.

  • README improvements:

    • Added DeepWiki badge, Crate badge.
    • Simplified version references and added library mode integration instructions.
  • All plugin versions synchronized with 0.15.0.


🎯 Summary

  • Faster: Optimized Tokio network stack, Raft, and gRPC streaming.
  • Lighter: Removed ntex, significantly reducing session/connection memory usage.
  • More Flexible: Modular storage, plugin meta-package, multi-protocol & multi-listener support.
  • Easier to Use: Supports cargo install rmqttd, simplified config, improved docs and observability.

0.13.4

22 Aug 07:50
f029a7d

Choose a tag to compare

What's Changed

  • perf(session): optimize offline message handling with VecDeque by @bittcrafter in #259

Full Changelog: 0.13.3...0.13.4

0.15.0-rc.6

18 Aug 13:58
3ba419e

Choose a tag to compare

What's Changed

Full Changelog: 0.15.0-rc.5...0.15.0-rc.6

0.15.0-rc.5

17 Aug 12:30
f3f1875

Choose a tag to compare

What's Changed

  • feat(node): revamp busy state handling and bump version to 0.15.0-rc.5 by @bittcrafter in #246
  • feat(http-api): enhance stats monitoring and bump versions by @bittcrafter in #247
  • feat(rmqtt-net): support proxy protocol by @timzaak in #248
  • refactor(concurrency): streamline thread management and configuration by @bittcrafter in #249

Full Changelog: 0.15.0-rc.4...0.15.0-rc.5

0.13.3

11 Aug 16:13
3d6727f

Choose a tag to compare

What's Changed

Full Changelog: 0.13.2...0.13.3