Skip to content

Commit d445918

Browse files
committed
doc: add "Comparison to other Projects in the Ecosystem" to lib.rs
This is especially interesting as the `std` implementation of Rust is upcoming.
1 parent 59790f8 commit d445918

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

uefi/src/lib.rs

+31
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,33 @@
115115
//! Contributions in the form of a PR are also highly welcome. Check our
116116
//! [contributing guide][contributing] for details.
117117
//!
118+
//! # Comparison to other Projects in the Ecosystem
119+
//!
120+
//! ## Rust `std` implementation
121+
//!
122+
//! There is an ongoing effort for a [`std` implementation][rustc-uefi-std] of
123+
//! the Rust standard library, which allows you to write UEFI programs that look
124+
//! very similar to normal Rust programs running on top of an OS.
125+
//!
126+
//! It is still under development. You can track the progress in the
127+
//! corresponding [tracking issue][uefi-std-tr-issue].
128+
//!
129+
//! Using the `std` implementation simplifies the overall process of producing
130+
//! the binary. For example, our [`#[entry]`][entry-macro] macro won't be
131+
//! required any longer. As the `std` implementation evolves over time, you'll
132+
//! need fewer and fewer abstractions of this crate. For everything not covered
133+
//! by the `std` implementation, you can obtain relevant structures to work with
134+
//! our crate via:
135+
//! - `std::os::uefi::env::boot_services()`
136+
//! - `std::os::uefi::env::get_system_handle()`
137+
//! - `std::os::uefi::env::get_system_table()`
138+
//!
139+
//! ## `r-efi`
140+
//!
141+
//! [`r-efi`] provides Raw UEFI bindings without high-level convenience similar
142+
//! to our `uefi-raw` crate, which is part of this project, but more
143+
//! feature-complete. It targets a lower-level than our `uefi` crate does.
144+
//!
118145
//! # License
119146
//! <!-- Keep in Sync with README! -->
120147
//!
@@ -136,11 +163,15 @@
136163
//! [`BootServices`]: table::boot::BootServices
137164
//! [`GlobalAlloc`]: alloc::alloc::GlobalAlloc
138165
//! [`SystemTable`]: table::SystemTable
166+
//! [`r-efi`]: https://crates.io/crates/r-efi
167+
//! [`entry-macro`]: uefi_macros::entry
139168
//! [`unsafe_protocol`]: proto::unsafe_protocol
140169
//! [contributing]: https://github.com/rust-osdev/uefi-rs/blob/main/CONTRIBUTING.md
141170
//! [issue tracker]: https://github.com/rust-osdev/uefi-rs/issues
142171
//! [spec]: https://uefi.org/specifications
143172
//! [unstable features]: https://doc.rust-lang.org/unstable-book/
173+
//! [rustc-uefi-std]: https://doc.rust-lang.org/nightly/rustc/platform-support/unknown-uefi.html
174+
//! [uefi-std-tr-issue]: https://github.com/rust-lang/rust/issues/100499
144175
145176
#![cfg_attr(all(feature = "unstable", feature = "alloc"), feature(allocator_api))]
146177
#![cfg_attr(docsrs, feature(doc_auto_cfg))]

0 commit comments

Comments
 (0)