Feature(*): Introduce fully async library#58
Conversation
…o individual accepted and rejected topic for now
* Wip on rewriting shadows to async * Further work on async shadows. Still working on compile errors * Fix: Async shadow (#60) * fix asyunc shadow * renaming of handle message and some linting * shadows error fix and handle delta should wait for connected * fmt * Add const generic SUBS to shadows * Fix/async shadow (#61) * fix asyunc shadow * renaming of handle message and some linting * shadows error fix and handle delta should wait for connected * fmt * subscribe to get shadow and do not overwrite desired state * Get shadow should deserialize patchState * wait for accepted and rejected for delete and update as well * Make sure OTA job documents can be deserialized with no codesigning properties in the document (#62) * Dont blindly copy serde attrs in ShadowPatch derive, but rather introduce patch attr that specifies attrs to copy * Add skip_serializing_if none to all patchstate fields * Shadows: Check client token on all request/response pairs * Create initial shadow state, if dao read fails during getShadow operation * remove some client token checks * Fix not holding delta message across report call * handle delta on get shadow * Bump embedded-mqtt * Fix all tests * Allow reporting non-persisted shadows directly, through a report fn * Bump embedded-mqtt * Enhancement(async): Mutex shadow to borrow as immutable (#63) * Use mutex to borrow shadow as immutable * remove .git in embedded-mqtt dependency --------- Co-authored-by: Kenneth Knudsen <ksk@blackbird.online> Co-authored-by: Kenneth Knudsen <98805797+KennethKnudsen97@users.noreply.github.com>
* Ensure only one sub on the same topic * wait for mqtt connected in report * Reduce request locks to one
|
Whats the status of this PR and this project in general? I'm evaluating using rustot for my next IOT project. The main branch currently does not build unless using Thank you :) |
|
Hi @t-moe |
|
Got it, thank you! I'm not actively using this yet. However, in a previous project, I implemented AWS Shadow, Streams, and Jobs myself - before I was aware of rustot. For my next project, I thought it would be great to avoid duplicating effort and build on rustot instead. A couple of blockers for me:
I think, I will reuse my own implementation for now, and come back later, when another project arrives. |
|
Roger.
This is true, and we might be able to address it if its an actual blocker, but for us it makes things a bit easier and we are running nightly anyway.
I have attempted to make an abstraction for the MQTT client, but i have failed all of my attempts, due to complex lifetimes in the subscription streams. |
- Bump heapless from 0.8 to 0.9 - Update embedded-mqtt from git ref to version 0.1.0 - Update defmt feature: use heapless/defmt instead of heapless/defmt-03 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
853cfb2 to
1599f63
Compare
|
Hi @MathiasKoch , |
Missing stuff:
Nonein subscriptionsFixes #33