Calling JVM code from Rust via JNI.
JNI calls are about 10-20 times slower than regular JVM instructions. It is adviced to call as few functions as possible that do as much work as possible.
Creating a flat Java wrapper class and producing a fat JAR with all the dependencies also reduces the amount of Rust interface code.
The code is tested on Linux and macOS.
Your platform might need adjustments in
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
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.