multiboot2 0.25.1

Convenient and safe parsing of Multiboot2 Boot Information (MBI) structures and the contained information tags. Usable in `no_std` environments, such as a kernel. The default `builder` feature also allows the construction of the corresponding structures.
Documentation

multiboot2

crates.io docs

Convenient and safe parsing of Multiboot2 Boot Information (MBI) structures and the contained information tags. Usable in no_std environments, such as a kernel. The default builder feature also allows the construction of the corresponding structures.

It follows the Multiboot 2.0 specification.

Design

For every Multiboot2 structure, there is an ABI-compatible rusty type. This enables a zero-copying parsing design while also enabling the creation of these structures via convenient constructors on the corresponding types.

Features and no_std Compatibility

This library is always no_std. The default builder feature enables alloc; using it requires an #[global_allocator]. Remove that feature if you do not need to construct boot information structures.

Background: The Multiboot 2 Information Structure

The Multiboot information structure looks like this:

Field Type
total size u32
reserved u32
tags variable
end tag = (0, 8) (u32, u32)

There are many different types of tags, but they all have the same beginning:

Field Type
type u32
size u32
other fields variable

MSRV

The MSRV is 1.85.1 stable.

License & Contribution

See main README file.