4 poin oleh GN⁺ 2026-01-10 | 2 komentar | Bagikan ke WhatsApp
  • Framework generasi berikutnya yang dirancang untuk memungkinkan pengembangan aplikasi embedded yang aman dan efisien dengan cepat
  • Menjamin keamanan memori dan thread pada waktu kompilasi tanpa runtime atau garbage collector, serta menjalankan multitasking tanpa RTOS
  • Mendukung beragam mikrokontroler dengan menyertakan fitur utama seperti HAL, jaringan, Bluetooth, USB, dan bootloader
  • Dengan desain hemat daya dan executor berbasis prioritas, mempertimbangkan pemrosesan real-time sekaligus daya tahan baterai
  • Telah memantapkan posisinya sebagai platform utama untuk pengembangan embedded asinkron yang terintegrasi dengan ekosistem Rust

Ikhtisar Embassy

  • Embassy adalah framework generasi berikutnya yang memungkinkan penulisan aplikasi embedded yang aman dan efisien dengan memanfaatkan Rust dan fitur async
    • Berjalan tanpa runtime, garbage collector, atau sistem operasi
    • Menjamin keamanan memori dan thread pada waktu kompilasi

Arsitektur berbasis Rust + async

  • Mengimplementasikan multitasking yang efisien di lingkungan embedded melalui fitur async/await milik Rust
    • Task diubah menjadi state machine pada waktu kompilasi dan dijalankan secara kooperatif
    • Tidak memerlukan alokasi memori dinamis, berjalan di atas satu stack
    • Mencapai kode yang lebih cepat dan lebih kecil bahkan tanpa context switching RTOS
  • Materi yang ditautkan menyebutkan keunggulan performa dibanding RTOS

Komponen utama (Batteries Included)

  • Hardware abstraction layer (HAL)
    • Mengontrol fungsi hardware melalui API Rust yang aman
    • Target dukungan utama: STM32, nRF, RP2040, MSPM0, ESP32, CH32, PolarFire SoC, PY32
  • Manajemen waktu (embassy-time)
    • Menyediakan tipe Instant, Duration, Timer yang dapat digunakan secara global, tanpa overflow
  • Dukungan real-time dan hemat daya
    • Dapat membuat beberapa executor untuk menjalankan task berbasis prioritas
    • Saat idle, core otomatis masuk ke mode hemat daya, dengan wake-up berbasis interupsi
  • Jaringan (embassy-net)
    • Mendukung Ethernet, IP, TCP, UDP, ICMP, DHCP
    • Struktur asinkron menyederhanakan pengelolaan timeout dan penanganan banyak koneksi
  • Bluetooth
    • Mendukung berbagai stack BLE seperti trouble, nrf-softdevice, embassy-stm32-wpan
  • LoRa, USB, Bootloader
    • Mendukung stack LoRaWAN melalui lora-rs
    • embassy-usb mengimplementasikan kelas USB CDC dan HID
    • embassy-boot mendukung pembaruan firmware yang aman bahkan saat terjadi gangguan daya

Spesifikasi teknis dan lisensi

  • Versi Rust minimum yang didukung (MSRV): 1.75 atau lebih baru
  • Lisensi: dapat memilih Apache-2.0 atau MIT
  • Nama proyek merupakan singkatan dari “EMBedded ASYnc

2 komentar

 
pmnxis 2026-01-11

Saya pernah memakai embassy-rs untuk mengembangkan produk dengan STM32G030C8T6 sampai tahap produksi massal, dan ada beberapa kekurangan yang saya rasakan saat menggunakannya.
Saat perlu mengakses HAL yang tidak umum, pada akhirnya tetap dibutuhkan pendekatan seperti yang dipakai di framework RTIC.
Karena async, ada kemungkinan memori menjadi tidak efisien sehingga perlu berhati-hati.
Untuk pengembangan di lingkungan dengan memori flash 32KB atau kurang, ini sangat membatasi. (log+debug symbol dll.)
Kalau ingin mengembangkan di ekosistem di luar NRF/STM/ESP/RP, pada praktiknya ini sangat sulit.
Mencicipi Rust embedded dengan embassy-rs itu bagus, tetapi jika nantinya ingin perbaikan dari sisi produksi massal maupun karier, sepertinya lebih baik juga mencoba RTIC lebih jauh.
Di sisi lain, ada kekhawatiran bahwa karena ia menjadi semacam advanced Rust Arduino dan mudah diakses, hal itu justru bisa menimbulkan situasi yang menyulitkan saat melakukan pengembangan yang tingkat kesulitannya lebih tinggi.

 
GN⁺ 2026-01-10
Opini Hacker News
  • Saya penggemar besar proyek Embassy. Ini contoh sempurna yang menunjukkan kenapa async Rust begitu hebat
    Bisa berjalan tanpa heap, dan dengan abstraksi berbiaya rendah memungkinkan eksekusi konkuren bahkan di chip single-core. Juga tanpa kerumitan RTOS
    Sungguh mengejutkan melihat tim Embassy bisa berkembang sejauh ini.
    Saya juga merekomendasikan reqwless, klien HTTP untuk Embassy-net. Bahkan mendukung HTTPS
    Dulu saya tidak menganggap Rust embedded lebih baik daripada C/C++, tapi sekarang saya menilai keputusan membeli MCU berdasarkan dukungan Rust

    • Saya penasaran kit pengembangan MCU apa yang direkomendasikan kalau ingin mencoba ini
    • Saya sangat suka bagaimana ini membawa type safety ke HAL. Ini seperti lapisan pelindung bagi orang yang baru masuk ke bidang ini
      Meski begitu, saya masih belum benar-benar paham apa itu watchdog
  • Hal yang paling saya nikmati dari Embassy ada di lapisan pola aplikasi
    Strukturnya adalah task perangkat berumur panjang yang menyembunyikan timing dan koordinasi di balik API async kecil
    Misalnya pada kode seperti loop { let btn = ir.wait_for_press().await; }, compiler otomatis membuat state machine untuknya
    Saya rasa gaya seperti ini adalah hasil alami dari async + no-std
    Saya berharap ada lebih banyak diskusi tentang struktur aplikasi seperti ini, bukan hanya HAL atau executor
    Ide ini juga dibahas dalam tulisan gratis yang saya tulis bersama Brad Gibson
    Saya juga membuka repo device-kit untuk bereksperimen dan mendokumentasikan pola seperti ini. Saya ingin tahu repo lain yang mencoba hal serupa

    • Ini berguna bukan hanya untuk logika tingkat tinggi, tetapi juga untuk firmware tingkat rendah
      Dulu saat menulis firmware NIC sebagai state machine, akan sangat menyenangkan kalau ada sesuatu seperti async di Rust
      Di C kita memang bisa meniru coroutine, tapi terlalu hacky
      Waktu itu saya percaya thread RTOS mahal, tapi sekarang kalau dipikir-pikir belum tentu begitu
      Bahkan untuk penanganan protokol seperti 802.11, kalau ada async kode pasti akan jauh lebih kecil dan sederhana
  • Saya sangat menyukai Embassy
    Saya pindah dari bare metal C dan FreeRTOS, dan rasanya akhirnya embedded punya toolchain modern
    Ekosistem di sekitarnya juga luar biasa — integrasi probe-rs + cargo run, logging defmt, embedded_hal, stm32-rs, dan lain-lain
    Saya juga pernah memakai RTIC, tapi akhirnya menetap di Embassy karena ergonomi sintaks async
    Saya juga kaget karena bisa langsung build dan jalan di macOS. Dulu saya selalu harus pakai Linux, tapi sekarang bisa langsung di chip M
    Butuh sedikit waktu untuk memahami konsep berbagi akses periferal, tetapi karena aturan lock dipaksakan saat compile time, bug hampir tidak ada
    Kualitas stack USB dan networking-nya juga sangat tinggi. Saya memakai PLDM over USB dan stack Ethernet TCP, dan semuanya bekerja sempurna
    Kekurangannya, onboarding orang yang terbiasa dengan contoh vendor lama cukup sulit, dan kalau vendor tidak paham Rust, kolaborasi debugging jadi susah
    Meski begitu, untuk ekosistem STM saya sangat merekomendasikannya

    • Saat dulu saya build Embassy, saya kaget karena menarik lebih dari 100 dependensi. Untuk hobi sih bagus, tapi menurut saya untuk industri masih belum matang
    • Saya penasaran apakah ESP32 yang multicore juga didukung, dan ternyata bisa dengan executor kedua lalu berkomunikasi lewat embassy_sync
  • Embassy dan async Rust adalah inovasi terbesar yang terjadi di dunia embedded dalam 10 tahun terakhir
    RTOS berbasis C itu bagus secara konsep, tapi menyakitkan untuk dipakai dalam praktik. Framework ringan seperti Embassy adalah evolusi yang alami
    Embassy pada dasarnya juga bisa dilihat sebagai real-time OS. Untuk detail lebih lanjut, lihat tulisan ini

  • Saya sedang menulis ulang Glicol ke no-std, dan kombinasi embassy-rs + 2350 adalah yang terbaik
    Kalau Anda berencana mulai pengembangan embedded pada 2026, saya sangat merekomendasikan stack ini

  • Sedikit keluar topik, tapi saya penasaran apa yang bagus untuk mulai belajar pengembangan embedded
    Setelah lebih dari 10 tahun hanya mengerjakan web development, saya sedang belajar dari buku Rust. Saya sudah memesan Raspberry Pi, tapi apakah itu benar-benar bisa disebut embedded?

    • Saya lebih merekomendasikan board ST Nucleo daripada Raspberry Pi. Ada programmer SWD bawaan, jadi flashing dan debugging lebih mudah
      Model seperti NUCLEO-F767ZI yang punya port USB itu bagus
    • Saya membeli ESP32-C6 Touch LCD seharga $25, dan rasanya hampir seperti Fitbit tanpa strap
      Ada Wi-Fi, BLE, sensor 6-axis, dan demo C-nya langsung jalan. LVGL juga sangat bagus
      Saya belum mencobanya dengan Rust, tapi karena berbasis RISC-V jadi menarik. Elecrow atau Makerfabs juga bagus untuk pemula
    • Saya sarankan beli board dengan RP2040 dan starter kit komponen elektronik, lalu langsung mulai ngoding
      Untuk Rust, rp-hal bagus untuk pemula, dan Embassy bisa dicoba sedikit belakangan
    • Raspberry Pi juga bisa menangani GPIO, jadi bagus untuk membangun intuisi embedded
      Kalau ingin lebih dekat ke bare metal, saya merekomendasikan board ESP32. Murah, dan tersedia dalam banyak form factor dengan charger baterai atau layar bawaan
  • Saya membuat relay LoRa dengan Embassy dan memakainya di aplikasi Bitchat (berbasis nrf52)
    Sebagian besar berjalan sangat mulus, dan panic yang muncul ternyata masalah di sisi Nordic SoftDevice

    • Bukankah Bitchat berbasis BLE? Saya penasaran apakah Anda mengimplementasikan protokol LoRa sendiri, atau menjembatani sesuatu seperti Meshtastic
  • Saya sedang membuat controller pedal amp gitar modeling Spark dengan Embassy
    Amp-nya dikendalikan lewat BLE, dan menarik karena stack BLE Rust-nya sepenuhnya open source
    Namun ini masih tahap awal, jadi API sering berubah dan saya harus mengunci revisi git di Cargo
    Meski begitu, masa depan proyek ini menjanjikan

  • Microsoft juga memakai Embassy untuk EC (Embedded Controller)
    Untuk detailnya, lihat Open Device Partnership

  • Ariel OS adalah sistem operasi yang dibangun di atas Embassy. Layak dilihat

    • Terpisah dari Embassy, tapi kalau Anda mencari preemptive multitasking, Xous juga layak dilirik