SaaSHub helps you find the best software and product alternatives Learn more →
Embassy Alternatives
Similar projects and alternatives to embassy
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
-
-
-
-
-
-
TinyGo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
-
-
awesome-embedded-rust
Curated list of resources for Embedded and Low-level development in the Rust programming language
-
-
-
-
-
probe-rs
A debugging toolset and library for debugging embedded ARM and RISC-V targets on a separate host
-
-
pebble
This is the latest version of the internal repository from Pebble Technology providing the software to run on Pebble watches. Proprietary source code has been removed from this repository and it will not compile as-is. This is for information only. (by google)
-
embassy discussion
embassy reviews and mentions
-
UFerris a Versatile Learner Board for Rust Embedded Beginners
> a cool way to work with rust on the RP2040/2350
Pick up an RPi Pico (and one of their debugger probes) or a Xiao board with an RP2040 or RP2350, and try playing around with Embassy. It's super easy to get started and has been, by far, my favorite way to develop embedded projects.
> the most mysterious part of rust on MCUs for me is the world of bit twiddling and register accesses from a safe language
Rust mostly generates safe APIs to modify registers from things like SVD files. These are typically organized as a PAC (Peripheral Access Crate). Here's an example:
https://docs.rs/rp2040-pac/0.6.0/rp2040_pac/
This automation generates type-safe structs that you let you read and modify the various bits in a register, with volatile writes and all of that. You could probably have an LLM (or a google search) explain PACs and how they're typically used and I think you'll get it.
Then a HAL (Hardware Abstraction Layer) is usually built up using the register operations from the PAC in order to expose a safe Rust interface over a particular peripheral.
https://www.raspberrypi.com/products/debug-probe/
https://embassy.dev/
-
Go on Embedded Systems and WebAssembly
* the software task checks if it is done, and either reloads/restarts if there's more to do, or returns "done"
It's really not different than event driven state machines you would have written before, it's just "in-band" of the language now, and async/await gives you syntax to do it.
Even if you don't know Rust, I'd suggest poking around at some of the examples here:
https://github.com/embassy-rs/embassy/tree/main/examples
And if you want, look into the code behind it.
-
Zero-copy protobuf and ConnectRPC for Rust
The core runtime is no_std + alloc, with optional JSON serialization via serde. Enabling std adds std::io integration and std::time conversions, but the wire format, views, and JSON all work without it. Rust is well suited to embedded systems and constrained environments, and I believe that protobufs can also be beneficial in such scenarios. The encoding is efficient, and makes it easier for these systems to integrate with the broader ecosystem. While we have not yet pushed this to the logical conclusion of a partial ConnectRPC implementation that works with embassy, reqwless, and/or picoserve, the door is open for others to implement this.
-
Embassy: Modern embedded framework, using Rust and async
(Embassy dev here)
You can get preemptive scheduling of async tasks with InterruptExecutor. You create one executor for each priority level, then spawn the tasks in the right one. The latency of the executor and the compiler-generated async state machines is predictable, so you can use Embassy for hard real-time work. See example: https://github.com/embassy-rs/embassy/blob/main/examples/nrf...
Additionally the executor has support for scheduling tasks by priority or deadline within a single priority level. (in latest git, will be in next crates.io release)
- Embassy: The next-generation Rust framework for embedded applications
-
Informed Poll
Also might be interesting to read about: https://embassy.dev/
-
A Mental Model for C++ Coroutine
well, Rust didn't do the same thing for a reason. Rust lets you pick and choose what async runtime to use (even though everyone has decided to use Tokio anyways). This is good because it allows for alternative async runtimes like Embassy (https://embassy.dev/) and it also doesn't freeze the API into something that can't change. It could totally be possible that people find a new style of async that works better than std::execution.
-
Rust on the RP2350
Embassy got _some_ support for rp2350 for quite some time now
https://github.com/embassy-rs/embassy
- Zlib-rs is faster than C
-
A note from our sponsor - SaaSHub
www.saashub.com | 14 Jun 2026
Stats
embassy-rs/embassy is an open source project licensed under Apache License 2.0 which is an OSI approved license.
The primary programming language of embassy is Rust.