23 dépôts
Tools for bridging the JVM with native C/C++ code and libraries.
Explore 23 awesome GitHub repositories matching part of an awesome list · Native Interop. Refine with filters or upvote what's useful.
PojavLauncher is a mobile launcher and game wrapper that provides a compatible Java Runtime Environment for mobile operating systems. Its primary purpose is to enable the execution of the Java Edition of Minecraft on Android and iOS devices. The project includes a mobile game input mapper that adapts desktop keyboard and mouse controls to touch screen interfaces. It also provides tools for mobile game modding, allowing users to install and manage custom content through a mobile interface.
Uses Java Native Interface bridges to allow the virtual machine to access low-level system libraries for memory and file operations.
ZygiskNext is an Android rooting integration layer and system hooking framework. It functions as a code injector for the Android Zygote process, allowing for the modification of system behavior across various rooting environments and superuser managers. The project provides a specialized API to intercept and modify low-level system calls. This enables the injection of custom code into the base process that spawns applications, facilitating deep Android system customization and rooted development. The framework utilizes dynamic library loading, hook-based runtime modification, and Java Native
Uses the Java Native Interface to bridge high-level logic with low-level C++ system calls.
JavaCV provides a Java-based interface for native computer vision and video processing libraries. It functions as a wrapper for native vision libraries, allowing Java applications to perform image analysis, object detection, and video stream processing. The project integrates comprehensive computer vision capabilities, including facial recognition, image segmentation, and optical flow analysis for motion tracking. It also provides tools for hardware geometry calibration and projector-camera alignment to ensure accurate spatial representation. The system covers high-performance media renderin
Maps Java method calls to native C and C++ functions using the Java Native Interface.
This project is a cross-platform mobile device information library designed to retrieve hardware, software, and network specifications from iOS and Android devices. It serves as a tool for accessing unique device identifiers, hardware models, and processor architectures to distinguish individual mobile devices. The library provides specialized capabilities for mobile hardware identification and operating system metadata retrieval, including build numbers and API levels. It also functions as a system state monitor for real-time tracking of battery levels, charging status, and network connectiv
Uses JNI bridges to allow high-level logic to query low-level Android OS properties and hardware identifiers.
Le SDK Android ARCore est un kit de développement logiciel et un framework de réalité augmentée utilisé pour créer des expériences sur les appareils Android. Il fournit une collection d'outils et de bibliothèques natives pour suivre le mouvement de l'appareil et mapper les environnements physiques afin de placer des objets virtuels dans l'espace réel. Le framework utilise une API de suivi environnemental pour détecter les plans physiques et estimer l'éclairage ambiant, ce qui mélange le contenu numérique avec le monde réel. Il inclut des systèmes pour fixer le contenu virtuel à des emplacements physiques spécifiques afin de maintenir la stabilité spatiale lorsqu'un utilisateur se déplace dans un environnement. Le SDK couvre de larges domaines de capacités, notamment le mappage environnemental, la détection de surface et le calcul de la position de l'appareil. Il fournit également des outils pour analyser la lumière ambiante et la température de couleur afin de garantir que l'ombrage des objets virtuels correspond à l'environnement réel. Le projet distribue des bibliothèques natives avec une prise en charge de construction multi-architecture pour garantir la compatibilité entre divers types de processeurs et matériels.
Provides JNI bridges to connect high-performance C++ computer vision libraries with the Android Java API.
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
Bridges Java code to native libraries through generated Java Native Interface wrappers.
unidbg est un framework pour émuler et déboguer des binaires natifs ARM32 et ARM64 sur une machine hôte. Il sert de débogueur de binaires Android et iOS et d'émulateur de bibliothèque native, permettant l'exécution de code natif sans avoir besoin de matériel physique. Le projet se distingue par un framework de hooking de fonctions natives et un outil de débogage Model Context Protocol qui expose l'état de l'émulateur aux assistants IA pour une analyse binaire automatisée. Il inclut également un analyseur de mémoire spécialisé pour suivre les allocations côté invité et identifier les fuites dans les binaires natifs. La suite d'outils couvre plusieurs domaines de capacités, incluant l'ingénierie inverse de code natif, le traçage d'exécution au niveau des instructions et la simulation de pont JNI. Elle offre une observabilité via des logs de lecture/écriture mémoire et un débogueur console, tout en utilisant un pooling d'émulateurs thread-safe pour réduire la surcharge d'initialisation.
Simulates a JNI bridge to enable native libraries to interact with a simulated Android runtime.
Fcitx5 Android is an input method manager that brings the Fcitx5 framework to Android, enabling multilingual text input through a customizable virtual keyboard. It functions as a platform for loading plugin-based input engines, supports conversion between simplified and traditional Chinese characters, and provides a theme engine for dynamically altering the keyboard's appearance with custom colors, images, and popup previews. The project is built around a native C++ core that handles dictionary lookups and text processing, connected to the Android interface via a JNI bridge for performance. I
Uses JNI to bridge the Android Java framework with a native C++ core for high-performance dictionary management and text processing.
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.
Provides a JNI-based bridge that maps Java method calls to native function executions in C++ or assembly.
Ce projet est une bibliothèque technique et une base de connaissances pour le framework Qt, servant de guide de programmation GUI en C++ et de ressource pour le développement multiplateforme. Il fournit une collection de guides techniques, de bonnes pratiques et de matériel pédagogique axé sur la création d'applications utilisant l'écosystème Qt. Le dépôt se concentre sur l'optimisation des performances des applications et des flux de travail de développement. Il couvre des modèles architecturaux pour améliorer la vitesse de compilation et l'efficacité d'exécution, y compris l'utilisation de bases de données en mémoire et d'appels de fonctions asynchrones. Il propose également des conseils spécialisés sur l'intégration de code Java via des wrappers d'interface native pour les applications hybrides. La portée du projet s'étend à la conception d'interfaces personnalisées et à la compatibilité multiplateforme. Cela inclut des techniques pour le rendu graphique haute performance, la mise à l'échelle réactive selon les densités de pixels, et la gestion des chemins de fichiers et des encodages de texte sur différents systèmes d'exploitation. Il inclut également un ensemble sélectionné de livres électroniques, de normes de programmation et de tutoriels pour l'utilisation des outils de développement.
Provides a native interface wrapper to call Java methods and retrieve values from C++.
mobile-ffmpeg fournit un framework pour le traitement multimédia mobile, permettant aux applications Android, iOS et tvOS d'exécuter des tâches de transcodage et de filtrage audio et vidéo. Il permet l'intégration de binaires pré-compilés dans des projets mobiles pour éviter la compilation croisée manuelle pour différentes architectures matérielles. Le projet prend en charge la compilation multiplateforme et l'intégration de codecs tiers et de bibliothèques externes. Il fournit un mécanisme pour déployer des binaires universels sur plusieurs systèmes d'exploitation et différentes architectures CPU. L'ensemble d'outils couvre l'analyse des métadonnées multimédias, l'enregistrement et la capture de médias depuis les caméras des appareils, et la gestion des cycles de vie d'exécution concurrente. Il utilise une interface native Java (JNI) pour Android et des wrappers Objective-C pour les plateformes Apple afin de faire le pont entre le code applicatif de haut niveau et les binaires de traitement multimédia de bas niveau.
Implements JNI bridges to connect the Android Java environment with underlying C media processing libraries.
Lemuroid is an Android multi-system emulator and Libretro frontend designed to run games from multiple vintage gaming systems through a single interface. It functions as a retro gaming library manager that scans local storage for game files and organizes them into a searchable catalog. The application includes a cloud-synced save manager to preserve game progress across different devices via remote storage. It also features a virtual gamepad interface that allows for custom input mapping across physical controllers, tilt sensors, and on-screen touch overlays. Additional capabilities cover ga
Uses JNI bridges to facilitate communication between the Java-based Android UI and native C-based emulator cores.
Magick.NET is a C# image processing library that serves as a .NET wrapper for ImageMagick. It provides a raster graphics engine for rendering text, drawing graphics, and manipulating images using a native interface. The library handles the conversion of vector files, such as PDF, EPS, and PostScript, into raster formats. It also includes tools for extracting image metadata, such as EXIF data and raw thumbnails. The system covers a wide range of image manipulation capabilities, including resizing, format conversion, watermarking, and the merging of multiple images into static or animated file
Acts as a thin managed interop layer for the native ImageMagick binary library.
This is an Android multimedia player designed to decode and play a wide variety of audio and video formats. It functions as a network media streamer and a multimedia library manager, indexing local files into a searchable database for organized access. The project includes a high-fidelity audio processor for routing signals through hardware interfaces like SPDIF and HDMI, and a Chromecast media controller for streaming content to external renderers and UPnP devices. It supports advanced visual rendering, including high dynamic range video with tonemapping, 360-degree video, and spatial audio.
Implements a JNI bridge to synchronize state and controls between the Java UI and the native C core.
Orbot is an Android network anonymization tool designed to route mobile internet traffic through the Tor network. Its primary purpose is to hide a user's identity and location from websites by masking the originating network address. The software enables users to bypass internet censorship to access blocked services and prevents trackers from identifying a mobile device. It provides a local SOCKS proxy configuration to force specific applications to send traffic through an encrypted tunnel. The application utilizes the Android VPN service to capture device traffic at the network layer and in
Interfaces with the Tor C binary via JNI to manage the core network routing process.
Autopsy is a digital forensic analysis platform and evidence management suite used to process disk images and file systems. It provides a graphical interface for performing deep forensic examinations of computer hard drives to identify and extract digital artifacts for investigations. The platform is built as a Java-based forensic framework that integrates native libraries to perform direct disk image analysis. It utilizes a modular architecture, allowing for the extension of data ingestion and report generation through the use of plugins. The system manages digital evidence within a central
Uses JNI bridges to integrate low-level C and C++ forensic libraries for direct disk image analysis.
J2V8
Java API for the V8 JavaScript engine.
Ce projet est un wrapper Python pour la bibliothèque Lightweight Charts, conçu pour générer des visualisations financières interactives dans le navigateur. Il sert de framework pour créer des tableaux de bord et des interfaces financières personnalisés intégrant des flux de marché en temps réel et des séries de données historiques. La bibliothèque permet de construire des mises en page complexes en combinant des graphiques multi-fenêtres, des listes de suivi et des tableaux de saisie d'ordres dans un espace de travail unifié. Elle prend en charge le suivi de marché en temps réel en diffusant des données de ticks ou de barres directement dans les visualisations actives, permettant des mises à jour incrémentielles sans rafraîchissement de page. Au-delà du rendu de base, la boîte à outils offre des capacités étendues pour l'analyse technique, notamment la possibilité d'ajouter des annotations, des lignes de tendance et des marqueurs directement sur le canvas. Les utilisateurs peuvent configurer l'apparence visuelle des bougies, des barres de volume et des légendes, tout en mappant les interactions utilisateur, comme la sélection de périodes ou les raccourcis clavier, vers une logique Python personnalisée.
Provides a WebSocket-based bridge for real-time communication between Python and browser-based rendering engines.
Java Abstracted Foreign Function Layer
Load native libraries without writing JNI code.
Realm Kotlin is a local, object-oriented NoSQL database engine designed for Kotlin Multiplatform applications. It enables developers to persist structured application data directly as objects, eliminating the need for traditional relational table structures while ensuring information remains accessible during offline periods. The library distinguishes itself through a compiler-plugin-based architecture that maps standard language classes to database models at compile time. It utilizes zero-copy memory mapping and a lazy-loading query engine to manage data efficiently, while a shared C++ core
Bridges high-level language code to a shared C++ core for consistent cross-platform database behavior.