20 个版本 (11 个破坏性更新)
| 0.12.0 | 2024年3月9日 | 
|---|---|
| 0.10.0 | 2023年10月14日 | 
| 0.9.0 | 2022年12月20日 | 
| 0.8.0 | 2022年11月24日 | 
| 0.1.2 | 2016年5月30日 | 
#41 in 文件系统
42,682 每月下载次数
用于 27 个 Crates (23 个直接使用)
315KB
 6.5K  SLoC
rust-vfs
Rust 的虚拟文件系统
虚拟文件系统抽象化了一般文件系统,允许使用不同的文件系统实现(例如,用于单元测试的内存实现)
该包当前有以下实现:
- PhysicalFS - 下层操作系统的实际文件系统
- MemoryFS - 一个短暂的内存文件系统,主要用于单元测试
- AltrootFS - 一个根目录位于另一个文件系统特定目录的文件系统
- OverlayFS - 一个组合两个文件系统的覆盖文件系统,上层具有读写访问权限,下层只有读访问权限
- EmbeddedFS - 集成在可执行文件中的只读文件系统,需要 embedded-fs功能,没有异步版本
最低支持的 Rust 版本 (MSRV) 为 1.63。
欢迎评论和拉取请求!
变更日志
0.11.0 (2024-02-18)
- 将最低支持的 Rust 版本更新到 1.63。
- 更新 rust-embed 依赖项到 8.0 - 感谢 @NickAcPT!
- 解锁 tokio crate 版本以与新版本兼容 - 感谢 @Fredrik-Reinholdsen!
- 使用 Arc<str>在内部路径中减少字符串分配 - 感谢 @BrettMayson!
0.10.0 (2023-09-08)
- 添加了 crate 的异步端口,在新的模块 async_vfs中。该模块位于async-vfs功能标志之后,默认情况下未启用。向 @Fredrik Reinholdsen 表示巨大的感谢!
- 将所有同步测试和文档测试转换为异步
- 将最低支持的 Rust 版本更新到 1.61.0,以支持异步端口。
- 将 Rust 版本从 2018 更新到 2021,以支持异步端口。
- 更新 CI 流水线中使用的 Rust 版本。
0.9.0 (2022-12-20)
- 在并行执行时防止 Path::create_dir_all()失败(修复了 #47)
- 允许在 VfsPath::join()中使用绝对路径(例如以"/"开头)(#45 - 感谢 @Property404)
- 允许路径中存在多个连续的斜杠(#43 - 感谢 @Property404)
- 添加方法 VfsPath::is_root()(#44 - 感谢 @Property404)
- Path::join()现在允许在根目录中解析 '..' (解析为根目录本身)(#41 - 感谢 @Property404)
- 将 Send添加到从 API 返回的特例对象中(#40,#46 - 感谢 @Property404)
0.8.0 (2022-11-24)
- 为 VfsError实现std::error::Error(#32)并改进了最终用户的错误处理(#34) - 感谢 @Technohacker
0.7.1 (2022-04-15)
- 修复了在 MemoryFS::append_file()中访问不存在路径时的恐慌(关闭了 #31)
0.7.0 (2022-03-26)
0.6.2 (2022-03-07)
0.6.1 (2022-03-06)
- 添加了 VfsPath::root()方法以访问虚拟文件系统的根路径(关闭了 #26)
- 在 VfsPath文档中添加了 doctests 以提供使用示例
0.6.0 (2022-03-02)
- 修复了 EmbeddedFS中的路径不一致问题(关闭了 #24)
- 添加了测试宏 test_vfs_readonly!以验证只读文件系统实现
- 移除了对 thiserrorcrate 的依赖,以改进编译时间(关闭了 #25)
0.5.2 (2022-02-07)
- 移除了 OverlayFS中的潜在恐慌(关闭了 #23)
- VfsPath::join()现在采用 AsRef 代替 &str,以改善与 camino 等crate的易用性
0.5.1 (2021-02-13)
- 通过特性标志 export-test-macros导出test_vfs宏,以便下游实现可以验证预期行为
- 由于上游 crate 的需求,MSRV 现在是 1.40
- 嵌入式实现因 0.5.0 API 变更而损坏,现已修复
0.5.0 (2021-02-13)
- 添加了 EmbeddedFS以使用通过 rust-embed 集成的文件系统(PR #12 - 感谢 @ahouts)
- 将 VfsPath::exists()改为返回VfsResult<bool>而不是原始的bool(关闭 #17)
0.4.0 (2020-08-13)
- 添加了 OverlayFS联合文件系统
- 添加了 VfsPath::read_to_string()便利方法
- 添加了 VfsPath::walk_dir()方法用于递归遍历目录
- 添加了 VfsPath::{copy,move}_{file,dir}()方法(关闭 #9)
- 许可证现在是 Apache 2.0
- 最低支持的 Rust 版本 (MSRV) 是 1.32.0
0.3.0 (2020-08-04)
- 重构以使用基于 trait 的设计,简化了使用和测试
0.2.1 (2020-02-06)
- 添加了 AltrootFS(感谢 @icefoxen)
0.1.0 (2016-05-14)
- 初始发布
路线图
- 支持只读文件系统
- 支持重新挂载文件系统
- 支持在存档内访问虚拟文件系统(例如 zip)
依赖项
~0–12MB
~117K SLoC