awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
bytedeco avatar

bytedeco/javacpp

0
View on GitHub↗
4,697 stars·598 forks·Java·23 views

Javacpp

JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader, and a native memory manager. It automates the creation of Java wrappers around native C++ headers and shared libraries to enable interoperability between the two languages.

The project features a C++ binding generator that parses header files to automatically produce the necessary glue code and interfaces for calling native functions. It includes a native library loader that locates and extracts platform-specific binaries from the classpath into a local cache for runtime execution.

The system manages high-performance native memory access through direct pointer mapping and resource tracking to prevent memory leaks. It handles complex type mapping for C++ data structures and supports native callback mapping to link function pointers to Java methods.

The toolset allows for the replacement of managed methods with C++ or assembly implementations to optimize execution time and reduce resource overhead.

Features

  • C Header-to-Java Binding Generators - Parses C++ header files to automatically generate Java wrapper classes and the corresponding JNI glue code.
  • JNI Bridges - Provides a JNI-based bridge that maps Java method calls to native function executions in C++ or assembly.
  • Direct Memory Access - Implements high-performance reading and writing of native memory addresses and complex data structures using direct pointers.
  • Dynamic Library Loading - Automatically loads platform-specific shared libraries from resources at runtime without requiring manual path configuration.
  • Native Memory Mappers - Provides high-performance memory access by mapping managed objects to native C-style memory layouts using direct pointers.
  • Native Class Mappings - Maps native C++ data structures and functions to Java classes to enable seamless interoperability.
  • Foreign Function Interfaces - Implements a high-performance foreign function interface for mapping complex C++ data structures and virtual functions to Java.
  • Native Library Integrations - Loads and manages platform-specific shared binaries and dependencies within the Java runtime environment.
  • C++ Interoperability Layers - Connects Java applications to native C++ libraries by automating the generation of bridge code and interfaces.
  • Native Memory Lifecycle Management - Handles direct pointers and complex C++ data structures to perform high-speed memory access and resource cleanup.
  • Native Resource Tracking - Tracks groups of native memory objects to ensure deterministic cleanup and prevent memory leaks in the native heap.
  • JNI Wrapper Generators - Automates the generation of complex JNI glue code and wrapper classes to call native functions without manual coding.
  • Complex Type Mappings - Converts advanced C++ data structures like vectors and nested pointers to support high-level Java access.
  • Native Binary Extraction - Provides a mechanism to locate and extract platform-specific shared libraries from the classpath into a local cache for runtime execution.
  • Native Glue Code Generators - Produces the necessary glue code and native libraries to execute C++ functions and handle complex native types.
  • Platform-Aware Library Loaders - Automatically locates and extracts platform-specific binaries from the classpath into a local cache for runtime loading.
  • Native Resource Lifecycle Managers - Includes mechanisms to track and release groups of native memory objects to prevent leaks in the native heap.
  • High-Performance Method Replacements - Allows replacing slow Java methods with optimized C++ or assembly implementations to reduce execution time and resource overhead.
  • Managed-to-Native Callbacks - Links native function pointers or virtual functions to Java methods, allowing C++ code to trigger runtime logic.
  • Native Callbacks - Maps Java methods to native function pointers or virtual functions so C++ code can trigger logic within the runtime.
  • Native Execution Engines - Provides the ability to execute computationally expensive logic in native C++ or assembly to minimize overhead.
  • Native Performance Optimizations - Optimizes execution speed by replacing performance-critical Java methods with native C++ or assembly implementations.
  • Native Dependency Management - Resolves and loads platform-specific native libraries and their dependencies from application resources.
  • Classpath Resource Loaders - Extracts native binaries located on the classpath into a local cache for execution.
  • Language Interop - Bridge between Java and native C++.
  • Mobile Development - Efficient access to native C++ libraries.
  • Native Interop - Efficient access to native C++ inside Java.
  • Scripting and Bindings - Bridge for accessing native C++ functionality from Java applications.

Star history

Star history chart for bytedeco/javacppStar history chart for bytedeco/javacpp

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Javacpp

Similar open-source projects, ranked by how many features they share with Javacpp.
  • java-native-access/jnajava-native-access avatar

    java-native-access/jna

    8,916View on GitHub↗

    JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared native libraries without writing custom JNI wrapper code. It serves as a JNI alternative framework for invoking C functions and mapping native data structures using high-level interfaces. The library distinguishes itself through its ability to translate Java objects and primitives into C-style structs, unions, and pointers for cross-platform memory exchange. On Windows, it provides a dedicated toolkit for interacting with Component Object Model objects using both early and la

    Java
    View on GitHub↗8,916
  • cython/cythoncython avatar

    cython/cython

    10,767View on GitHub↗

    Cython is a compiler that translates Python code into C or C++ to create high-performance extension modules. It functions as a static typing optimizer and a C extension generator, allowing developers to declare C types within Python code to reduce interpreter overhead and increase execution speed. The project enables the wrapping of external C libraries to provide high-level interfaces to low-level system capabilities. It also serves as a native binary packager, capable of freezing scripts and their dependencies into standalone executable binaries for distribution. The system covers a broad

    Cythonbig-dataccpp
    View on GitHub↗10,767
  • bytedeco/javacvbytedeco avatar

    bytedeco/javacv

    8,310View on GitHub↗

    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

    Javacomputer-visionffmpegjava
    View on GitHub↗8,310
  • lwjgl/lwjgl3LWJGL avatar

    LWJGL/lwjgl3

    5,269View on GitHub↗

    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

    Javabindingsfmodfreetype
    View on GitHub↗5,269
See all 30 alternatives to Javacpp→

Frequently asked questions

What does bytedeco/javacpp do?

JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader, and a native memory manager. It automates the creation of Java wrappers around native C++ headers and shared libraries to enable interoperability between the two languages.

What are the main features of bytedeco/javacpp?

The main features of bytedeco/javacpp are: C Header-to-Java Binding Generators, JNI Bridges, Direct Memory Access, Dynamic Library Loading, Native Memory Mappers, Native Class Mappings, Foreign Function Interfaces, Native Library Integrations.

What are some open-source alternatives to bytedeco/javacpp?

Open-source alternatives to bytedeco/javacpp include: java-native-access/jna — JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared… cython/cython — Cython is a compiler that translates Python code into C or C++ to create high-performance extension modules. It… bytedeco/javacv — JavaCV provides a Java-based interface for native computer vision and video processing libraries. It functions as a… lwjgl/lwjgl3 — LWJGL is a cross-platform library that provides Java bindings to native APIs for graphics, audio, compute, windowing,… node-ffi/node-ffi — node-ffi is a foreign function interface library for Node.js that enables calling functions from native C dynamic… swig/swig — SWIG is a tool that generates wrapper code to expose C and C++ libraries to a wide range of higher-level programming…