- To generate the
wasm
build:- Ensure you have
wasm-pack
installed on your local machine NB: Because wasm-pack does not seem to support cargo-workspace- Cd into the core directory: In this case
hivemqtt-core
first
- Cd into the core directory: In this case
- Ensure you have
> cd hivemqtt-core
> wasm-pack build --target web --out-dir ./../pkg
- This should generate the `pkg` folder which you can use for your javascript/typescript projects at the root level of this project
- To generate
asm
output:
> cd hivemqtt-core
> cargo rustc --lib -- --emit asm
OR
> cargo rustc --lib --release -- --emit asm #for prod
- you would find the `assembly output`inside `hivemqtt/target/debug/deps/hivemqtt_core.s` (if you ran the command above in debug mode, else it would be in the release folder(insteads of deps) if ran with release)
- Protocol Support
- MQTT 3.1.1
- MQTT 5.0 (In Progress)
- TLS/TCP
- IPV6
- All MQTT Packet Support (In Progress)
- Implement
Display
forProperty
- Tests
- no_std support
- Integrate WASM for easy compiling to Javascript/Typescript/Node.js environments
- Easy internal utility for converting -> to string and vice versal (from terminal tool?) - for debugging
- Samples for easy learning
- Move bytes length validation/parsing into the trait, and update the trait's secondary properties
- Topic Filters: (4.7 Topic Names and Topic Filters)
- Shared Subscription: (4.8.2 Shared Subscriptions)
AsyncReadExt + AsyncWriteExt works fine with async-std, and smol runtime users. However users of tokio, would need to add tokio-util to ensure compatibility
tokio-util = { version = "0.7.13", features= ["compat"]}
let stream = TcpStream::connect("example.com:80").await.unwrap();
let stream = stream.compat();
-->>
This crate derives heavy inspiration from: 1. 2.