Nov 24 – 26, 2020
Asia/Kuala_Lumpur timezone

How GNOME supports multiple programming languages (the story of GObject Introspection)

Nov 26, 2020, 3:30 PM
Track 2

Track 2
50 minutes presentation


Federico Mena Quintero


GNOME's platform libraries (GTK, gstreamer, libgnome-desktop, librsvg,
etc.) are written in low-level languages like C, C++, and Rust, for
very good historical and technical reasons. And yet, people write
applications for GNOME in languages like Python and Javascript all the

How does this happen? How are vast APIs in C made to work from other
languages without tons of manual work?

This talk will explain GObject Introspection, one of GNOME's hidden
jewels. Over many years we have written what is essentially a
semi-automated annotation system for the low-level C ABI, which makes
it possible for language bindings to be generated mostly
automatically. This talk is not as much about a technology as it is a
story of collective maintenance to produce something wonderful.

Tracks Application Development and Deployment
Level of Difficulty Beginner
Author(s) Bio Federico (he/him) is one of the founders of GNOME, and is the current maintainer of librsvg.

Primary author

Presentation materials

There are no materials yet.