跳转到主要内容

最小权限文件存储工具

项目描述

LAFS

LAFS 是一个 实验性 的 Rust 包,它提供了一些 Tahoe-LAFS(最小权限文件存储)部分的有限实现。更具体地说,它提供了以下功能的 Rust 实现(来自原始的 Python allmydata 包)

allmydata.util.base32.b2a
allmydata.util.hashutil.tagged_hash
allmydata.util.hashutil.ssk_pubkey_fingerprint_hash
allmydata.util.hashutil.ssk_writekey_hash
allmydata.util.netstring.netstring

综合来看,这些功能足以生成与原始(Python)实现完全兼容的有效可变能力字符串/URI(如通过Tahoe-LAFS的测试向量验证)。因此,这个库可以用于完全“离线”生成或恢复加密能力(即无需与运行中的Tahoe-LAFS节点交互)以及在不适合运行完整tahoe节点或不宜这样做(例如移动设备)的环境中。

使用方法

尽管Tahoe-LAFS没有提供Python API,但为了与原始实现保持一致,本crate公开的路径尽量与原始allmydata Python包中定义的命名空间相匹配。例如,可以通过lafs::util::base32::b2a路径在Rust中调用Python的allmydata.util.base32.b2a函数。

函数签名和类型,同样,尽量与原始实现保持一致(因此,Python函数返回不确定长度的bytes可能会在Rust中返回Vec<u8>),但是,由于Python的动态类型系统以及其他基本语言差异(如Python的异常系统、默认参数等),应预期一些妥协。如有疑问,请查阅源代码。

Python绑定

除了Rust crate外,还提供了每个由本库定义的模块/函数的Python绑定(使用pyo3)。然而,由于前面提到的基本语言差异(以及一些未解决的问题问题),这些绑定不应被视为allmydata Python包定义的“即插即用”替代品;这些绑定主要用于支持与原始实现的测试。(请参阅test/目录中的示例。)

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面