8 releases
0.0.10 | Jan 14, 2020 |
---|---|
0.0.9 | Aug 26, 2019 |
#155 in FFI
154 downloads per month
Used in 3 crates
(2 directly)
81KB
1K
SLoC
jni-bindgen
Work in progress, only barely kinda partially usable
Vaguely inspired by, but otherwise unrelated to, bindgen and wasm-bindgen's WebIDL stuff.
Generate Rust JVM FFI wrappers around APIs defined by .jar
or .class
files, because maintaining your own
hand-written bindings is an exercise in boredom, soundness bugs, and pain.
Goals
- Provide a means of using Android system APIs specifically.
- Provide a means of using Java, Kotlin, Scala, or other JVM based APIs.
- Automatically link API documentation, so people might actually read it.
- Eliminate the need to manually write unsound, unreviewed, and unaudited
unsafe { ... }
APIs
Local Crates
github.com | crates.io | docs.rs | Description |
---|---|---|---|
jni-android-sys | Bindings to Android Java APIs | ||
jni-bindgen | N/A | Generator of Java API bindings | |
jni-glue | Utility functions for Java API bindings |
External Crates / Plugins
github.com | package | docs | License | Where |
---|---|---|---|---|
jni-sys | ||||
jreflection | Bindgen | |||
rust-android-gradle | README.md | Examples |
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
Common glue code between Rust and JNI, used in autogenerated jni-bindgen glue code.
See also the Android JNI tips documentation as well as the Java Native Interface Specification.
Dependencies
~52KB