3 dépôts
Tools that parse native C headers to automatically produce Java JNI bindings with type conversions.
Distinct from Native Header Generators: Distinct from Native Header Generators: generates Java bindings from C headers, not C++ header files for Rust.
Explore 3 awesome GitHub repositories matching programming languages & runtimes · C Header-to-Java Binding Generators. Refine with filters or upvote what's useful.
SWIG is a tool that generates wrapper code to expose C and C++ libraries to a wide range of higher-level programming languages. It reads annotated C/C++ header files and produces language-specific bindings from a single interface definition, supporting languages such as Python, Java, Ruby, C#, Perl, and many others. The generated wrapper code is free from the project's GPL license, allowing users to distribute it under their own terms. The tool handles modern C++ features including templates, namespaces, smart pointers, and constructs up to C++20 through specialized parsing and code generatio
Produces Java Native Interface wrappers allowing Java applications to invoke C/C++ library routines.
LWJGL is a cross-platform library that provides Java bindings to native APIs for graphics, audio, compute, windowing, and input. It enables Java applications to access low-level hardware-accelerated capabilities such as OpenGL and Vulkan rendering, OpenAL 3D audio, OpenCL GPU compute, and GLFW windowing and input handling. Under the hood, LWJGL dynamically resolves native function pointers at runtime, loads platform-specific shared libraries, and uses generated JNI bindings to bridge Java and native code. It offers explicit memory management through direct buffer access and stack-allocated me
Ships a tool that parses C headers to auto-generate Java native bindings and JNI wrappers.
JavaCPP est un pont JNI C++ et une interface de fonction étrangère qui fournit un générateur de binding, un chargeur de bibliothèque native et un gestionnaire de mémoire native. Il automatise la création de wrappers Java autour des en-têtes C++ natifs et des bibliothèques partagées pour permettre l'interopérabilité entre les deux langages. Le projet dispose d'un générateur de binding C++ qui analyse les fichiers d'en-tête pour produire automatiquement le code de liaison et les interfaces nécessaires pour appeler des fonctions natives. Il inclut un chargeur de bibliothèque native qui localise et extrait les binaires spécifiques à la plateforme depuis le classpath vers un cache local pour l'exécution au runtime. Le système gère l'accès à la mémoire native haute performance via le mappage direct de pointeurs et le suivi des ressources pour prévenir les fuites de mémoire. Il gère le mappage de types complexes pour les structures de données C++ et prend en charge le mappage de rappels (callbacks) natifs pour lier des pointeurs de fonction aux méthodes Java. La boîte à outils permet le remplacement de méthodes gérées par des implémentations C++ ou assembleur pour optimiser le temps d'exécution et réduire la surcharge des ressources.
Parses C++ header files to automatically generate Java wrapper classes and the corresponding JNI glue code.