Roadmap for rumqtt?
Hi,
We currently use this client in one of our product SDKs, however we havent had much traction with PR's being integrated from our fork.
Is there a plan to continue to support this repository? What would be the best way to integrate our forked changes?
Thanks Ryan
Hi @ryanwinter
Here's a roadmap we've setup for rumqttc
- Memory stable and fast
- Should run on devices with <10MB memory
- Features
- Returns pkid/tokens or other identifier to clients
- Ability to shutdown
- Full MQTT 5
- Ack after processing
- Synchronous publish with broker (next publish after previous ack)
- High level client
- Python, C and Javascript wrappers
- Tests
- Stability and perf test suite with mock broker
- 100% code coverage
- Throughput and memory stability tests
- Comparison between clients
- Conformance test suite
The primary reason for delay is redesign and bandwidth within the team. We've gone through a list of all the issues and are now iterating on the design for next (major) release. However bandwidth is still a challenge. I'm happy to collaborate with companies/teams using this library or create a sponsorship page to help fund this project for dedicated resources to push the roadmap forward
Thanks @tekjar!
Completely understand the bandwidth challenges :) Let me follow up with the team and we can respond on this thread if this is the easiest way to communicate?
Thanks @ryanwinter . [email protected] is my email if you prefer to communicate over there. I could also invite you to an internal slack channel if that works. We are proactive there :)
Hi @tekjar , we are using a git version of rumqttc because of the rustls version update.
It has been running in production for about a month now and seems rock stable. Unless there's some big change in the works, could you publish a new release? The development is quite slow now, which is fine, the library is "finished" from our point of view and just works
# TODO change to released version once it is available
rumqttc = { git = "https://github.com/bytebeamio/rumqtt.git", rev = "b1c3a20" } # version = "0.25.0",
Glad to know that @MightyPork
@swanandx Can we cut a new release on this commit?
A friendly reminder, could you create a new release with rustls 0.26.0? :)
Hey @Matt3o12 @MightyPork we are currently working on the integrating some features and requirements , we are going to cut a release as soon as possible. Thanks
@Matt3o12 latest version of rustls is 0.23.31. if you mean tokio-rustls - v0.26.0 , its already updated.
yes there's no need for any changes, just tag and push to crates.io. I am still depending on it by the git hash
@MightyPork the new release has been pushed into crates.io
@Matt3o12 latest version of rustls is 0.23.31. if you mean tokio-rustls - v0.26.0 , its already updated.
Yes sorry I meant just rustls.
Thanks for the new release, could you also maybe consider https://github.com/bytebeamio/rumqtt/pull/988 as well and create another release for that? One problem I have with the new release is that my rumqttc stopped building on some targets as rustls switch from ring to aws-lc-rs which supports fewer platforms and requires a c++ toolchain (cmake, etc). Defining adding the ring feature mysql doesn't fix this problem as cargo still tries to compile aws-lc-rs.
@Matt3o12 yeah , we are currently refactoring the some parts of rumqtt . we will review the PR's and include in the next release as soon as possible. Thanks
stopped building on some targets as rustls switch from ring to aws-lc-rs which supports fewer platforms and requires a c++ toolchain
Having the same problem. Would be nice if this could be fixed soon as I can't use 0.25 for now as I rely on ring
@Matt3o12 @WolfspiritM #988 has been successfully merged . now rumqttc supports a new feature "use-rustls-no-provider" which eliminates depending on aws-lc-rs crate . now can use your own crypto provider