#fuse #bindings #api-bindings #system

cntr-fuse

Rust 用户空间文件系统(FUSE)库(cntr 项目所需功能分支)

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

Download history 14/week @ 2024-03-11 49/week @ 2024-04-01 1/week @ 2024-04-08 9/week @ 2024-04-22 7/week @ 2024-04-29 1/week @ 2024-05-13 51/week @ 2024-05-20 23/week @ 2024-05-27 16/week @ 2024-06-03 29/week @ 2024-06-10 22/week @ 2024-06-17 25/week @ 2024-06-24

每月下载量 94
2 crates 使用

MIT 许可证

165KB
3.5K SLoC

Rust FUSE - 用户空间文件系统

Crates.io Crates.io

关于

fuse-rs 是一个用于在用户空间轻松实现 FUSE 文件系统Rust 库。

fuse-rs 不仅提供绑定,它还是原始 FUSE C 库的重新编写,以充分利用 Rust 的架构。

文档

包文档

详细信息

一个工作的 FUSE 文件系统由三部分组成

  1. 作为文件系统注册并向前传递操作到处理它们的用户空间进程的通信通道的 内核驱动程序
  2. 帮助用户空间进程与内核驱动程序建立和运行通信的 用户空间库(libfuse)。
  3. 实际处理文件系统操作的 用户空间实现

内核驱动程序由 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-devfuse-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-libspkgconf

pkg install fusefs-libs pkgconf

用法

将以下内容放入您的 Cargo.toml

[dependencies]
fuse = "0.4"

要创建一个新的文件系统,实现 fuse::Filesystem 特性。有关详细信息,请参阅文档,或在 examples 目录中查看一些基本示例。

待办事项

还有很多事情要做。请随时贡献。请参阅GitHub上的问题列表,并在源文件中搜索包含 "TODO" 或 "FIXME" 注释的内容,以查看仍需完成的内容。

兼容性

在macOS上开发和测试。使用稳定、beta和夜间Rust版本在LinuxmacOSFreeBSD上进行测试(有关详细信息,请参阅CI)。

贡献

分叉、破解、提交拉取请求。请确保使其对目标受众有用,同时考虑项目哲学和Rust编码标准。对于较大或必要的更改,您可能首先想打开一个用于讨论的问题。同时,如果您的更改与用户相关,请记得更新更改日志

依赖项

~135KB