Java configuration/interface classes for native C++ libs
Top 17.6% on sourcepulse
This repository provides Java bindings for a vast array of native C/C++ libraries, enabling Java developers to leverage powerful C/C++ functionalities like computer vision, machine learning, and multimedia processing directly within their Java applications. It targets developers needing to integrate complex native libraries without writing JNI code themselves.
How It Works
JavaCPP Presets uses a parser to translate C/C++ header files into Java interface classes. These interfaces are then used by a generator and native C++ compiler to produce JNI libraries. Helper classes simplify the integration and usage of these native functionalities within the Java ecosystem, including Android. This approach automates the often complex and error-prone process of JNI development.
Quick Start & Requirements
org.bytedeco:<moduleName>-platform
dependency to your Maven, Gradle, or Leiningen project.javacpp.platform
system property (e.g., -Djavacpp.platform=linux-x86_64
).Highlighted Details
cppbuild.sh
scripts.Maintenance & Community
The project is actively maintained by Samuel Audet and welcomes community contributions. Discussion occurs via a Google Groups mailing list.
Licensing & Compatibility
The project itself is licensed under Apache License 2.0. However, the included presets inherit the licenses of the underlying C/C++ libraries they wrap, which may include restrictive licenses (e.g., GPL, commercial licenses for some SDKs). Users must verify compatibility with their specific use case and the licenses of individual wrapped libraries.
Limitations & Caveats
The maturity and quality of presets can vary between different C/C++ libraries. Some complex C++ features might not be perfectly translated by the parser, requiring manual adjustments or reference to original C++ documentation. Building from source requires a robust build environment setup.
2 days ago
Inactive