@@ -13,73 +13,32 @@ Rusty wrapper for the [Unified Extensible Firmware Interface][UEFI].
1313Develop Rust software that leverages ** safe** , ** convenient** , and
1414** performant** abstractions for [ UEFI] functionality.
1515
16- ## Description
16+ ## API and User Documentation
1717
18- Our mission is to provide ** safe** and ** performant** wrappers for UEFI
19- interfaces, and allow developers to write idiomatic Rust code.
20-
21- This repository provides various crates:
22-
23- - ` uefi-raw ` : Raw Rust UEFI bindings for basic structures and functions.
24- - ` uefi ` : High-level wrapper around various low-level UEFI APIs. \
25- Offers various optional features for typical Rust convenience, such as a
26- Logger and an Allocator. (_ This is what you are usually looking for!_ )
27- - ` uefi-macros ` : Helper macros. Used by ` uefi ` .
28-
29-
30- You can use the abstractions for example to:
31-
32- - create OS-specific loaders and leverage UEFI boot service
33- - access UEFI runtime services from an OS
34-
35- [ UEFI ] : https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
18+ The main contribution of this project is the ` uefi ` crate.
19+ Please refer to [ docs.rs] ( https://docs.rs/uefi ) for comprehensive documentation
20+ of the ** latest stable release** . The latest not necessarily yet published
21+ documentation can be found in [ ` src/lib.rs ` ] ( ./uefi/src/lib.rs ) , which can also
22+ be locally build by running ` $ cargo xtask doc --open ` .
3623
3724![ UEFI App running in QEMU] ( https://imgur.com/SFPSVuO.png )
3825Screenshot of an application running in QEMU on an UEFI firmware that leverages
3926our Rust library.
4027
41- ## User Documentation
42-
43- <!-- KEEP IN SYNC WITH uefi/README -->
44-
45- For a quick start, please check out [ the UEFI application template] ( template ) .
46-
47- The [ uefi-rs book] contains a tutorial, how-tos, and overviews of some important
48- UEFI concepts. Reference documentation for the various crates can be found on
49- [ docs.rs] :
50-
51- - [ docs.rs/uefi] ( https://docs.rs/uefi )
52- - [ docs.rs/uefi-macros] ( https://docs.rs/uefi-macros )
53- - [ docs.rs/uefi-raw] ( https://docs.rs/uefi-raw )
54-
55- For additional information, refer to the [ UEFI specification] [ spec ] .
56-
57- [ spec ] : https://uefi.org/specs/UEFI/2.10
58- [ uefi-rs book ] : https://rust-osdev.github.io/uefi-rs/HEAD
59- [ docs.rs ] : https://docs.rs
60-
61- ### MSRV
62-
63- See the [ uefi package's README] ( uefi/README.md#MSRV ) .
64-
6528## Developer Guide
6629
67- ### Project structure
68-
69- This project contains multiple sub-crates:
70-
71- - ` uefi ` : defines the standard UEFI tables / interfaces.
72- The objective is to stay unopinionated and safely wrap most interfaces.
73- Additional opinionated features (such as a Logger) are feature-gated.
30+ ### Repository Structure
7431
75- - ` uefi-macros ` : procedural macros that are used to derive some traits
76- in ` uefi ` .
32+ This repository provides various crates:
7733
78- - ` uefi-raw ` : raw types that closely match the definitions in the UEFI
79- Specification. Safe wrappers for these types are provided by the ` uefi `
80- crate. The raw types are suitable for implementing UEFI firmware.
34+ - [ ` uefi-raw ` ] ( /uefi-raw/README.md ) : Raw Rust UEFI bindings for basic structures and functions.
35+ - [ ` uefi ` ] ( /uefi/README.md ) : High-level wrapper around various low-level UEFI APIs. \
36+ Offers various optional features for typical Rust convenience, such as a
37+ Logger and an Allocator.
38+ This is the ** main contribution** of this project.
39+ - [ ` uefi-macros ` ] ( /uefi-macros/README.md ) : Helper macros used by ` uefi ` .
40+ - [ ` uefi-test-runner ` ] ( /uefi-test-runner/README.md ) : a UEFI application that runs our unit / integration tests.
8141
82- - ` uefi-test-runner ` : a UEFI application that runs unit / integration tests.
8342
8443[ log ] : https://github.com/rust-lang-nursery/log
8544
0 commit comments