MaulingMonkey
jni-bindgen
Rust

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.

Last updated Jan 16, 2026
80
Stars
7
Forks
31
Issues
0
Stars/day
Attention Score
10
Language breakdown
Rust 95.4%
Batchfile 3.5%
Shell 0.9%
Java 0.2%
โ–ธ Files click to expand
README

jni-bindgen

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

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 | Crates.io | Docs | Bindings to Android Java APIs | jni-bindgen | Crates.io | N/A | Generator of Java API bindings | jni-glue | Crates.io | Docs | Utility functions for Java API bindings

External Crates / Plugins

| github.com | package | docs | License | Where | | -------------------------------- | ------- | ---- | ------- | ----- | | jni-sys | Crates.io | Docs | License | jreflection | Crates.io | Docs | License | Bindgen | rust-android-gradle | gradle.org | README.md | License | 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.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท MaulingMonkey/jni-bindgen ยท Updated daily from GitHub