#memory-map #firmware #boot #efi #service #api-bindings #abstraction

no-std uefi

This crate makes it easy to develop Rust software that leverages safe, convenient, and performant abstractions for UEFI functionality

44 releases (breaking)

0.33.0 Oct 24, 2024
0.31.0 Aug 21, 2024
0.29.0 Jul 3, 2024
0.27.0 Mar 17, 2024
0.1.2 Feb 15, 2016

#46 in Embedded development

Download history 11534/week @ 2024-08-17 13712/week @ 2024-08-24 9375/week @ 2024-08-31 8421/week @ 2024-09-07 8381/week @ 2024-09-14 10109/week @ 2024-09-21 9464/week @ 2024-09-28 10273/week @ 2024-10-05 10537/week @ 2024-10-12 11440/week @ 2024-10-19 11385/week @ 2024-10-26 12353/week @ 2024-11-02 9622/week @ 2024-11-09 9056/week @ 2024-11-16 7424/week @ 2024-11-23 9818/week @ 2024-11-30

38,160 downloads per month
Used in 8 crates

MPL-2.0 license

1MB
20K SLoC

uefi

Rusty wrapper for the Unified Extensible Firmware Interface.

This crate makes it easy to develop Rust software that leverages safe, convenient, and performant abstractions for UEFI functionality.

Crates.io Docs.rs License Build status Stars

Value-add and Use Cases

uefi supports writing code for both pre- and post-exit boot services epochs, but its true strength shines when you create UEFI images that heavily interact with UEFI boot services. Still, you have the flexibility to just integrate selected types and abstractions into your project, for example to parse the UEFI memory map.

Note that for producing UEFI images, you also need to use a corresponding uefi compiler target of Rust, such as x86_64-unknown-uefi.

API and User Documentation

Please refer to docs.rs for comprehensive documentation of the latest stable release. The latest not necessarily yet published documentation can be found in src/lib.rs, which can also be locally viewed by running $ cargo xtask doc --open.

For an introduction to the uefi-rs project and this repository, please refer to our main README.

Dependencies

~0.4–1MB
~22K SLoC