@@ -31,17 +31,21 @@ Check out [the UEFI application template](template) for a quick start.
3131This project contains multiple sub-crates:
3232
3333- ` uefi ` (top directory): defines the standard UEFI tables / interfaces.
34- The objective is to stay unopionated and safely wrap most interfaces.
34+ The objective is to stay unopinionated and safely wrap most interfaces.
3535
36- Optional features:
37- - ` alloc ` : implements a global allocator using UEFI functions.
38- - This allows you to allocate objects on the heap.
36+ ** Optional crate features:**
37+
38+ - ` alloc ` : Enables functionality requiring the ` alloc ` crate from the Rust standard library.
39+ - For example, this allows many convenient ` uefi-rs ` functions to operate on heap data (` Box ` ).
40+ - It is up to the user to provide a ` #[global_allocator] ` .
41+ - ` global_allocator ` : implements a ` #[global_allocator] ` using UEFI functions.
42+ - This allows you to use all abstractions from the ` alloc ` crate from the Rust standard library
43+ during runtime. Hence, ` Vec ` , ` Box ` , etc. will be able to allocate memory.
44+ ** This is optional** , so you can provide a custom ` #[global_allocator] ` as well.
3945 - There's no guarantee of the efficiency of UEFI's allocator.
40- - ` logger ` : logging implementation for the standard [ log] crate.
41- - Prints output to console.
46+ - ` logger ` : logging implementation for the standard [ ` log ` ] crate.
47+ - Prints output to UEFI console.
4248 - No buffering is done: this is not a high-performance logger.
43- - ` exts ` : extensions providing utility functions for common patterns.
44- - Requires the ` alloc ` crate (either enable the ` alloc ` optional feature or your own custom allocator).
4549
4650- ` uefi-macros ` : procedural macros that are used to derive some traits in ` uefi ` .
4751
0 commit comments