finds.dev← search

// the find

rust-osdev/uefi-rs

★ 1,658 · Rust · Apache-2.0 · updated Sep 2026

Rusty wrapper for the Unified Extensible Firmware Interface (UEFI). This crate makes it easy to develop Rust software that leverages safe, convenient, and performant abstractions for UEFI functionality.

A Rust wrapper around the UEFI firmware interface, split into a raw ABI-matching crate (uefi-raw) and a safe high-level crate (uefi) built on top of it. It's for people writing bootloaders, UEFI applications, or firmware tooling in Rust instead of C.

The raw/safe split is the right call — uefi-raw gives you ABI-exact types if you're implementing firmware or need raw interop, while uefi wraps it safely for application code, so you're not forced into one abstraction level. There's a real integration test runner that boots an actual UEFI app under QEMU and exercises protocols end to end, which is rare rigor for a niche systems crate. The cargo xtask tooling handles cross-target builds (x86_64/ia32/aarch64), clippy, and doc generation consistently, and CI actually runs the QEMU suite rather than just unit tests.

You're writing #![no_std] bare-metal code, so most of the normal Rust ecosystem and debugging tooling is off the table — QEMU or real hardware is your test loop. Protocol coverage is uneven: some UEFI protocols only exist as thin uefi-raw wrappers, so you'll drop into unsafe raw calls for anything less common than console/file/GOP. At ~1.6k stars, it's maintained but not battle-tested at scale — check open issues for the specific protocol you need before relying on it in something real. It pins a specific toolchain via rust-toolchain.toml, which adds friction if you're trying to fold this into an existing stable-toolchain workspace.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →