You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<spanclass="maintainers">Maintained by [@phip1611](https://github.com/phip1611)</span>
49
+
50
+
_Convenient and safe parsing of Multiboot2 Boot Information (MBI) structures and
51
+
the contained information tags. Usable in no_std environments, such as a kernel.
52
+
An optional builder feature also allows the construction of the corresponding
53
+
structures._
54
+
55
+
🎉 We are happy to announce release `v0.22` of the `multiboot2` crate. This is a
56
+
**major step forward** as all Undefined Behaviour (UB) and a bunch of safety and
57
+
memory issues have been removed / fixed. 🎉 Now, all unit tests (and there are
58
+
many) **pass Miri**! This was possible due to massive internal refactorings done
59
+
in [#226](https://github.com/rust-osdev/multiboot2/pull/226) and [#227](https://github.com/rust-osdev/multiboot2/pull/227).
60
+
61
+
The quite complex logic to parse all these structures **safe and correctly**
62
+
has been moved to a new [`multiboot2-common`](https://docs.rs/multiboot2-common)
63
+
crate. This way, the [`multiboot2-header`](https://crates.io/crates/multiboot2-header)
64
+
crate can also leverage the new abstractions. A comprehensive writeup about why
65
+
the parsing of Multiboot2 structures and typing them correctly in Rust is much
66
+
more complex than one initially might think is written down in
67
+
[`lib.rs` of `multiboot2-common`](https://docs.rs/multiboot2-common).
68
+
69
+
`multiboot2-header` also got a new release `v0.5` and can now be considered
70
+
safe and free of UB when parsing the corresponding structures. The internal
71
+
refactorings only slightly leak to the public interfaces of `multiboot2`
72
+
and `multiboot2-header`.
73
+
74
+
Read more:
75
+
-[Changelog of `multiboot2`](https://github.com/rust-osdev/multiboot2/blob/b95b73508925b5484a0cf531a45c9c9ce555d560/multiboot2/Changelog.md)
76
+
-[Changelog of `multiboot2-header`](https://github.com/rust-osdev/multiboot2/blob/b95b73508925b5484a0cf531a45c9c9ce555d560/multiboot2-header/Changelog.md)
77
+
78
+
<details>
79
+
<summary>Background - Read More</summary>
80
+
81
+
The crate grew historically without a centralized design or approach how to work
82
+
with memory and pointers. Therefore, many UB way unintentionally created. We
83
+
are happy to get lack of the technical debt. Nevertheless, thanks to everyone
84
+
who contributed over the years - sorry if we had to rewrite your code in this
0 commit comments