Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

rust-osdev/uefi-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Crates.ioDocs.rsLicenseBuild statusStars

UEFI App running in QEMUScreenshot of an application running in QEMU on an UEFI firmware that leveragesour Rust library.

API and User Documentation

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.

Developer Guide

Repository Structure

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.

Building and testing uefi-rs

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.

Discuss and Contribute

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.

License

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

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Sponsor this project

 

Languages


[8]ページ先頭

©2009-2025 Movatter.jp