Write once run anywhere is both a blessing and a curse. For years, the WORA promise has ensured a consistent, compile-free experience for JVM users. Unfortunately, sometimes pure-Java libraries just can't do what developers need done. Sometimes, you just have to go full native. The Java Native Runtime is a core library and suite of support libraries for binding and calling out to native code. I'll show how JNR is designed, compare code and performance with alternative approaches, and talk about why the JDK needs a standard FFI (foreign function interface) in Java 9.
Write once run anywhere is both a blessing and a curse. For years, the WORA promise has ensured a consistent, compile-free experience for JVM users. Unfortunately, sometimes pure-Java libraries just can't do what developers need done. Sometimes, you just have to go full native. The Java Native Runtime is a core library and suite of support libraries for binding and calling out to native code. Without writing a line of C, you can make native calls, pass callbacks, and manage off-heap memory; every OS, library, and kernel-level feature is available to Java developers. I'll show how JNR is designed, compare code and performance with alternative approaches, and talk about why the JDK needs a standard FFI (foreign function interface) in Java 9.
Speakers: Charles Nutter