Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork175
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.
License
Apache-2.0, MIT licenses found
Licenses found
rust-osdev/uefi-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rusty wrapper for theUnified Extensible Firmware Interface.
This crate makes it easy to develop Rust software that leveragessafe,convenient, andperformant abstractions forUEFI functionality.
Screenshot of an application running in QEMU on an UEFI firmware that leveragesour Rust library.
The main contribution of this project is theuefi
crate.Please refer todocs.rs for comprehensive documentationof thelatest stable release. The latest not necessarily yet publisheddocumentation can be found insrc/lib.rs
, which can alsobe locally viewed by running$ cargo xtask doc --open
.
This repository provides various crates:
uefi
: High-level wrapper around various low-level UEFIAPIs. This crate makes it easy to develop Rust software that leverages safe,convenient, and performant abstractions for UEFI functionality.This is themain contribution of this project.uefi-raw
: Raw ABI-compatible types that closelymatch the definitions in the UEFI Specification. They are suitable forimplementing UEFI firmware or creating interfaces to it.uefi-macros
: Helper macros used byuefi
.uefi-test-runner
: A UEFI application thatruns our integration tests.uefi-std-example
: Example UEFI app but asRust standard binary.
Use thecargo xtask
command to build and test the crate.
Available commands:
build
: build all the UEFI packages--release
: build in release mode--target {x86_64,ia32,aarch64}
: choose target UEFI arch
clippy
: run clippy on all the packages--target {x86_64,ia32,aarch64}
: choose target UEFI arch--warnings-as-errors
: treat warnings as errors
doc
: build the docs for the UEFI packages--open
: open the docs in a browser--warnings-as-errors
: treat warnings as errors
run
: builduefi-test-runner
and run it in QEMU--ci
: disable some tests that don't work in the CI--disable-kvm
: disable hardware accelerated virtualization support inQEMU.Especially useful if you want to run the tests underWSL on Windows.--example <NAME>
: run an example instead of the main binary.--headless
: run QEMU without a GUI--ovmf-code <PATH>
: path of an OVMF code file--ovmf-vars <PATH>
: path of an OVMF vars file--release
: build in release mode--target {x86_64,ia32,aarch64}
: choose target UEFI arch
test
: run unit tests and doctests on the host
Theuefi-test-runner
directory contains a sample UEFI app which exercisesmost of the library's functionality.
Check out the testing project'sREADME.md
forprerequisites for running the tests.
For general discussions, feel free to join us in ourZulip and askyour questions there.
Further, you can submit bugs and also ask questions in our [issue tracker].Contributions in the form of a PR are also highly welcome. Check ourcontributing guide for details.
Licensed under either ofApache License, Version 2.0 orMIT license at your option.
About
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.
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.