@@ -4,8 +4,40 @@ This project began life in the [blsforme](https://github.com/serpent-os/blsforme
44However as time went on it became clear we needed to extend the capabilities beyond simple topology scanning
55and superblocks to support the installer and other use cases.
66
7- This is a WIP project to extend support for more disk configurations whilst providing backend support to the
8- blsforme project and installers like lichen.
7+ Importantly due to using blsforme in moss, and requiring static linking to avoid soname breakage on updates,
8+ we were unable to leverage ` libblkid ` due to licensing incompatibilities.
9+
10+ ## Goals
11+
12+ Provide safe and sane APIs for dealing with filesystems, block devices and partitioning in Rust. The intent
13+ is to provide a high level API that can be used to build tools like installers, partitioners, and other disk
14+ management tools.
15+
16+ With support, we will also provide the foundations for a Rust implementation of ` libblkid ` , while also providing
17+ an alternative to ` libparted ` .
18+
19+ ## Support Us
20+
21+ [ ![ ko-fi] ( https://ko-fi.com/img/githubbutton_sm.svg )] ( https://ko-fi.com/J3J511WM9N )
22+
23+ [ ![ GitHub Sponsors] ( https://img.shields.io/github/sponsors/ikeycode?style=for-the-badge&logo=github&label=Sponsor&link=https%3A%2F%2Fgithub.com%2Fsponsors%2Fikeycode )] ( https://img.shields.io/github/sponsors/ikeycode?style=for-the-badge&logo=github&label=Sponsor&link=https%3A%2F%2Fgithub.com%2Fsponsors%2Fikeycode )
24+
25+ ## Crates
26+
27+ - ` disks ` - A simplistic enumeration API built atop ` sysfs ` for discovering block devices and partitions.
28+ - ` superblock ` - Pure Rust superblock parsing for various filesystems. Version-specific oddities and more filesystems
29+ will be added over time.
30+
31+ Currently we support:
32+
33+ - ` luks2 ` - LUKS2 superblock parsing.
34+ - ` ext4 ` - Ext4 superblock parsing.
35+ - ` f2fs ` - F2FS superblock parsing.
36+ - ` btrfs ` - Btrfs superblock parsing.
37+ - ` xfs ` - XFS superblock parsing.
38+
39+ - ` partitioning ` - A partitioning API for manipulating partition tables on block devices. This will be built atop
40+ ` disks ` and ` superblock ` to provide a high level API for partitioning. Currently focused on ` gpt ` .
941
1042## License
1143
0 commit comments