Rucaja (Rust calls Java)

Calling Java code from Rust via JNI.
Status
Things should work.
A more complete example is kud1ing/tinkerpop-rs which uses Rucaja to call Apache TinkerPop.
Creating a flat Java wrapper class and producing a fat JAR with all the dependencies reduces the Rust interface code.
Platforms
The code is tested on Linux and macOS.
Your platform might need adjustments in build.rs.
Mac
Trying to run may give:
dyld: Library not loaded: @rpath/libjvm.dylib
Referenced from: ./target/debug/rucaja
Reason: image not found
Abort trap: 6
this might require something like:
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
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.