3 unstable releases
Uses new Rust 2024
| 0.3.1 | Jan 20, 2026 |
|---|---|
| 0.3.0 | Jan 4, 2026 |
| 0.2.0 | Sep 12, 2025 |
#1518 in Hardware support
49 downloads per month
Used in 2 crates
76KB
2K
SLoC
firefly-hal
Hardware Abstraction Layer for Firefly Zero device and emulators.
This package is used by firefly-runtime. It provides a Device trait and 3 separate implementations for it. The correct implementation is picked automatically based on the build target.
Installation
Install from git. We use dev version of embedded-sdmmc so the project cannot yet be published to crates.io.
firefly-hal = { git = "https://github.com/firefly-zero/firefly-hal" }
Development
Run all code formatters, linters, and tests for all environments:
- Install task
task all
Since there are 3 implementations that cannot coexist in the same environment, your IDE can only analyze one of them.
Embedded
Install ESP32-compatible Rust fork. Follow instructions here: RISC-V and Xtensa Targets.
Hosted
rm rust-toolchain.toml
rm -r .cargo
rm -r .vscode
When contributing, make sure to not commit removed files.
Web
Follow the instructions for hosted and then in lib.rs replace path = "hosted.rs" with path = "web.rs".
Keep in mind that web environment is currently not complete and cannot yet be compiled.
License
Unlike SDKs, CLI, and other gamedev tools we provide (which are all under MIT License), the HAL, runtime, and emulators are licensed under GNU GPL. You can make your own Firefly Zero but it must be truly FOSS with all proper attributions.
Dependencies
~4–14MB
~271K SLoC