You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ruby bindings for GNOME using the GObject Introspection Repository.
Status
Features
Create bindings to any GObject-based library.
Bindings are generated at runtime.
Provides overridden bindings for selected methods.
Install gir_ffi-gtk and require gir_ffi-gtk2 or gir_ffi-gtk3 to
load overrides for Gtk2 or Gtk3.
Usage
require'gir_ffi'# Set up the namespace you wish to useGirFFI.setup:Gio# Create an objectinet_address=Gio::InetAddress.new_from_string"127.0.0.1"# Call some methods on the objectinet_address.is_loopback# => trueinet_address.is_multicast# => false# Call a function in the namespaceGio.dbus_is_name"foo"# => false
Have a look in the examples/ directory for some simple examples. More
examples can be found in the repositories for
gir_ffi-gtk and
gir_ffi-gst.
Install
gem install gir_ffi
Requirements
GirFFI is supported on CRuby 3.1 through 3.4.
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
libraries.
GirFFI should work with gobject-introspection 1.56.0 and up, and glib 2.56.0
and up.
On Debian and Ubuntu, installing libgirepository-1.0-1 and gir1.2-glib-2.0
should be enough to use GirFFI in your application.
To run the tests, you should additionally install libgirepository1.0-dev,
gobject-introspection, libcairo2-dev, gir1.2-gtop-2.0, gir1.2-gtk-3.0,
gir1.2-pango-1.0, gir1.2-gtksource-3.0, gir1.2-secret-1 and
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.
Overrides
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:
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.
About
Auto-generate bindings for GObject based libraries at run time using FFI