{"id":13484766,"url":"https://github.com/rust-osdev/uefi-rs","last_synced_at":"2025-05-12T11:16:40.933Z","repository":{"id":37385223,"uuid":"111702516","full_name":"rust-osdev/uefi-rs","owner":"rust-osdev","description":"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.","archived":false,"fork":false,"pushed_at":"2025-05-12T04:33:03.000Z","size":5600,"stargazers_count":1410,"open_issues_count":46,"forks_count":171,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-05-12T11:16:33.899Z","etag":null,"topics":["osdev","rust","uefi"],"latest_commit_sha":null,"homepage":"https://rust-osdev.com/uefi-book","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-osdev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"phip1611"}},"created_at":"2017-11-22T15:39:12.000Z","updated_at":"2025-05-12T04:31:44.000Z","dependencies_parsed_at":"2023-02-19T02:01:15.961Z","dependency_job_id":"c4429408-28b9-406b-95e7-2e3136c5813f","html_url":"https://github.com/rust-osdev/uefi-rs","commit_stats":{"total_commits":996,"total_committers":77,"mean_commits":"12.935064935064934","dds":0.7008032128514057,"last_synced_commit":"d38ef928aa2e14a1dc2dab29c2677703d6efee1e"},"previous_names":[],"tags_count":86,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fuefi-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fuefi-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fuefi-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fuefi-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-osdev","download_url":"https://codeload.github.com/rust-osdev/uefi-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253726903,"owners_count":21954095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["osdev","rust","uefi"],"created_at":"2024-07-31T17:01:32.958Z","updated_at":"2025-05-12T11:16:40.907Z","avatar_url":"https://github.com/rust-osdev.png","language":"Rust","funding_links":["https://github.com/sponsors/phip1611"],"categories":["Rust","Tools :hammer:","Applications","Recently Updated"],"sub_categories":["Embedded","[May 24, 2025](/content/2025/05/24/README.md)"],"readme":"# uefi-rs\n\nRusty wrapper for the [Unified Extensible Firmware Interface][UEFI].\n\nThis crate makes it easy to develop Rust software that leverages **safe**,\n**convenient**, and **performant** abstractions for [UEFI] functionality.\n\n[![Crates.io](https://img.shields.io/crates/v/uefi)](https://crates.io/crates/uefi)\n[![Docs.rs](https://docs.rs/uefi/badge.svg)](https://docs.rs/uefi)\n![License](https://img.shields.io/github/license/rust-osdev/uefi-rs)\n![Build status](https://github.com/rust-osdev/uefi-rs/workflows/Rust/badge.svg)\n![Stars](https://img.shields.io/github/stars/rust-osdev/uefi-rs)\n\n![UEFI App running in QEMU](https://imgur.com/SFPSVuO.png)\nScreenshot of an application running in QEMU on an UEFI firmware that leverages\nour Rust library.\n\n## API and User Documentation\n\u003c!-- This section is duplicated with uefi/README.md --\u003e\n\nThe main contribution of this project is the [`uefi` crate](./uefi/README.md).\nPlease refer to [docs.rs](https://docs.rs/uefi) for comprehensive documentation\nof the **latest stable release**. The latest not necessarily yet published\ndocumentation can be found in [`src/lib.rs`](./uefi/src/lib.rs), which can also\nbe locally viewed by running `$ cargo xtask doc --open`.\n\n## Developer Guide\n\n### Repository Structure\n\nThis repository provides various crates:\n\n- [`uefi`](/uefi/README.md): High-level wrapper around various low-level UEFI\n  APIs. This crate makes it easy to develop Rust software that leverages safe,\n  convenient, and performant abstractions for UEFI functionality.\n  This is the **main contribution** of this project.\n- [`uefi-raw`](/uefi-raw/README.md): Raw ABI-compatible types that closely\n  match the definitions in the UEFI Specification. They are suitable for\n  implementing UEFI firmware or creating interfaces to it.\n- [`uefi-macros`](/uefi-macros/README.md): Helper macros used by `uefi`.\n- [`uefi-test-runner`](/uefi-test-runner/README.md): A UEFI application that\n  runs our integration tests.\n- [`uefi-std-example`](/uefi-std-example/README.md): Example UEFI app but as\n  Rust standard binary.\n\n### Building and testing uefi-rs\n\nUse the `cargo xtask` command to build and test the crate.\n\nAvailable commands:\n\n- `build`: build all the UEFI packages\n  - `--release`: build in release mode\n  - `--target {x86_64,ia32,aarch64}`: choose target UEFI arch\n- `clippy`: run clippy on all the packages\n  - `--target {x86_64,ia32,aarch64}`: choose target UEFI arch\n  - `--warnings-as-errors`: treat warnings as errors\n- `doc`: build the docs for the UEFI packages\n  - `--open`: open the docs in a browser\n  - `--warnings-as-errors`: treat warnings as errors\n- `run`: build `uefi-test-runner` and run it in QEMU\n  - `--ci`: disable some tests that don't work in the CI\n  - `--disable-kvm`: disable hardware accelerated virtualization support in\n    QEMU.\n    Especially useful if you want to run the tests under\n    [WSL](https://docs.microsoft.com/en-us/windows/wsl) on Windows.\n  - `--example \u003cNAME\u003e`: run an example instead of the main binary.\n  - `--headless`: run QEMU without a GUI\n  - `--ovmf-code \u003cPATH\u003e`: path of an OVMF code file\n  - `--ovmf-vars \u003cPATH\u003e`: path of an OVMF vars file\n  - `--release`: build in release mode\n  - `--target {x86_64,ia32,aarch64}`: choose target UEFI arch\n- `test`: run unit tests and doctests on the host\n\nThe `uefi-test-runner` directory contains a sample UEFI app which exercises\nmost of the library's functionality.\n\nCheck out the testing project's [`README.md`](uefi-test-runner/README.md) for\nprerequisites for running the tests.\n\n## Discuss and Contribute\n\nFor general discussions, feel free to join us in our [Zulip] and ask\nyour questions there.\n\nFurther, you can submit bugs and also ask questions in our [issue tracker].\nContributions in the form of a PR are also highly welcome. Check our\n[contributing guide](./CONTRIBUTING.md) for details.\n\n## License\n\nLicensed under either of [Apache License, Version 2.0][apache] or\n[MIT license][mit] at your option.\n\n[apache]: LICENSE-APACHE\n[mit]: LICENSE-MIT\n[UEFI]: https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface\n[Zulip]: https://rust-osdev.zulipchat.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-osdev%2Fuefi-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-osdev%2Fuefi-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-osdev%2Fuefi-rs/lists"}