2 个版本
使用旧的 Rust 2015
0.1.1 | 2016 年 8 月 6 日 |
---|---|
0.1.0 | 2016 年 7 月 17 日 |
在 #nfs 中排名 第 10
39KB
706 行(不含注释)
netfuse
实验性:基于 FUSE 的网络文件系统抽象
这个库在纯 libfuse 的 rust 重写 之上提供了一层封装。它提供内部管理的inode缓存,允许将文件系统操作抽象为路径操作。它假设后端存储通过网络进行,因此实现依赖于缓存和延迟写入来提高性能。
实现
这最初是从下面提到的 algorithmia-fuse 的实现中提取出来的。
- algorithmia-fuse - 通过 Algorithmia 平台管理数据的文件系统
如果你用它构建了什么,请提交一个 PR 或创建一个问题,以便将其添加到这里。:-)
当前注意事项
我不建议今天将其用于任何生产质量的文件系统。以下是一些已知的注意事项
- 在关闭最后一个打开的文件句柄时写入会持久化。如果关闭失败,数据可能没有持久化。
- 整个inode和文件缓存都驻留在RAM中,因此如果你下载了一个4GB的文件,它将占用4GB的RAM,直到关闭。
- 目录列表永久缓存,因此如果你在文件系统外更改目录的内容,你必须卸载并重新挂载才能看到这些更改。
- 挂载时的测试仅限于少数常见的I/O场景
- 一般网络文件系统的注意事项也适用,例如某些文件操作可能看起来很慢
- 在 impl Trait 加入后,实现
readdir
可能会更好
如果您在使用此库时遇到任何问题或限制,请 提交一个问题 或创建一个 pull request。
构建、测试
要构建和测试
$ cargo build
$ cargo test
依赖关系
~1–1.3MB
~21K SLoC