-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
In the Rust OSS embedded community, Async is a popular approach, most notably with Embassy: https://github.com/embassy-rs/embassy
In embedded, it's common to use interrupts, DMA, and leverage multiple cores to handle concurrent events without blocking the main program loop. These are traditionally handled with deliberate register writes. Eg send a command to a peripheral to start a task. Continue running the program. When the task is complete, an interrupt fires, and code to handle the completion is immediately run.
Async/Await functionality is used to abstract over these processes, using Futures. In my own programs, the abstraction doesn't provide enough value over natively handling interrupts, and DMA, to be worth the added complexity and cognitive overhead. Eg, framework code you need to account for, and coloring issues, which I'd argue still apply to Rust.
I'm deliberately asking here, to get an outside perspective from the Rust community (They love embedded and RTIC), and the more general embedded community (Rust is Foreign, and new patterns are viewed with caution). Of note, RTOS is popular in C embedded, which perhaps handles some of the same abstraction issues handled by Async and RTIC in rust.