Go to file
Rico Tzschichholz 056a86ed58 Update GLib introspection data
This is based on 43e133723c39908d06e3c52ea13a6f95475b41b0.
2023-06-21 16:17:44 +02:00
.gitlab-ci CI: Show the exact commit we are building for each subproject 2023-03-13 23:17:09 +00:00
docs docs: Add Emmanuele's suggestions to "Writing Bindable APIs" 2023-03-18 23:05:22 +00:00
examples examples: fix typo in error message 2022-04-16 21:52:19 +01:00
gir Update GLib introspection data 2023-06-21 16:17:44 +02:00
girepository Add versioning macros for 1.78 2023-06-18 17:46:42 +01:00
giscanner Split disguised attribute into two 2023-01-08 21:48:45 +00:00
m4 Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR environment variable 2019-12-13 17:07:51 +01:00
misc Always pass an encoding to open() using text mode 2020-11-07 08:57:06 +01:00
subprojects Track the main branch of GLib as a subproject 2023-01-08 02:04:10 +00:00
tests regress: Unreference the created instance after conversion 2023-05-21 04:22:55 +00:00
tools g-ir-compiler: Fix leaks in write_out_typelib 2021-06-18 14:28:05 +00:00
.flake8 flake8 updates, fixes "make check.quality" 2018-11-04 13:32:29 +01:00
.gitignore Clean up the Git ignore file 2022-02-17 15:21:56 +00:00
.gitlab-ci.yml CI: Show the exact commit we are building for each subproject 2023-03-13 23:17:09 +00:00
COPYING Update license info 2018-06-23 17:03:13 +02:00
COPYING.GPL license: Update FSF address 2022-01-09 18:33:39 +00:00
COPYING.LGPL license: Update FSF address 2022-01-09 18:33:39 +00:00
HACKING Rename the main development branch 2022-02-17 15:21:51 +00:00
MSVC.README.rst Rename the main development branch 2022-02-17 15:21:51 +00:00
Makefile.introspection Revert "Windows port: Work arount MSYS weirdness where it changes --libtool= command line arguments." 2018-06-20 07:32:02 +02:00
NEWS Release gobject-introspection 1.76.1 2023-03-22 22:43:34 +00:00
README.rst Rename the main development branch 2022-02-17 15:21:51 +00:00
TODO Update and remove old cruft. 2008-08-29 09:51:39 +00:00
gobject-introspection.doap docs: Remove mention of mailing lists 2021-03-17 14:36:04 +00:00
meson.build Open development of g-i 2023-06-18 17:46:14 +01:00
meson_options.txt Rename option `gi_cross_use_{host -> prebuilt}_gi` 2020-05-17 10:49:53 -04:00
mypy.ini Require Python 3.6 2020-11-12 18:23:11 +01:00


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 an on-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.

The following tools are shipped with GObject Introspection:

- g-ir-scanner, a tool which generates GIR XML files by parsing headers,
  GTK-Doc comment blocks including annotations and introspecting GObject
  based libraries.
- g-ir-compiler, a typelib compiler. It converts one or more GIR files
  into one or more typelib blobs.
- 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-annotation-tool, extracts annotations from source code files
- g-ir-doc-tool, generates API reference documentation from a GIR XML file.

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 the ``TODO`` file.

Default branch renamed to ``main``

The default development branch of GObject Introspection has been renamed
to ``main``. To update your local checkout, use::

    git checkout master
    git branch -m master main
    git fetch
    git branch --unset-upstream
    git branch -u origin/main
    git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main


Reporting bugs
Bugs should be reported in https://gitlab.gnome.org/GNOME/gobject-introspection/issues.

:Discourse: https://discourse.gnome.org/tag/introspection
:IRC: #introspection@irc.gnome.org