8 个版本

0.0.10 2020年1月14日
0.0.9 2019年8月26日

#281FFI

MIT/Apache

275KB
4.5K SLoC

jni-bindgen

GitHub Build Status unsafe: yes rust: stable Open issues License dependency status

正在进行中,仅勉强可用

部分受 bindgenwasm-bindgen 的 WebIDL 功能启发,但除此之外与它们无关。

生成围绕由 .jar 或 .class 文件定义的 API 的 Rust JVM FFI 包装器,因为维护自己手写的绑定是一种无聊、稳健性错误和痛苦的经历。

目标

  • 提供使用 Android 系统 API 的手段。
  • 提供使用 Java、Kotlin、Scala 或其他 JVM 基于的 API 的手段。
  • 自动链接 API 文档,以便人们可以实际阅读它。
  • 消除手动编写不可靠、未经审查和 未经审计 的 unsafe API 的需要

本地 Crates

github.com crates.io docs.rs 描述
jni-android-sys Crates.io Docs 绑定到 Android Java API
jni-bindgen Crates.io N/A Java API 绑定生成器
jni-glue Crates.io Docs Java API 绑定实用函数

外部 Crates / 插件

github.com package docs 许可证 位置
jni-sys Crates.io Docs License
jreflection Crates.io Docs License Bindgen
rust-android-gradle gradle.org README.md License 示例

许可证

根据您的要求,许可如下:

任选其一。

贡献

除非您明确表示,否则根据Apache-2.0许可协议定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双重授权,不附加任何额外条款或条件。

依赖项

~3–4.5MB
~73K SLoC