Great care has been taken in order to have a good bindingability: this project has been based on GObject introspection specifically for providing a good base for language bindings.

Lua bindings

Sample drawing generated by Lua bindings

Lua bindings are actively maintained by the ADG project and they are effectively used to check the bindingability of the ADG and CPML APIs. They are based on the LGI project and should work out ot the box, that is if you install ADG and LGI you automatically have Lua bindings availables.

adg-lua is not required for using ADG from Lua. It is just an example application and provides a code example and a testcase for these bindings.

LGI uses GObject introspection at runtime to access the underlying APIs, so the bindings are always in sync with the latest installed libraries. This also means that the order in which the libraries are installed (i.e. ADG before and LGI after, or the reverse) does not matter.

Python bindings

Python support should work without doing anything specific, provided you have PyGObject properly installed and configured on your system.

A pre-packaged version of PyGObject, together with a selected set GObject-based libraries (ADG canvas included) for 32-bit Windows platforms was provided on SourceForge, but this project seems to have been recently abandoned.

Other programming languages

The GObject introspection technology is used by a lot of bindings that provides support for many programming languages, including JavaScript, Rust, Ruby and many others.

If the bindings for your favourite language are already provided (and if they are properly implemented), the ADG should be automatically supported out-of-the-box once installed.