1个不稳定版本
使用旧的Rust 2015
0.5.0 | 2019年1月3日 |
---|
#69 in #fuse
在drakey-fuse中使用
18KB
534 行
Rust FUSE - 用户空间文件系统
关于
fuse-rs 是一个 Rust 库crate,用于在用户空间轻松实现 FUSE 文件系统。
fuse-rs 不仅提供了绑定,它是对原始FUSE C库的重写,以充分利用Rust的架构。
文档
详情
一个工作的FUSE文件系统由三个部分组成
- 注册为文件系统并将操作转发到处理它们的用户空间进程的通信通道的 内核驱动程序。
- 帮助用户空间进程与内核驱动程序建立和运行通信的 用户空间库 (libfuse)。
- 实际处理文件系统操作的 用户空间实现。
内核驱动程序由FUSE项目提供,用户空间实现需要由开发人员提供。fuse-rs提供了这两个之间libfuse用户空间库的替代品。这样,开发人员可以在Rust中构建FUSE文件系统时充分利用Rust类型接口和运行时功能。
除了对libfuse的单个设置(挂载)函数调用和一个最终拆解(卸载)函数调用外,所有操作都在Rust中运行。
依赖关系
必须安装FUSE才能构建或运行使用fuse-rs的程序(即内核驱动程序和库。某些平台可能还需要用户空间实用程序,如 fusermount
)。通常,FUSE的默认安装就足够了。
要构建fuse-rs或任何依赖它的程序,还需要安装 pkg-config
。
Linux
Linux上的FUSE 在大多数Linux发行版中可用,通常称为 fuse
。要在基于Debian的系统上安装
sudo apt-get install fuse
在CentOS上安装
sudo yum install fuse
要构建,需要FUSE库和头文件。该软件包通常称为 libfuse-dev
或 fuse-devel
。还需要 pkg-config
来定位库和头文件。
sudo apt-get install libfuse-dev pkg-config
sudo yum install fuse-devel pkgconfig
macOS
可以从 macOS上FUSE的主页 下载安装程序包。
使用 Homebrew 安装
brew cask install osxfuse
要安装 pkg-config
(仅用于构建)
brew install pkg-config
FreeBSD
安装包 fusefs-libs
和 pkgconf
。
pkg install fusefs-libs pkgconf
用法
将以下内容放入您的 Cargo.toml
[dependencies]
fuse = "0.4"
要创建一个新的文件系统,实现 fuse::Filesystem
特性。有关详细信息,请参阅文档,或查看 examples
目录中的基本示例。
待办事项
还有很多事情要做。请随时贡献。请参阅GitHub上的问题列表,并在源文件中搜索包含 "TODO
" 或 "FIXME
" 的注释,以查看仍然缺少的内容。
兼容性
在macOS上开发和测试。在Linux、macOS 和 FreeBSD 上使用稳定、测试版和夜间版 Rust 版本进行测试(详细信息请参阅 CI)。
贡献
分支、黑客攻击、提交拉取请求。确保使它对目标受众有用,同时考虑项目的哲学和Rust编码标准。对于更大或关键性的更改,您可能首先想打开一个问题进行讨论。此外,如果您的更改与用户相关,请记得更新变更日志。