Part I. GObject-Introspection Overview

Table of Contents

Compiling the GObject Introspection package — How to compile GObject Introspection itself
Writing introspected libraries — General considerations when writing introspected libraries

GObject-Introspection is striving to provide a middleware layer between (GObject based) C libraries and language bindings. The primary goal of this project is to minimize duplicated effort in language binding projects by providing shared metadata files on bound C libraries. Language bindings can read these metadata files at runtime to learn how to interface with a bound C library.

The GObject-Introspection package contains of a few different parts:

  • The GIR XML format - an XML format describing the exported C API including documentation

  • The GTypelib format - a binary format optimized for fast disk access and low memory usage

  • g-ir-scanner - parses C source code and gtk-doc comments and generates GIR XML files

  • g-ir-compiler - compiles GIR XML files into typelibs

  • libgirepository - library to access typelib from C

The following illustration shows how the different components fit together: