# panama-foreign **Repository Path**: mirrors_openjdk/panama-foreign ## Basic Information - **Project Name**: panama-foreign - **Description**: https://openjdk.org/projects/panama - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: foreign-memaccess+abi - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2025-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Welcome to the JDK! For build instructions please see the [online documentation](https://openjdk.org/groups/build/doc/building.html), or either of these files: - [doc/building.html](doc/building.html) (html version) - [doc/building.md](doc/building.md) (markdown version) See for more information about the OpenJDK Community and the JDK and see for JDK issue tracking. --- Foreign Function & Memory API This repository contains changes which aim at improving the interoperability between the Java programming language and native libraries, which is one of the main goals of [Project Panama](https://openjdk.java.net/projects/panama/). This is done by introducing a new Java API, the Foreign Function & Memory API, which can be used to: * interact with different kinds of memory resources, including so-called off-heap or native memory, as shown [here](doc/panama_memaccess.md); * find native functions in a .dll/.so/.dylib and invoke them using method handles, as shown [here](doc/panama_ffi.md). This API has been delivered, as incubating/preview APIs, in official JDK releases, see [JEP 412](https://openjdk.java.net/jeps/412), [JEP 419](https://openjdk.java.net/jeps/419) and [JEP 424](https://openjdk.java.net/jeps/424) for more details. The Foreign Function & Memory API is best used in combination with a tool called `jextract`, which can be used to generate Java bindings to access functions and/or structs in a native library described by a given header file. The tool is available in a standalone [repository](https://github.com/openjdk/jextract) which contains several [examples](https://github.com/openjdk/jextract/tree/master/samples) which should help you getting started. Early acccess (EA) binary snapshots of this repository can be found at: http://jdk.java.net/panama/