4 puntos por GN⁺ 2026-01-10 | 2 comentarios | Compartir por WhatsApp
  • Framework de nueva generación diseñado para desarrollar rápidamente aplicaciones embebidas seguras y eficientes
  • Garantiza seguridad de memoria y de hilos en tiempo de compilación sin runtime ni recolector de basura, y permite multitarea sin RTOS
  • Incluye funciones clave como HAL, networking, Bluetooth, USB y bootloader, con soporte para diversos microcontroladores
  • Considera tanto el procesamiento en tiempo real como la duración de la batería mediante un diseño de bajo consumo y un executor basado en prioridades
  • Se está consolidando como la plataforma de referencia para el desarrollo embebido asíncrono dentro del ecosistema Rust

Resumen de Embassy

  • Embassy es un framework de nueva generación que permite escribir aplicaciones embebidas de forma segura y eficiente usando Rust y capacidades async
    • Funciona sin runtime, recolector de basura ni sistema operativo
    • Garantiza seguridad de memoria y de hilos en tiempo de compilación

Arquitectura basada en Rust + async

  • Implementa multitarea eficiente en entornos embebidos mediante la funcionalidad async/await de Rust
    • Las tareas se convierten en máquinas de estado (state machine) en tiempo de compilación y se ejecutan de forma cooperativa
    • No requiere asignación dinámica de memoria y se ejecuta sobre una sola pila
    • Logra código más rápido y de menor tamaño incluso sin el cambio de contexto de un RTOS
  • En el material enlazado se menciona una ventaja de rendimiento frente a RTOS

Componentes principales (Batteries Included)

  • Capa de abstracción de hardware (HAL)
    • Controla funciones de hardware con una API segura en Rust
    • Principales plataformas compatibles: STM32, nRF, RP2040, MSPM0, ESP32, CH32, PolarFire SoC, PY32
  • Gestión del tiempo (embassy-time)
    • Proporciona tipos Instant, Duration y Timer utilizables de forma global, sin overflow
  • Soporte en tiempo real y de bajo consumo
    • Permite crear varios executors para ejecutar tareas con prioridad
    • En reposo, cambia automáticamente el núcleo al modo de ahorro de energía, con wake-up basado en interrupciones
  • Networking (embassy-net)
    • Soporta Ethernet, IP, TCP, UDP, ICMP y DHCP
    • Su estructura asíncrona simplifica la gestión de timeouts y el manejo de múltiples conexiones
  • Bluetooth
    • Soporta varios stacks BLE como trouble, nrf-softdevice y embassy-stm32-wpan
  • LoRa, USB, Bootloader
    • Soporta stack LoRaWAN con lora-rs
    • embassy-usb implementa clases USB CDC y HID
    • embassy-boot soporta actualizaciones de firmware seguras incluso ante fallos de energía

Especificaciones técnicas y licencia

  • Versión mínima compatible de Rust (MSRV): 1.75 o superior
  • Licencia: se puede elegir entre Apache-2.0 o MIT
  • El nombre del proyecto es una abreviatura de “** EMBedded ASYnc**”

2 comentarios

 
pmnxis 2026-01-11

He llegado a usar embassy-rs para desarrollar y hasta llevar a producción un producto con STM32G030C8T6, y mientras lo usaba noté algunas desventajas.
Cuando necesitas acceder a un HAL que no es común, al final terminas necesitando el enfoque que se usaba con el framework RTIC.
Por culpa de async, hay una alta posibilidad de que el uso de memoria se vuelva ineficiente, así que hay que tener cuidado.
Es muy restrictivo desarrollar en entornos con memoria flash de 32 KB o menos (log + símbolos de depuración, etc.).
Si quieres desarrollar en un ecosistema fuera de NRF/STM/ESP/RP, en la práctica es muy difícil.
Está bien probar Rust embebido con embassy-rs, pero si más adelante quieres mejorar de cara a producción en masa y también profesionalmente, creo que conviene probar un poco más RTIC.
Por otro lado, me preocupa que, al volverse una especie de advanced Rust Arduino y tener buena accesibilidad, eso termine generando situaciones complicadas cuando toque hacer desarrollo más avanzado.

 
GN⁺ 2026-01-10
Comentarios de Hacker News
  • Soy muy fan del proyecto Embassy. Es un ejemplo perfecto de por qué async Rust es tan impresionante
    Funciona sin heap, y con abstracciones de costo cero permite concurrencia incluso en chips de un solo núcleo. Tampoco tiene la complejidad de un RTOS
    De verdad sorprende cuánto ha crecido el equipo de Embassy.
    También recomiendo reqwless, un cliente HTTP para Embassy-net. Incluso soporta HTTPS
    Antes no pensaba que Rust embebido fuera mejor que C/C++, pero ahora termino decidiendo qué MCU comprar según si soporta Rust

    • Me pregunto qué kit de desarrollo MCU recomendarían para probar esto
    • Me gusta mucho que aporte seguridad de tipos al HAL. Sirve como una especie de colchón de protección para quienes recién entran a este campo
      Aunque todavía no entiendo bien qué es un watchdog
  • Lo que más disfruto de Embassy es la capa de patrones de aplicación
    La idea es tener tareas de dispositivo de larga vida que esconden el timing y la coordinación detrás de pequeñas APIs async
    Por ejemplo, en código como loop { let btn = ir.wait_for_press().await; }, el compilador genera automáticamente la máquina de estados
    Creo que este estilo es un resultado natural de async + no-std
    Me gustaría que hubiera más discusión sobre esta estructura de aplicación que sobre el HAL o el executor
    En este artículo gratuito, escrito junto con Brad Gibson, también se aborda esta idea
    Además abrí el repositorio device-kit para experimentar y documentar estos patrones. Me gustaría conocer otros repos que intenten algo parecido

    • Esto es útil no solo para lógica de alto nivel, sino también para firmware de bajo nivel
      Cuando antes escribía firmware para NICs con máquinas de estados, me habría encantado tener algo como async de Rust
      En C también se pueden imitar corrutinas, pero queda demasiado hacky
      En ese tiempo creía que los hilos de RTOS eran caros, aunque ahora no estoy tan seguro de que siempre fuera así
      Si hubiera existido async para manejar protocolos como 802.11, el código habría sido mucho más pequeño y simple
  • Me gusta muchísimo Embassy
    Vengo de Bare metal C y FreeRTOS, y por fin siento que los sistemas embebidos tienen un toolchain moderno
    En especial, el ecosistema alrededor es excelente — integración de probe-rs + cargo run, logging con defmt, embedded_hal, stm32-rs, etc.
    También probé RTIC, pero terminé quedándome con Embassy por la ergonomía de la sintaxis async
    Me sorprendió que compilara y corriera directamente en macOS. Antes siempre había que usar Linux, pero ahora se puede hacer directo en chips M
    Me tomó algo de tiempo entender el concepto de compartir acceso a periféricos, pero como las reglas de bloqueo se fuerzan en tiempo de compilación, casi no hay bugs
    La calidad de los stacks de USB y networking también es muy alta. Uso PLDM sobre USB y un stack TCP sobre Ethernet, y funciona perfectamente
    Como desventajas, es difícil incorporar gente acostumbrada a los ejemplos tradicionales de los vendors, y si el vendor no conoce Rust, depurar en colaboración se complica
    Aun así, si estás en el ecosistema STM, lo recomiendo mucho

    • Cuando compilé Embassy hace tiempo, me sorprendió que trajera más de 100 dependencias. Para hobby está bien, pero para uso industrial todavía me parece lejos
    • Me preguntaba si también soporta multinúcleo como en ESP32, y por lo que veo se puede con un segundo executor y comunicación vía embassy_sync
  • Embassy y async Rust son la mayor innovación que ha ocurrido en el mundo embebido en los últimos 10 años
    Los RTOS basados en C tienen buenas ideas, pero en la práctica usarlos es doloroso. Un framework liviano como Embassy es la evolución natural
    De hecho, Embassy casi puede verse como un sistema operativo en tiempo real. Para más detalle, ver este artículo

  • Estoy reescribiendo Glicol a no-std, y la combinación embassy-rs + 2350 es lo máximo
    Si planeas empezar con desarrollo embebido en 2026, recomiendo muchísimo este stack

  • Un poco fuera de tema, pero me pregunto qué sería bueno para empezar desde cero en desarrollo embebido
    Llevo más de 10 años haciendo solo desarrollo web y estoy estudiando el libro de Rust. Ya pedí una Raspberry Pi, pero ¿eso realmente cuenta como embebido?

    • Más que una Raspberry Pi, recomiendo una placa ST Nucleo. Trae programador SWD integrado, así que flashear y depurar es fácil
      Un modelo como NUCLEO-F767ZI, que tiene puerto USB, está muy bien
    • Yo compré una ESP32-C6 Touch LCD por $25, y es casi como un Fitbit sin correa
      Tiene Wi‑Fi, BLE y hasta sensor de 6 ejes, y los demos en C corren de inmediato. LVGL también está muy bien
      Todavía no la he usado con Rust, pero como está basada en RISC-V me parece interesante. Elecrow y Makerfabs también son buenas opciones para principiantes
    • Recomiendo comprar una placa con RP2040 y un kit inicial de componentes electrónicos para empezar a programar de una vez
      Si vas con Rust, rp-hal es bueno para arrancar, y Embassy conviene probarlo un poco más adelante
    • La Raspberry Pi también permite usar GPIO, así que sirve para agarrarle el feeling a lo embebido
      Si quieres ir a algo más cercano a bare metal, recomiendo una placa ESP32. Son baratas y hay muchos formatos con cargador de batería o pantalla integrada
  • Hice un relay LoRa con Embassy y lo uso con la app Bitchat (basada en nrf52)
    En general funciona de forma muy fluida, y los panics venían de problemas del lado de Nordic SoftDevice

    • ¿Bitchat no está basado en BLE? Me da curiosidad si implementaste el protocolo LoRa directamente, o si más bien estás puenteando algo como Meshtastic
  • Estaba haciendo un controlador de pedal para amplificador de modelado de guitarra Spark con Embassy
    Controla el amplificador por BLE, y me pareció interesante que el stack BLE de Rust fuera completamente open source
    Eso sí, todavía está en una etapa temprana, así que la API cambia seguido y tuve que fijar revisiones de git en Cargo
    Aun así, me entusiasma su futuro

  • En Microsoft también están usando Embassy para EC (Embedded Controller)
    Para más detalles, ver Open Device Partnership

  • Ariel OS es un sistema operativo construido sobre Embassy. Vale la pena echarle un vistazo

    • Es independiente de Embassy, pero si buscas multitarea preventiva, también vale la pena mirar Xous