12 个版本
0.4.2 | 2023 年 12 月 19 日 |
---|---|
0.4.1 | 2021 年 3 月 1 日 |
0.4.0 | 2020 年 12 月 16 日 |
0.3.6 | 2018 年 3 月 14 日 |
0.3.4 | 2018 年 1 月 29 日 |
在 文件系统 中排名 150
每月下载量 94
被 2 crates 使用
165KB
3.5K SLoC
Rust FUSE - 用户空间文件系统
关于
fuse-rs 是一个用于在用户空间轻松实现 FUSE 文件系统 的 Rust 库。
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上开发和测试。使用稳定、beta和夜间Rust版本在Linux、macOS和FreeBSD上进行测试(有关详细信息,请参阅CI)。
贡献
分叉、破解、提交拉取请求。请确保使其对目标受众有用,同时考虑项目哲学和Rust编码标准。对于较大或必要的更改,您可能首先想打开一个用于讨论的问题。同时,如果您的更改与用户相关,请记得更新更改日志。
依赖项
~135KB