by Matijs van Zuijlen
Ruby bindings for GNOME using the GObject Introspection Repository.
- Create bindings to any GObject-based library.
- Bindings are generated at runtime.
- Provides overridden bindings for selected methods.
gir_ffi-gtk3to load overrides for Gtk2 or Gtk3.
require 'gir_ffi' # Set up the namespace you wish to use GirFFI.setup :Gio # Create an object inet_address = Gio::InetAddress.new_from_string "127.0.0.1" # Call some methods on the object inet_address.is_loopback # => true inet_address.is_multicast # => false # Call a function in the namespace Gio.dbus_is_name "foo" # => false
See the documentation for more usage information.
gem install gir_ffi
GirFFI is supported on CRuby 2.7, 3.0 and 3.1.
You will also need gobject-introspection installed with some introspection data.
Depending on the GIR data, GirFFI needs the actual libraries to be
available under the name ending in plain
.so. If GirFFI complains that it
cannot find the library, try installing development packages for those
GirFFI should work with gobject-introspection 1.56.0 and up, and glib 2.56.0 and up.
On Debian and Ubuntu, installing
should be enough to use GirFFI in your application.
To run the tests, you should additionally install
gir1.2-gstreamer-1.0. This should be enough to get
rake test working.
GirFFI has not been tested on Mac OS X or Microsoft Windows. YMMV. Pull requests to support these platforms are welcome.
Sometimes, the GIR data is incorrect, or not detailed enough, and a reasonable binding cannot be created automatically. For these cases, overrides can be defined. The following gems with overrides already exist:
gir_ffi-gtk: overrides for Gtk+ 2 and 3.
gir_ffi-gnome_keyring: overrides for GnomeKeyring
gir_ffi-cairo: overrides for Cairo
gir_ffi-pango: overrides for Pango
gir_ffi-tracker: overrides for Tracker
gir_ffi-gst: overrides for GStreamer
Please see CONTRIBUTING.md for contribution guidelines.
The following people have contributed to GirFFI over the years:
- John Cupitt
- Marius Hanne
- Antonio Terceiro
- Matijs van Zuijlen
Copyright © 2009–2022 Matijs van Zuijlen
GirFFI is free software, distributed under the terms of the GNU Lesser General Public License, version 2.1 or later. See the file COPYING.LIB for more information.