1 # Welcome to the JDK!
 3 For build instructions please see the
 4 [online documentation](https://openjdk.org/groups/build/doc/building.html),
 5 or either of these files:
 7 - [doc/building.html](doc/building.html) (html version)
 8 - [doc/building.md](doc/building.md) (markdown version)
10 See <https://openjdk.org/> for more information about the OpenJDK
11 Community and the JDK and see <https://bugs.openjdk.org> for JDK issue
12 tracking.
14 ---
15 Foreign Function & Memory API
17 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:
19 * interact with different kinds of memory resources, including so-called off-heap or native memory, as shown [here](doc/panama_memaccess.md);
20 * find native functions in a .dll/.so/.dylib and invoke them using method handles, as shown [here](doc/panama_ffi.md).
22 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.
24 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.
26 Early acccess (EA) binary snapshots of this repository can be found at: http://jdk.java.net/panama/