12 releases (6 breaking)

new 0.8.3 Nov 13, 2024
0.7.0 Jan 24, 2024
0.6.0 Sep 7, 2023
0.5.1 Jul 23, 2023

#316 in Filesystem

Download history 28/week @ 2024-07-29 2/week @ 2024-08-26 262/week @ 2024-09-02 102/week @ 2024-09-09 117/week @ 2024-09-16 31/week @ 2024-09-23 47/week @ 2024-09-30 1/week @ 2024-10-07 4/week @ 2024-10-14 2/week @ 2024-10-21 2/week @ 2024-11-04 122/week @ 2024-11-11

126 downloads per month
Used in xdvdfs-cli

MIT license

105KB
2.5K SLoC

xdvdfs-core

xdvdfs-core is a library for working with XDVDFS metadata.

A simple example reading a file from a given path is:

async fn read_from_path(xiso: &Path, file_path: &str) -> Box<[u8]> {
    let mut xiso = std::fs::File::open(xiso).unwrap();
    let volume = xdvdfs::read::read_volume(&mut xiso).await.unwrap();

    let file_dirent = volume.root_table.walk_path(&mut xiso, file_path).await.unwrap();

    let data = file_dirent.node.dirent.read_data_all(&mut xiso).await.unwrap();
    data
}

This library supports no_std. Custom block devices can be defined by implementing the traits in xdvdfs::blockdev.

Without the alloc feature, only basic metadata features are supported. The alloc feature enables several utility functions that require allocation (such as read_data_all above.

The source code for xdvdfs-cli provides a more detailed example of how to use xdvdfs-core in an environment with std.

Note that xdvdfs is currently not API stable, and following semver with major version 0, each minor version bump may or may not include breaking changes.

Dependencies

~3.5–6MB
~166K SLoC