Comment by bullen
I agree that Java + native is the way to go.
But does rust really give you an edge over C/C++?
Here is how you do JNI with C++: http://move.rupy.se/file/jvm.txt
So simple it's ridiculous!
Then you can use RegisterNatives to give C++ API to the Java side instead of the stub (Java calls C++ .dll/.so) thing...
Having written a few JNI libraries in Rust (jni-rs specifically) myself, I'd argue that it catches & prevents a lot of potential mistakes when using JNI, especially regarding error handling/refs/types. I would pick using jni-rs any day over raw JNI. The simplicity of the C JNI API is also the cause of much pain when your project expands in scope.