Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
72 lines (58 sloc) 2.43 KB
GObject Introspection
The goal of the project is to describe the APIs and collect them in
a uniform, machine readable format.
GIR XML format
There's an XML format called GIR used by GObjectIntrospection.
The purpose of it is to provide a common structure to access the complete
available API that a library or other unit of code exports.
It is meant to be language agnostic using namespaces to separate
core, language or library specific functionality.
There are currently only C based tools that work on the format, but it's
meant to be usable to use in other situations, for instance to/from another
set of languages.
The typelib is a to disk version of the GIR designed to be fast, memory
efficient and complete enough so that language bindings can be written
on top of it without other sources of information.
It is normally compiled from a GIR when a library/program is installed and
accessed from the language binding or another application who wishes to
use the information.
Three tools are shipped with GObject Introspection:
- g-ir-compile, a typelib compiler. It converts one or more GIR files
into one or more typelib blobs. It can either emit the raw typelib
blob or C code (--code).
- g-ir-generate, an GIR generator, using the repository API. It generates
GIR files from binary typelib which can be in a shared object, or a raw
typelib blob.
- g-ir-scanner, a tool which generates GIR XML files by parsing headers
and introspecting GObject based libraries.
- g-ir-doc-tool, generates Mallard files that can be viewed with yelp or
rendered to HTML with yelp-build from yelp-tools.
API library
There's also a C based library called libgirepository which provides
an API to access to the typelib metadata. It also contains an API to
invoke functions, given the function info object. The implementation is
based on libffi (3.0 or higher of libffi required, can be found at
There are a number of GIR test files in tests/, and a script to do
roundtrip tests (GIR -> typelib -> GIR).
Helping out
The introspection framework needs a lot more work, see TODO.
Reporting bugs
Bugs should be reported in, the glib product and
the introspection component.
Jump to Line
Something went wrong with that request. Please try again.