/djinni-generator

Command-line tool that generates gluecode from a djinni-IDL file

Primary LanguageScalaApache License 2.0Apache-2.0

Djinni Generator

CI GitHub release (latest by date) GitHub all releases

➡️ 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#

Installation

Djinni requires Java to be able to execute!

Linux, macOS

Manually

GitHub release (latest by date)

Install with asdf

asdf plugin add djinni
asdf install djinni latest

MacOS homebrew

Add the tap:

brew tap cross-language-cpp/brew https://github.com/cross-language-cpp/brew.git

Install the djinni generator:

brew install djinni

Windows

GitHub release (latest by date)

Conan

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

Credits

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