A framework for writing UEFI applications in Rust. It is intended to act as Rust standard library on the UEFI platform with support for things like:
Vec and String via a custom allocatorprintln!, write!, format! etc.Read and Write traits and the related typesIpAddr and its supporting typesIn addition to the above, it offers an ergonomic API for UEFI-specific functionality such as:
Thirdly it exposes an API for doing raw FFI with the UEFI platform as well. It's the same FFI API that is used to implement the above mentioned functionality.
WARNING: this crate is still a work in progress and the API surface can change without notice.
To see how to use take a look at the sample application efi_app which is built using efi.
Use nightly Rust to build. Has been tested with nightly-2018-03-30-x86_64-pc-windows-msvc. May not work with latest nightlies, especially because the allocator API is in flux. We're using a rust-toolchain file to pin the rust version to nightly-2018-03-30. If this version isn't already installed, cargo will automatically download and install it before building.