Project Panama, a new alternative to the Java Native Interface, looks to natively interconnect code managed by the Java Virtual Machine and APIs for outside libraries, creating a better experience for Java programmers using C and C++ APIs.
The first rumblings about Project Panama came back in March, when Oracle consulting engineer John Rose opened discussion on the OpenJDK mailing list about a native interconnect between code managed by the JVM and APIs for libraries not managed by the JVM. He published an accompanying blog post on the subject, explaining the project’s goal of creating a library that Java and non-Java programmers alike find both useful and easy to access.
“Building such tool chains will allow cheaper, faster commerce between Java applications and native APIs, much as the famous Panama Canal cuts through the rocky isthmus that separates the Atlantic and Pacific Oceans,” Rose wrote.
(Related: Oracle software engineers write proposal for Java value types)
Three months later, Rose has submitted an official proposal for Project Panama, which has begun to drum up support in the OpenJDK community. In providing new connections between the JVM and non-Java APIs used by C programmers, Panama will drive support for:
• Native code and data access between the JVM and native APIs
• Tooling for header file API extraction and API metadata storage
• Wrapper interposition for specialized safety invariants and value transformations
• Basic bindings for selected native APIs
Though he originally proposed Red Hat’s Charles Nutter as lead of Project Panama, Rose’s formal proposal puts himself as the lead instead. OpenJDK members are currently deliberating and voting on the proposal, which closes on June 18.