{"slug": "embassy", "name": "Embassy", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "Async Rust framework and runtime for embedded systems and microcontrollers.", "recommenders": 8, "commenters": 9, "warners": 0, "score": 7.378, "rising": 1.36, "first": "2026-01-08", "latest": "2026-10-24", "why": "Loved for running async Rust on small microcontrollers without heap allocation and for a modern, pleasant embedded developer experience.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 8, "neutral": 0, "compare": 1, "warn": 0}, "spark": [0, 0, 4, 0, 0, 0, 0, 0, 1, 1, 1, 1], "listed": true, "loved": ["Developer experience", "Tiny footprint"], "caveat": "Learning curve", "short_quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "icon": false, "domain": null, "github_repo": "github.com/embassy-rs/embassy", "official_url": "https://embassy.dev/", "pricing": "open source", "aliases": ["Embassy", "embassy"], "verdict": [{"text": "Loved for running async Rust on small microcontrollers without heap allocation", "cites": [{"id": 803605584, "item_id": 50225349, "url": "https://news.ycombinator.com/item?id=50225349", "by": "kadw", "date": "2026-10-24", "stance": "recommend", "quote": "Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid.", "excerpt": "It would be really great to see how it fits in embedded systems, MCUs in particular! Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid. Even if you write in C, most of the times you don't use heap. MISRA, the C coding standard for automotives, doesn't allow dynamic allocation!", "context": "", "use_case": "embedded development", "switched_from": "", "story": "The Goose Programming Language"}, {"id": 794317281, "item_id": 49644830, "url": "https://news.ycombinator.com/item?id=49644830", "by": "okanat", "date": "2026-09-10", "stance": "recommend", "quote": "Even 64k flash and 16k ram is enough for embassy.", "excerpt": "Rust's async can be very lightweight depending on the runtime implementation. tokio and embassy are both runtimes but former is a throughput-optimized heavily multi-threaded while latter is a simple cooperative multitasking for embedded. We use both at my day job. Even 64k flash and 16k ram is enough for embassy.", "context": "embedded developer", "use_case": "embedded async runtime", "switched_from": "", "story": "Rust is tier-1 language at Microsoft"}, {"id": 791824944, "item_id": 49489059, "url": "https://news.ycombinator.com/item?id=49489059", "by": "VorpalWay", "date": "2026-08-29", "stance": "recommend", "quote": "I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run.", "excerpt": "Tokio is definitely not the only reasonable choice. I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run. [1] https://embassy.dev/", "context": "embedded developer", "use_case": "async Rust on microcontrollers", "switched_from": "", "story": "TurboKV: Insanely fast Rust key-value store"}]}, {"text": " and for a modern, pleasant embedded developer experience.", "cites": [{"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744788352, "item_id": 46549272, "url": "https://news.ycombinator.com/item?id=46549272", "by": "junon", "date": "2026-01-08", "stance": "recommend", "quote": "Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "excerpt": "Great to see this on HN front page. Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "context": "", "use_case": "embedded projects", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744850288, "item_id": 46553143, "url": "https://news.ycombinator.com/item?id=46553143", "by": "aomix", "date": "2026-01-09", "stance": "recommend", "quote": "people damn near fall to their knees and weep when talking about how nice the experience is using embassy", "excerpt": "I haven't had a chance to do embedded work but people damn near fall to their knees and weep when talking about how nice the experience is using embassy. Which makes me want to give it a try.", "context": "has not done embedded work", "use_case": "embedded development", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744901088, "item_id": 46556318, "url": "https://news.ycombinator.com/item?id=46556318", "by": "chaosprint", "date": "2026-01-09", "stance": "recommend", "quote": "embassy-rs + 2350 is my go-to choice. Highly recommand this stack", "excerpt": "I'm rewriting glicol (https://glicol.org/) with no std, and embassy-rs + 2350 is my go-to choice. Highly recommand this stack if you're planning to start working with embedded systems in 2026.", "context": "", "use_case": "embedded development", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}]}, {"text": " The main caveat is that its task-switching model differs from traditional C RTOSes and takes time to learn", "cites": [{"id": 792745936, "item_id": 49546621, "url": "https://news.ycombinator.com/item?id=49546621", "by": "mrheosuper", "date": "2026-09-03", "stance": "compare", "quote": "But Embassy, with different task switching mechanism, mean i need to learn another new concept", "excerpt": "It's not about features, i believe i am not that advance user. It's just different from the RTOS i used to work on. Most of exist C RTOS work quite similar(FreeRTOS, Zephyr, ThreadX), the difference is mostly in API and Software support arround the core kernel. But Embassy, with different task switching mechanism, mean i need to learn another new concept, understanding the pros/cons. That is not what i want to do whe", "context": "embedded developer adapting to Rust", "use_case": "async Rust embedded", "switched_from": "", "story": "Async Rust vs RTOS showdown (2022)"}]}, {"text": ", and async drivers for some peripherals are occasionally missing.", "cites": [{"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}]}], "praise": [{"label": "Developer experience", "summary": "Commenters describe it as a modern, well-made toolchain that is a pleasure to use.", "quotes": [{"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744788352, "item_id": 46549272, "url": "https://news.ycombinator.com/item?id=46549272", "by": "junon", "date": "2026-01-08", "stance": "recommend", "quote": "Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "excerpt": "Great to see this on HN front page. Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "context": "", "use_case": "embedded projects", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744850288, "item_id": 46553143, "url": "https://news.ycombinator.com/item?id=46553143", "by": "aomix", "date": "2026-01-09", "stance": "recommend", "quote": "people damn near fall to their knees and weep when talking about how nice the experience is using embassy", "excerpt": "I haven't had a chance to do embedded work but people damn near fall to their knees and weep when talking about how nice the experience is using embassy. Which makes me want to give it a try.", "context": "has not done embedded work", "use_case": "embedded development", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}]}, {"label": "Tiny footprint", "summary": "It avoids heap allocation and runs on microcontrollers with as little as 64k flash and 16k RAM.", "quotes": [{"id": 803605584, "item_id": 50225349, "url": "https://news.ycombinator.com/item?id=50225349", "by": "kadw", "date": "2026-10-24", "stance": "recommend", "quote": "Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid.", "excerpt": "It would be really great to see how it fits in embedded systems, MCUs in particular! Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid. Even if you write in C, most of the times you don't use heap. MISRA, the C coding standard for automotives, doesn't allow dynamic allocation!", "context": "", "use_case": "embedded development", "switched_from": "", "story": "The Goose Programming Language"}, {"id": 794317281, "item_id": 49644830, "url": "https://news.ycombinator.com/item?id=49644830", "by": "okanat", "date": "2026-09-10", "stance": "recommend", "quote": "Even 64k flash and 16k ram is enough for embassy.", "excerpt": "Rust's async can be very lightweight depending on the runtime implementation. tokio and embassy are both runtimes but former is a throughput-optimized heavily multi-threaded while latter is a simple cooperative multitasking for embedded. We use both at my day job. Even 64k flash and 16k ram is enough for embassy.", "context": "embedded developer", "use_case": "embedded async runtime", "switched_from": "", "story": "Rust is tier-1 language at Microsoft"}, {"id": 791824944, "item_id": 49489059, "url": "https://news.ycombinator.com/item?id=49489059", "by": "VorpalWay", "date": "2026-08-29", "stance": "recommend", "quote": "I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run.", "excerpt": "Tokio is definitely not the only reasonable choice. I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run. [1] https://embassy.dev/", "context": "embedded developer", "use_case": "async Rust on microcontrollers", "switched_from": "", "story": "TurboKV: Insanely fast Rust key-value store"}]}, {"label": "Async ergonomics", "summary": "Its cooperative async multitasking is preferred over alternatives like RTIC.", "quotes": [{"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 794317281, "item_id": 49644830, "url": "https://news.ycombinator.com/item?id=49644830", "by": "okanat", "date": "2026-09-10", "stance": "recommend", "quote": "Even 64k flash and 16k ram is enough for embassy.", "excerpt": "Rust's async can be very lightweight depending on the runtime implementation. tokio and embassy are both runtimes but former is a throughput-optimized heavily multi-threaded while latter is a simple cooperative multitasking for embedded. We use both at my day job. Even 64k flash and 16k ram is enough for embassy.", "context": "embedded developer", "use_case": "embedded async runtime", "switched_from": "", "story": "Rust is tier-1 language at Microsoft"}]}, {"label": "Simpler testing", "summary": "One developer says it lets them skip many usual workarounds when developing and testing.", "quotes": [{"id": 785620240, "item_id": 49101265, "url": "https://news.ycombinator.com/item?id=49101265", "by": "officialchicken", "date": "2026-07-29", "stance": "recommend", "quote": "Check out Embassy and you'll be free to ignore pretty almost everything suggested here", "excerpt": "I don't use the the builtin testing framework, or std, and I often explicitly use a no-heap crate. Check out Embassy and you'll be free to ignore pretty almost everything suggested here, especially when developing and testing. I create a separate [bin] for each test (I usually run out of flash to fit all the tests into a single binary), and a few lines of bash/python to make a test runner/reporter for all the flashin", "context": "embedded Rust developer", "use_case": "embedded Rust development and testing", "switched_from": "", "story": "The Rust on ESP Book"}]}], "caveats": [{"label": "Learning curve", "summary": "Its task-switching model differs from FreeRTOS-style RTOSes and requires learning new concepts.", "quotes": [{"id": 792745936, "item_id": 49546621, "url": "https://news.ycombinator.com/item?id=49546621", "by": "mrheosuper", "date": "2026-09-03", "stance": "compare", "quote": "But Embassy, with different task switching mechanism, mean i need to learn another new concept", "excerpt": "It's not about features, i believe i am not that advance user. It's just different from the RTOS i used to work on. Most of exist C RTOS work quite similar(FreeRTOS, Zephyr, ThreadX), the difference is mostly in API and Software support arround the core kernel. But Embassy, with different task switching mechanism, mean i need to learn another new concept, understanding the pros/cons. That is not what i want to do whe", "context": "embedded developer adapting to Rust", "use_case": "async Rust embedded", "switched_from": "", "story": "Async Rust vs RTOS showdown (2022)"}]}, {"label": "Missing drivers", "summary": "Async drivers for some specific peripherals may not exist yet.", "quotes": [{"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}]}], "who": [{"by": "okanat", "context": "embedded developer", "url": "https://news.ycombinator.com/item?id=49644830", "date": "2026-09-10"}, {"by": "VorpalWay", "context": "embedded developer", "url": "https://news.ycombinator.com/item?id=49489059", "date": "2026-08-29"}, {"by": "officialchicken", "context": "embedded Rust developer", "url": "https://news.ycombinator.com/item?id=49101265", "date": "2026-07-29"}, {"by": "aomix", "context": "has not done embedded work", "url": "https://news.ycombinator.com/item?id=46553143", "date": "2026-01-09"}, {"by": "jpgvm", "context": "embedded developer coming from bare metal C", "url": "https://news.ycombinator.com/item?id=46550692", "date": "2026-01-08"}], "tags": ["for embedded Rust", "for microcontrollers", "for STM32 users", "for Pi Pico / RP2350", "for ESP32"], "use_cases": ["embedded development", "embedded async runtime", "async rust embedded", "async rust on microcontrollers", "embedded rust development and testing", "embedded firmware development"], "compared": [{"slug": "tokio", "name": "Tokio", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46547740", "title": "Embassy: Modern embedded framework, using Rust and async", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=50224100", "title": "The Goose Programming Language", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49643546", "title": "Rust is tier-1 language at Microsoft", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49540415", "title": "Async Rust vs RTOS showdown (2022)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49486334", "title": "TurboKV: Insanely fast Rust key-value store", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49047351", "title": "The Rust on ESP Book", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"recommend": 4}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {"recommend": 1}, "2026-09": {"compare": 1, "recommend": 1}, "2026-10": {"recommend": 1}}, "quotes": [{"id": 803605584, "item_id": 50225349, "url": "https://news.ycombinator.com/item?id=50225349", "by": "kadw", "date": "2026-10-24", "stance": "recommend", "quote": "Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid.", "excerpt": "It would be really great to see how it fits in embedded systems, MCUs in particular! Embassy (https://github.com/embassy-rs/embassy) uses this concept of no heap allocation and I find it really solid. Even if you write in C, most of the times you don't use heap. MISRA, the C coding standard for automotives, doesn't allow dynamic allocation!", "context": "", "use_case": "embedded development", "switched_from": "", "story": "The Goose Programming Language"}, {"id": 794317281, "item_id": 49644830, "url": "https://news.ycombinator.com/item?id=49644830", "by": "okanat", "date": "2026-09-10", "stance": "recommend", "quote": "Even 64k flash and 16k ram is enough for embassy.", "excerpt": "Rust's async can be very lightweight depending on the runtime implementation. tokio and embassy are both runtimes but former is a throughput-optimized heavily multi-threaded while latter is a simple cooperative multitasking for embedded. We use both at my day job. Even 64k flash and 16k ram is enough for embassy.", "context": "embedded developer", "use_case": "embedded async runtime", "switched_from": "", "story": "Rust is tier-1 language at Microsoft"}, {"id": 792745936, "item_id": 49546621, "url": "https://news.ycombinator.com/item?id=49546621", "by": "mrheosuper", "date": "2026-09-03", "stance": "compare", "quote": "But Embassy, with different task switching mechanism, mean i need to learn another new concept", "excerpt": "It's not about features, i believe i am not that advance user. It's just different from the RTOS i used to work on. Most of exist C RTOS work quite similar(FreeRTOS, Zephyr, ThreadX), the difference is mostly in API and Software support arround the core kernel. But Embassy, with different task switching mechanism, mean i need to learn another new concept, understanding the pros/cons. That is not what i want to do whe", "context": "embedded developer adapting to Rust", "use_case": "async Rust embedded", "switched_from": "", "story": "Async Rust vs RTOS showdown (2022)"}, {"id": 791824944, "item_id": 49489059, "url": "https://news.ycombinator.com/item?id=49489059", "by": "VorpalWay", "date": "2026-08-29", "stance": "recommend", "quote": "I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run.", "excerpt": "Tokio is definitely not the only reasonable choice. I use embassy[1] on microcontrollers (the Pi Pico and ESP32 in my case), where tokio can't run. [1] https://embassy.dev/", "context": "embedded developer", "use_case": "async Rust on microcontrollers", "switched_from": "", "story": "TurboKV: Insanely fast Rust key-value store"}, {"id": 785620240, "item_id": 49101265, "url": "https://news.ycombinator.com/item?id=49101265", "by": "officialchicken", "date": "2026-07-29", "stance": "recommend", "quote": "Check out Embassy and you'll be free to ignore pretty almost everything suggested here", "excerpt": "I don't use the the builtin testing framework, or std, and I often explicitly use a no-heap crate. Check out Embassy and you'll be free to ignore pretty almost everything suggested here, especially when developing and testing. I create a separate [bin] for each test (I usually run out of flash to fit all the tests into a single binary), and a few lines of bash/python to make a test runner/reporter for all the flashin", "context": "embedded Rust developer", "use_case": "embedded Rust development and testing", "switched_from": "", "story": "The Rust on ESP Book"}, {"id": 744901088, "item_id": 46556318, "url": "https://news.ycombinator.com/item?id=46556318", "by": "chaosprint", "date": "2026-01-09", "stance": "recommend", "quote": "embassy-rs + 2350 is my go-to choice. Highly recommand this stack", "excerpt": "I'm rewriting glicol (https://glicol.org/) with no std, and embassy-rs + 2350 is my go-to choice. Highly recommand this stack if you're planning to start working with embedded systems in 2026.", "context": "", "use_case": "embedded development", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744850288, "item_id": 46553143, "url": "https://news.ycombinator.com/item?id=46553143", "by": "aomix", "date": "2026-01-09", "stance": "recommend", "quote": "people damn near fall to their knees and weep when talking about how nice the experience is using embassy", "excerpt": "I haven't had a chance to do embedded work but people damn near fall to their knees and weep when talking about how nice the experience is using embassy. Which makes me want to give it a try.", "context": "has not done embedded work", "use_case": "embedded development", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744811072, "item_id": 46550692, "url": "https://news.ycombinator.com/item?id=46550692", "by": "jpgvm", "date": "2026-01-08", "stance": "recommend", "quote": "So overall really happy with it and I highly recommend trying it out especially if you are in the STM ecosphere.", "excerpt": "I'm loving Embassy. Coming from a lot of bare metal C and FreeRTOS it finally feels like embedded is getting a toolchain that is actually modern and better. Some of that isn't just Embassy but the surrounding ecosystem, some highlights: * probe-rs w/cargo run integration * defmt logging (combined with probe-rs and rtt it's very nice) * embedded_hal (and in my case stm32-rs) I have also tried RTIC but I decided to kee", "context": "embedded developer coming from bare metal C", "use_case": "embedded firmware development", "switched_from": "FreeRTOS", "story": "Embassy: Modern embedded framework, using Rust and async"}, {"id": 744788352, "item_id": 46549272, "url": "https://news.ycombinator.com/item?id=46549272", "by": "junon", "date": "2026-01-08", "stance": "recommend", "quote": "Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "excerpt": "Great to see this on HN front page. Have used embassy several times for projects and it's a beautiful work of art. Highly recommend.", "context": "", "use_case": "embedded projects", "switched_from": "", "story": "Embassy: Modern embedded framework, using Rust and async"}]}