-
Notifications
You must be signed in to change notification settings - Fork 3
Feature(*): Introduce fully async library #58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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
* Replace serde_cbor with minicbor * Add cursor around cbor writer to get write position back --------- Co-authored-by: Mathias <mk@factbird.com>
beb6a9b
to
2c5757d
Compare
* Initial structure of defender metrics * metric structure and tests * generic custom metric * Change Custom metric to use references * aws types with references * impl tuple for Version * remove timestamp as argument for function in custom metric * include aws metrics and use bon crate for building metric struct * error handling * error handling * error handling * feature flag for cbor and temp fix for Header serialize * smal changes * String list example * Metric integration test * Update src/defender_metrics/data_types.rs Co-authored-by: Mathias Koch <mk@blackbird.online> * Cargo clippy and unit test * cargo clippy fix * fixed unit test and version serialization * fix test --------- Co-authored-by: Mathias Koch <mk@blackbird.online>
* get shadow before first sub delta * fix return type * Fixed a deadlock in wait delta function. * optimization
… shadow patch for complex enums (#76) * Rewrite shadow derive to split shadow patch into three generated structs, desired, delta and reported. Add support for complex enums * Add support for complex enums in shadow derive
…n mqtt sessions (#77)
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. |
Missing stuff:
None
in subscriptionsFixes #33