Rust와 async 기반의 현대적 임베디드 프레임워크 Embassy

1 month ago 10

  • Embassy는 Rust 언어와 비동기(async) 기능을 활용해 안전하고 효율적인 임베디드 애플리케이션을 빠르게 개발할 수 있도록 설계된 차세대 프레임워크
  • 런타임이나 가비지 컬렉터 없이 컴파일 타임 메모리·스레드 안전성을 확보하며, RTOS 없이도 멀티태스킹을 수행
  • HAL, 네트워킹, Bluetooth, USB, 부트로더 등 주요 기능을 포함해 다양한 마이크로컨트롤러를 지원
  • 저전력 설계우선순위 기반 실행기(executor) 로 실시간 처리와 배터리 수명을 모두 고려
  • Rust 생태계와 결합된 비동기 임베디드 개발의 대표 플랫폼으로 자리잡고 있음

Embassy 개요

  • Embassy는 Rust와 async 기능을 이용해 임베디드 애플리케이션을 안전하고 효율적으로 작성할 수 있는 차세대 프레임워크
    • 런타임, 가비지 컬렉터, 운영체제 없이 동작
    • 컴파일 타임에 메모리 및 스레드 안전성을 확보
  • 공식 문서, API 레퍼런스, 웹사이트, 채팅 채널이 제공됨

Rust + async 기반 구조

  • Rust의 async/await 기능을 통해 임베디드 환경에서 효율적인 멀티태스킹 구현
    • 태스크는 컴파일 타임에 상태 머신(state machine) 으로 변환되어 협력적으로 실행
    • 동적 메모리 할당 불필요, 단일 스택에서 실행
    • RTOS의 컨텍스트 스위칭 없이도 더 빠르고 작은 코드 크기 달성
  • 링크된 자료에서 RTOS 대비 성능 우위를 언급함

주요 구성 요소 (Batteries Included)

  • 하드웨어 추상화 계층(HAL)
    • 안전한 Rust API로 하드웨어 기능을 제어
    • 주요 지원 대상: STM32, nRF, RP2040, MSPM0, ESP32, CH32, PolarFire SoC, PY32
  • 시간 관리(embassy-time)
    • 전역적으로 사용 가능한 Instant, Duration, Timer 타입 제공, 오버플로우 없음
  • 실시간 및 저전력 지원
    • 여러 실행기(executor)를 생성해 우선순위 기반 태스크 실행 가능
    • 유휴 시 코어를 자동으로 절전 모드로 전환, 인터럽트 기반 웨이크업
  • 네트워킹(embassy-net)
    • Ethernet, IP, TCP, UDP, ICMP, DHCP 지원
    • 비동기 구조로 타임아웃 관리 및 다중 연결 처리 단순화
  • Bluetooth
    • trouble, nrf-softdevice, embassy-stm32-wpan 등 다양한 BLE 스택 지원
  • LoRa, USB, Bootloader
    • lora-rs로 LoRaWAN 스택 지원
    • embassy-usb는 USB CDC, HID 클래스 구현
    • embassy-boot는 전원 장애에도 안전한 펌웨어 업데이트 지원

예제 및 개발 환경

  • 예제는 examples/ 폴더에 칩 제조사별로 구분되어 있음
    • 예: nrf52840, stm32xx, rp, std 등
  • 실행 절차
    • probe-rs 설치 후 예제 디렉터리 이동
    • Cargo.toml과 .cargo/config.toml에서 칩 이름 설정
    • cargo run --release --bin blinky 명령으로 실행
  • Rust Analyzer 기반 IDE 사용 시 .vscode/settings.json의 rust-analyzer.linkedProjects 설정 필요

기술 사양 및 라이선스

  • 최소 지원 Rust 버전(MSRV) : 1.75 이상
  • 라이선스: Apache-2.0 또는 MIT 중 선택 가능
  • 저작권 문서는 LICENSE-APACHE, LICENSE-MIT, LICENSE-CC-BY-SA 포함
  • 이름의 의미는 “** EMBedded ASYnc**”의 약자

프로젝트 현황

  • GitHub에서 8.5k 스타, 1.3k 포크, 177개 태그, 636명 기여자
  • 코드의 99.6%가 Rust로 작성
  • 최신 커밋은 2026년 1월 기준으로 활발히 유지됨

요약

  • Embassy는 Rust의 안전성과 async의 효율성을 결합한 현대적 임베디드 프레임워크
  • RTOS 대체 수준의 비동기 실행 모델, 다양한 하드웨어 지원, 저전력 설계가 특징
  • 네트워킹·Bluetooth·USB·부트로더 등 실무 기능을 통합 제공
  • Rust 1.75 이상에서 안정적으로 컴파일되며, Apache-2.0/MIT 듀얼 라이선스로 공개
  • 활발한 커뮤니티와 풍부한 예제로 임베디드 Rust 개발의 핵심 플랫폼으로 성장 중

Read Entire Article