When developing a Java application, there can be use cases when you need access to system-level APIs and libraries written in other programming languages ( C, OpenGL, Tensorflow, Rust, Python, etc.). Project Panama is designed to facilitate access to native libraries, particularly those developed in C/C++, from Java code.
Interaction between the JVM and the "foreign" (non-Java) APIs has been made simpler with Foreign Function and Memory API (FFM API). The FFM API became a final feature in JDK 22, and it comes with a little gem - the jextract tool - that can automate obtaining access to native code. jextract parses header files (.h) of native libraries and generates Java code, named bindings that use the FFM API internally.
This talk will walk you through how easy it is to work with jextract and how to directly use its output as a Java model of the native libraries you are interested in.
Interaction between the JVM and the "foreign" (non-Java) APIs has been made simpler with Foreign Function and Memory API (FFM API). The FFM API became a final feature in JDK 22, and it comes with a little gem - the jextract tool - that can automate obtaining access to native code. jextract parses header files (.h) of native libraries and generates Java code, named bindings that use the FFM API internally.
This talk will walk you through how easy it is to work with jextract and how to directly use its output as a Java model of the native libraries you are interested in.
Ana-Maria Mihalceanu
Oracle
Ana is a Java Champion Alumni, Developer Advocate for the Java Platform Group at Oracle, guest author of the book "DevOps tools for Java Developers", and a constant adopter of challenging technical scenarios involving Java-based frameworks and multiple cloud providers. She actively supports technical communities' growth through knowledge sharing and enjoys curating content for conferences as a program committee member. To learn more about/from her, follow her on Twitter @ammbra1508.