Warning: the windows branch is treated as a local topic branch that just happens to be shared here, so expect non-fast-forward updates...
C Python C++ Objective-C JavaScript Shell
Switch branches/tags
INITIAL_RELEASE GOBJECT_INTROSPECTION_1_45_2 GOBJECT_INTROSPECTION_1_44_0 GOBJECT_INTROSPECTION_1_43_92 GOBJECT_INTROSPECTION_1_43_91 GOBJECT_INTROSPECTION_1_43_3 GOBJECT_INTROSPECTION_1_41_91 GOBJECT_INTROSPECTION_1_41_4 GOBJECT_INTROSPECTION_1_41_3 GOBJECT_INTROSPECTION_1_40_0 GOBJECT_INTROSPECTION_1_39_90 GOBJECT_INTROSPECTION_1_39_3 GOBJECT_INTROSPECTION_1_38_0 GOBJECT_INTROSPECTION_1_37_6 GOBJECT_INTROSPECTION_1_37_4 GOBJECT_INTROSPECTION_1_37_1 GOBJECT_INTROSPECTION_1_36_0 GOBJECT_INTROSPECTION_1_35_9 GOBJECT_INTROSPECTION_1_35_8 GOBJECT_INTROSPECTION_1_35_4 GOBJECT_INTROSPECTION_1_35_3 GOBJECT_INTROSPECTION_1_35_2 GOBJECT_INTROSPECTION_1_34_2 GOBJECT_INTROSPECTION_1_34_1_1 GOBJECT_INTROSPECTION_1_34_1 GOBJECT_INTROSPECTION_1_34_0 GOBJECT_INTROSPECTION_1_33_14 GOBJECT_INTROSPECTION_1_33_10 GOBJECT_INTROSPECTION_1_33_9 GOBJECT_INTROSPECTION_1_33_4 GOBJECT_INTROSPECTION_1_33_3 GOBJECT_INTROSPECTION_1_33_2 GOBJECT_INTROSPECTION_1_32_1 GOBJECT_INTROSPECTION_1_32_0 GOBJECT_INTROSPECTION_1_31_22 GOBJECT_INTROSPECTION_1_31_20 GOBJECT_INTROSPECTION_1_31_10 GOBJECT_INTROSPECTION_1_31_6 GOBJECT_INTROSPECTION_1_31_1 GOBJECT_INTROSPECTION_1_30_0 GOBJECT_INTROSPECTION_1_29_17 GOBJECT_INTROSPECTION_1_29_16 GOBJECT_INTROSPECTION_1_29_15 GOBJECT_INTROSPECTION_1_29_0 GOBJECT_INTROSPECTION_0_10_8 GOBJECT_INTROSPECTION_0_10_7 GOBJECT_INTROSPECTION_0_10_6 GOBJECT_INTROSPECTION_0_10_5 GOBJECT_INTROSPECTION_0.10.4 GOBJECT_INTROSPECTION_0_10_4 GOBJECT_INTROSPECTION_0_10_3 GOBJECT_INTROSPECTION_0_10_2 GOBJECT_INTROSPECTION_0_10_1 GOBJECT_INTROSPECTION_0_10_0 GOBJECT_INTROSPECTION_0_9_12 GOBJECT_INTROSPECTION_0_9_11 GOBJECT_INTROSPECTION_0_9_10 GOBJECT_INTROSPECTION_0_9_9 GOBJECT_INTROSPECTION_0_9_8 GOBJECT_INTROSPECTION_0_9_7 GOBJECT_INTROSPECTION_0_9_6 GOBJECT_INTROSPECTION_0_9_3 GOBJECT_INTROSPECTION_0_9_2 GOBJECT_INTROSPECTION_0_9_0 GOBJECT_INTROSPECTION_0_6_14 GOBJECT_INTROSPECTION_0_6_13 GOBJECT_INTROSPECTION_0_6_12 GOBJECT_INTROSPECTION_0_6_11 GOBJECT_INTROSPECTION_0_6_10 GOBJECT_INTROSPECTION_0_6_9 GOBJECT_INTROSPECTION_0_6_8 GOBJECT_INTROSPECTION_0_6_7 GOBJECT_INTROSPECTION_0_6_6 GOBJECT_INTROSPECTION_0_6_5 GOBJECT_INTROSPECTION_0_6_4 GOBJECT_INTROSPECTION_0_6_3 GOBJECT_INTROSPECTION_0_6_2 GOBJECT_INTROSPECTION_0_6_1 GOBJECT_INTROSPECTION_0_6_0 GOBJECT_INTROSPECTION_0_5_0 1.42.0 1.39.0
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
examples
gir
girepository
giscanner
m4
misc
tests
tools
.dir-locals.el
.gitignore
AUTHORS
CONTRIBUTORS
COPYING
COPYING.GPL
COPYING.LGPL
COPYING.lib
COPYING.tools
ChangeLog
ChangeLog.pre-git
HACKING
Makefile-cmph.am
Makefile-examples.am
Makefile-gir.am
Makefile-girepository.am
Makefile-giscanner.am
Makefile-tools.am
Makefile.am
Makefile.introspection
NEWS
README
TODO
acinclude.m4
autogen.sh
common.mk
configure.ac
gobject-introspection-1.0.pc.in
gobject-introspection-no-export-1.0.pc.in
gobject-introspection.doap

README

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.

Typelib
=======

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.

Tools
=====

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
http://sourceware.org/libffi).

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.

Homepage
========
http://live.gnome.org/GObjectIntrospection

Reporting bugs
==============
Bugs should be reported in http://bugzilla.gnome.org/, the glib product and
the introspection component.

Contact
=======
Mail: gtk-devel-list@gnome.org
IRC: #introspection@irc.gnome.org