GObject Introspection streamlines API descriptions into an accessible, standardized format for machines to process.
The typelib is a version of the GIR that's saved to disk. It is designed to be speedy, memory efficient, and comprehensive enough to allow language bindings to be created on top without requiring additional sources of information. Libraries/programs typically compile it from a GIR format when they are installed and accessed from the language binding or another application that wishes to use the data.
There are three tools provided with GObject Introspection. The first is g-ir-compile, a typelib compiler that transforms one or more GIR files into one or more typelib blobs. The tool can emit either the raw typelib blob or C code (--code). The second tool is g-ir-generate. It's a GIR generator that leverages the repository API, producing GIR files from binary typelib present in shared objects or raw typelib blobs. The third tool is g-ir-scanner, a parser that generates GIR XML files by introspecting GObject-based libraries.
GObject Introspection also includes a C-based library called libgirepository that offers an API for accessing the typelib metadata. The library also has an API to invoke functions, given the function info object. The implementation is based on libffi (3.0 or higher of libffi required, available at...). Furthermore, there are GIR test files in tests/, along with a roundtrip testing script (GIR -> typelib -> GIR) to ensure accuracy. With these impressive features, GObject Introspection is a reliable software tool worth trying.
Version 0.6.5: N/A