Talk

Practical Aspects of FFM API: Taming Panama

In Russian

The FFM API was first introduced in Java 14. The full-fledged Panama incubator was released in Java 17, and the FFM API was stabilized in Java 22. Despite this, the ecosystem still largely relies on JNI to interact with the native world and is in no hurry to switch to a more modern alternative.

In this talk, we’ll examine our experience working with native code, using examples ranging from large libraries—such as Catboost and Hnswlib—to more granular use cases, like bindings to libc. We’ll take a look at the limitations of jextract, which has yet to fully leverage the capabilities of Panama. We’ll try to understand where using the FFM API can provide real performance gains, and where the performance benefits lie elsewhere.

Speakers

Talks