3 个版本

0.2.3 2023 年 10 月 9 日
0.2.2 2023 年 10 月 9 日
0.2.1 2023 年 9 月 18 日
0.2.0 2023 年 9 月 4 日

#540 in 文件系统

MIT/Apache

115KB
2.5K SLoC

cdfs

builds.sr.ht status docs.rs status

用 Rust 编写的 ISO 9660 / ECMA-119 文件系统实现。它仍在不断开发中。项目概述位于 Sourcehut

https://sr.ht/~az1/cdfs/

用法

请参阅示例目录和文档以获取有关如何在项目中使用 cdfs 库的更多信息。

如果您只是想使用 cdfs 来挂载 ISO,它包含了一个 FUSE 实现。

本地安装

$ cargo install cdfs

   Compiling cdfs v0.2.2
    Finished release [optimized] target(s) in 21.97s
  Installing /home/user/.cargo/bin/cdfs_fuse
   Installed package `cdfs v0.2.2` (executable `cdfs_fuse`)
$ cdfs_fuse images/rockridge.iso mountpoint/
2023-09-06T00:00:00.203Z INFO  [cdfs_fuse] NOTE: The filesystem must be manually unmounted after exit
2023-09-06T00:00:00.206Z INFO  [cdfs_fuse] Found POSIX.1 extensions with usable inodes.
2023-09-06T00:00:00.206Z INFO  [fuser::session] Mounting mountpoint/

或者像这样直接从仓库运行 cdfs

$ cargo run -- images/rockridge.iso mountpoint/
    Finished dev [unoptimized + debuginfo] target(s) in 0.15s
     Running `target/debug/cdfs_fuse`
2023-09-06T00:00:00.203Z INFO  [cdfs_fuse] NOTE: The filesystem must be manually unmounted after exit
2023-09-06T00:00:00.206Z INFO  [cdfs_fuse] Found POSIX.1 extensions with usable inodes.
2023-09-06T00:00:00.206Z INFO  [fuser::session] Mounting mountpoint/

支持的 ISO 9660 扩展

系统使用共享协议
CE – 续续区域
PD – 填充字段
SP – SUSP 开始 不强制执行
ST – SUSP 结束 忽略
ER – 扩展引用
ES – 扩展选择器
Rock Ridge 交换
PX – POSIX 属性
PN – POSIX inodes
SL – 符号链接
NM – 长文件名
CL – 子链接
PL – 父链接 N/A
RE – 重新定位目录
TF – 文件时间戳
SF – 稀疏文件

参考

许可

此项目可在 Apache 2.0 或 MIT 许可下自由选择。

依赖关系

~8–19MB
~278K SLoC