| 
115 | 115 | //! Contributions in the form of a PR are also highly welcome. Check our  | 
116 | 116 | //! [contributing guide][contributing] for details.  | 
117 | 117 | //!  | 
 | 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 | +//!  | 
 | 145 | +//! # MSRV  | 
 | 146 | +//! <!-- Keep in Sync with README! -->  | 
 | 147 | +//!  | 
 | 148 | +//! The minimum supported Rust version is currently 1.70.  | 
 | 149 | +//! Our policy is to support at least the past two stable releases.  | 
 | 150 | +//!  | 
118 | 151 | //! # License  | 
119 | 152 | //! <!-- Keep in Sync with README! -->  | 
120 | 153 | //!  | 
 | 
129 | 162 | //! Both "EFI" and "UEFI" can be used interchangeably, such as "UEFI image" or  | 
130 | 163 | //! "EFI image". We prefer "UEFI" in our crate and its documentation.  | 
131 | 164 | //!  | 
 | 165 | +//!  | 
132 | 166 | //! [LICENSE]: https://github.com/rust-osdev/uefi-rs/blob/main/uefi/LICENSE  | 
133 | 167 | //! [Rust UEFI Book]: https://rust-osdev.github.io/uefi-rs/HEAD/  | 
134 | 168 | //! [UEFI]: https://uefi.org/  | 
135 | 169 | //! [Zulip]: https://rust-osdev.zulipchat.com  | 
136 | 170 | //! [`BootServices`]: table::boot::BootServices  | 
137 | 171 | //! [`GlobalAlloc`]: alloc::alloc::GlobalAlloc  | 
138 | 172 | //! [`SystemTable`]: table::SystemTable  | 
 | 173 | +//! [`r-efi`]: https://crates.io/crates/r-efi  | 
 | 174 | +//! [`entry-macro`]: uefi_macros::entry  | 
139 | 175 | //! [`unsafe_protocol`]: proto::unsafe_protocol  | 
140 | 176 | //! [contributing]: https://github.com/rust-osdev/uefi-rs/blob/main/CONTRIBUTING.md  | 
141 | 177 | //! [issue tracker]: https://github.com/rust-osdev/uefi-rs/issues  | 
142 | 178 | //! [spec]: https://uefi.org/specifications  | 
143 | 179 | //! [unstable features]: https://doc.rust-lang.org/unstable-book/  | 
 | 180 | +//! [rustc-uefi-std]: https://doc.rust-lang.org/nightly/rustc/platform-support/unknown-uefi.html  | 
 | 181 | +//! [uefi-std-tr-issue]: https://github.com/rust-lang/rust/issues/100499  | 
144 | 182 | 
  | 
145 | 183 | #![cfg_attr(all(feature = "unstable", feature = "alloc"), feature(allocator_api))]  | 
146 | 184 | #![cfg_attr(docsrs, feature(doc_auto_cfg))]  | 
 | 
0 commit comments