{"repo":"vova7878/PanamaPort","free":true,"listed":false,"github":"https://github.com/vova7878/PanamaPort","clone":"git clone https://github.com/vova7878/PanamaPort.git","description":"Implementation of FFM API for Android 8.0+","language":"Java","stars":121,"topics":["backport","foreign-function-interface","android-library","android-backport"],"license":null,"category":"mobile-apps","readme_excerpt":"About PanamaPort is a library implementing the Foreign Function & Memory API for Android 8.0+ (API level 26) Components This project contains 4 sublibraries: - Core - the entire public API and implementation of the Panama project - Unsafe - low-level implementation details and additional capabilities not provided by the original API - LLVM - bindings to the built-in libLLVM.so Android library - VarHandles - backport of java.lang.invoke.VarHandle which didn't exist in android 8.x Requirements - JDK 21+ - Gradle 8.7+ - Android Gradle plugin 8.6.0+ - compileSdk 35+ Get started Just add this library to the list of dependencies: --- Supported features PanamaPort implements full Foreign Function & Memory API support, including: - Downcall handles - allows Java code to call foreign functions - Upcall stubs - allows foreign functions to call Java method handles - Linker options such as captureCallState(\"errno\") and even critical(allowHeapAccess: true) - Access to native memory via VarHandles - Management of memory segments via Arenas - And much more Differences from the original API - Package java.lang.foreign moved to com.v7878.foreign package because it is a port and not part of the Java core library - WrongThreadException class is also in the com.v7878.foreign package because it doesn't exist on android - My implementation of VarHandle is used instead of java.lang.invoke.VarHandle What was added All non-standard apis added to the port are marked with @PortAPI annotation This inclu","default_branch":null,"files":null,"tree":[],"storefront":"/r/vova7878","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/vova7878/PanamaPort/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}