Skip to content

jdahlin/ginext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ginext

Fast, lazy, JIT-compiled GObject-introspection bindings for free-threaded Python.

ginext lets you call GObject-based libraries — GLib, GIO, GTK, GStreamer, libsoup and more — directly from Python, reading their introspection typelibs at runtime and JIT-compiling the call paths. It is built for the free-threaded (no-GIL) CPython 3.14+ runtime.

from ginext import Gtk

app = Gtk.Application(application_id="org.example.Hello")

Install

pip install gi          # core (imports as `ginext`)
pip install gi[gtk]     # + GTK/Gdk/Pango/Gsk overlay
pip install gi[gio]     # + GIO overlay
pip install gi[gst]     # + GStreamer overlay
pip install gi[all]     # all overlays

gi is a small meta-package (it pulls in ginext-core and, via extras, the overlays); the code imports as ginext (from ginext import Gtk). You can also install the real distributions directly — pip install ginext-core, ginext-gtk, etc. The gi distribution ships no gi module, so it does not conflict with PyGObject.

The core links against GLib / GObject / girepository-2.0 (≥ 2.80). On Linux these come from your distribution; the overlay packages add Pythonic namespace overlays and ship as pure-Python wheels. Cross-platform wheels that bundle the GTK / GStreamer runtime are on the roadmap.

Packages

Package Contents
ginext-core Native core + GLib/GObject/GIRepository
ginext-gio GIO / GioUnix overlay
ginext-gtk GTK / Gdk / Pango / Gsk overlay
ginext-gst GStreamer overlay
ginext-libsoup libsoup overlay
ginext-gi-compat PyGObject gi.repository compatibility

License

LGPL-2.1-or-later. See LICENSE.

About

Modern Python bindings for gobject-introspection

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors