➡️ Documentation: djinni.xlcpp.dev
Djinni is a tool for generating cross-language type declarations and interface bindings. It's designed to connect C++ with either Java or Objective-C.
Djinni generator parses an interface definition file and generates:
- C++ implementations of types (enums, records)
- Java implementations of types
- Objective-C implementations of types
- Python implementation of types
- C++/CLI implementation of types
- C++ code to convert between C++ and Java over JNI
- C++ code to serialize/deserialize types to/from JSON
- Objective-C++ code to convert between C++ and Objective-C
- Python and C code to convert between C++ and Python over CFFI
- C++/CLI code to convert between C++ and C#
Djinni requires Java to be able to execute!
Install with asdf
asdf plugin add djinni
asdf install djinni latest
Add the tap:
brew tap cross-language-cpp/brew https://github.com/cross-language-cpp/brew.git
Install the djinni generator:
brew install djinni
The generator is available at conan-center for Windows, Linux & macOS.
Add the generator/version as a build requirement in conanfile.txt
:
[build_requires]
djinni-generator/1.x.x
Please adopt the version number as wanted, e.g. djinni-generator/1.3.2
Thanks goes to these contributors!
The code in this repository is in large portions copied from dropbox/djinni which was created by
- Kannan Goundan
- Tony Grue
- Derek He
- Steven Kabbes
- Jacob Potter
- Iulia Tamas
- Andrew Twyman