IrohLib 0.20.0

IrohLib 0.20.0

Brendan OBrien 维护。



IrohLib 0.20.0

iroh-ffi

Iroh 的 Foreign Function Interface (FFI) 绑定

此仓库定义了由 Rust 编写的 iroh (GitHub: iroh) 的 Python 和 Swift 绑定。

发布版本

Python Swift

仓库状态:二级

这是一个“二级”仓库,这意味着这是一个我们关心的仓库,但我们不会像“一级”仓库那样进行同样层级的要求。所有工作都通过拉取请求完成,并且必须通过持续集成,但同行评审流程会更宽松,我们对问题的响应速度也不会像一级仓库那样快。

如果您遇到了阻碍,或者需要将问题提出来,请联系 iroh discord

发行版

我们 没有 承诺按计划发布 FFI 的发行版,或者与 iroh 的最新版本同步发布,但我们尽力而为。最新版本的 iroh(或 GitHub 上发布的最新版本的 iroh-ffi)和发布的 Python 或 Swift FFI 语言的匹配版本之间可能存在差距。

如果目前存在差距,并且您需要发布的 Python 或 Swift 包,请提交问题或通过我们的 discord 联系我们。

库编译

运行 cargo build --release 将生成动态库和静态库。

针对旧版本的 macOS 进行构建时,请使用以下命令: MACOSX_DEPLOYMENT_TARGET=10.7 && cargo build --target x86_64-apple-darwin --release

Swift

Xcode 和 IOS

  • 运行 make_swift.sh
  • 在项目的 通用 设置中将 IrohLib 添加为 框架、库和嵌入内容 下的本地包依赖项。
  • 运行 Build
  • 确认它现在在 框架、库和嵌入内容 下列出,如果不是,点击 + 再次,并将其从列表中添加。
  • SystemConfiguration 添加为框架。
  • 现在您可以用标准的导入语句(如 import IrohLib)在 Swift 中导入库。

Python

  • 为 Python 开发和打包安装 maturin
  • 使用 pip 安装 uniffi-bindgen
  • maturin develop 将构建您的包
  • maturin 期望您使用 virtualenv 来管理虚拟环境

构建 wheel

调用 maturin build 将在 target/wheels 中构建 wheel。这可能在您的特定平台上才能工作。要为 Linux 构建可移植 wheel,请使用

docker run --rm -v $(pwd):/mnt -w /mnt quay.io/pypa/manylinux2014_x86_64 /mnt/build_wheel.sh

示例

  • 确保已安装 iroh,运行 pip install iroh
  • python3 main.py --help 运行

更新绑定

开发者

请查看我们的DEVELOPERS.md文件,其中包含如何从iroh Rust API转换为iroh FFI API的指南,以及如何为golang和python设置测试的说明。

许可证

本项目使用以下之一进行许可:

您自行选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的任何您有意提交以包含在此项目中的贡献,将根据上述条件双重许可,不附加任何额外条款或条件。