GirFFI ↑

by Matijs van Zuijlen

Description ↑

Ruby bindings for GNOME using the GObject Introspection Repository.

Status ↑

Features ↑

Usage ↑

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.

Examples ↑

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 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 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:

Contributing ↑

Please see CONTRIBUTING.md for contribution guidelines.

Contributors ↑

The following people have contributed to GirFFI over the years:

License ↑

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.