@@ -13,73 +13,32 @@ Rusty wrapper for the [Unified Extensible Firmware Interface][UEFI].
13
13
Develop Rust software that leverages ** safe** , ** convenient** , and
14
14
** performant** abstractions for [ UEFI] functionality.
15
15
16
- ## Description
16
+ ## API and User Documentation
17
17
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 ` .
36
23
37
24
![ UEFI App running in QEMU] ( https://imgur.com/SFPSVuO.png )
38
25
Screenshot of an application running in QEMU on an UEFI firmware that leverages
39
26
our Rust library.
40
27
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
-
65
28
## Developer Guide
66
29
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
74
31
75
- - ` uefi-macros ` : procedural macros that are used to derive some traits
76
- in ` uefi ` .
32
+ This repository provides various crates:
77
33
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.
81
41
82
- - ` uefi-test-runner ` : a UEFI application that runs unit / integration tests.
83
42
84
43
[ log ] : https://github.com/rust-lang-nursery/log
85
44
0 commit comments