{"id":15634164,"url":"https://github.com/mvz/gir_ffi","last_synced_at":"2025-05-15T16:02:19.893Z","repository":{"id":712796,"uuid":"359630","full_name":"mvz/gir_ffi","owner":"mvz","description":"Auto-generate bindings for GObject based libraries at run time using FFI","archived":false,"fork":false,"pushed_at":"2025-03-24T12:31:25.000Z","size":6875,"stargazers_count":145,"open_issues_count":10,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-31T20:06:59.381Z","etag":null,"topics":["gnome","gobject","gobject-introspection","gtk","hacktoberfest","ruby"],"latest_commit_sha":null,"homepage":"https://github.com/mvz/gir_ffi/wiki","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mvz.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.LIB","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2009-11-03T17:24:13.000Z","updated_at":"2025-03-24T12:31:28.000Z","dependencies_parsed_at":"2023-07-06T07:47:50.792Z","dependency_job_id":"9398ddf9-cc1f-42e3-9908-338d14012ca3","html_url":"https://github.com/mvz/gir_ffi","commit_stats":{"total_commits":4219,"total_committers":9,"mean_commits":"468.77777777777777","dds":0.01967290827210244,"last_synced_commit":"a611a9e8906e3889f19a1e2666c1865a2c47b428"},"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvz%2Fgir_ffi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvz%2Fgir_ffi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvz%2Fgir_ffi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvz%2Fgir_ffi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mvz","download_url":"https://codeload.github.com/mvz/gir_ffi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247730068,"owners_count":20986404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnome","gobject","gobject-introspection","gtk","hacktoberfest","ruby"],"created_at":"2024-10-03T10:51:32.501Z","updated_at":"2025-04-07T21:11:42.636Z","avatar_url":"https://github.com/mvz.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GirFFI\n\nby Matijs van Zuijlen\n\n## Description\n\nRuby bindings for GNOME using the GObject Introspection Repository.\n\n## Status\n\n[![Gem Version](https://badge.fury.io/rb/gir_ffi.svg)](http://badge.fury.io/rb/gir_ffi)\n[![Build Status](https://github.com/mvz/gir_ffi/actions/workflows/ruby.yml/badge.svg)](https://github.com/mvz/gir_ffi/actions/workflows/ruby.yml)\n[![Code Climate](https://codeclimate.com/github/mvz/gir_ffi/badges/gpa.svg)](https://codeclimate.com/github/mvz/gir_ffi)\n[![Documentation Status](https://inch-ci.org/github/mvz/gir_ffi.svg?branch=master)](https://inch-ci.org/github/mvz/gir_ffi)\n\n## Features\n\n* Create bindings to any GObject-based library.\n* Bindings are generated at runtime.\n* Provides overridden bindings for selected methods.\n* Install `gir_ffi-gtk` and require `gir_ffi-gtk2` or `gir_ffi-gtk3` to\n  load overrides for Gtk2 or Gtk3.\n\n## Usage\n\n```ruby\nrequire 'gir_ffi'\n\n# Set up the namespace you wish to use\nGirFFI.setup :Gio\n\n# Create an object\ninet_address = Gio::InetAddress.new_from_string \"127.0.0.1\"\n\n# Call some methods on the object\ninet_address.is_loopback    # =\u003e true\ninet_address.is_multicast   # =\u003e false\n\n# Call a function in the namespace\nGio.dbus_is_name \"foo\"   # =\u003e false\n```\n\nSee the [documentation](docs/Documentation.md) for more usage information.\n\n## Examples\n\nHave a look in the `examples/` directory for some simple examples. More\nexamples can be found in the repositories for\n[`gir_ffi-gtk`](https://github.com/mvz/gir_ffi-gtk) and\n[`gir_ffi-gst`](https://github.com/mvz/gir_ffi-gst/).\n\n## Install\n\n```bash\ngem install gir_ffi\n```\n\n## Requirements\n\nGirFFI is supported on CRuby 3.1 through 3.4.\n\nYou will also need gobject-introspection installed with some\nintrospection data.\n\nDepending on the GIR data, GirFFI needs the actual libraries to be\navailable under the name ending in plain `.so`. If GirFFI complains that it\ncannot find the library, try installing development packages for those\nlibraries.\n\nGirFFI should work with gobject-introspection 1.56.0 and up, and glib 2.56.0\nand up.\n\nOn Debian and Ubuntu, installing `libgirepository-1.0-1` and `gir1.2-glib-2.0`\nshould be enough to use GirFFI in your application.\n\nTo run the tests, you should additionally install `libgirepository1.0-dev`,\n`gobject-introspection`, `libcairo2-dev`, `gir1.2-gtop-2.0`, `gir1.2-gtk-3.0`,\n`gir1.2-pango-1.0`, `gir1.2-gtksource-3.0`, `gir1.2-secret-1` and\n`gir1.2-gstreamer-1.0`. This should be enough to get `rake test` working.\n\nGirFFI has not been tested on Mac OS X or Microsoft Windows. YMMV. Pull\nrequests to support these platforms are welcome.\n\n## Overrides\n\nSometimes, the GIR data is incorrect, or not detailed enough, and a\nreasonable binding cannot be created automatically. For these cases,\noverrides can be defined. The following gems with overrides\nalready exist:\n\n* `gir_ffi-gtk`: overrides for Gtk+ 2 and 3.\n* `gir_ffi-gnome_keyring`: overrides for GnomeKeyring\n* `gir_ffi-cairo`: overrides for Cairo\n* `gir_ffi-pango`: overrides for Pango\n* `gir_ffi-tracker`: overrides for Tracker\n* `gir_ffi-gst`: overrides for GStreamer\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.\n\n## Contributors\n\nThe following people have contributed to GirFFI over the years:\n\n* John Cupitt\n* Marius Hanne\n* Antonio Terceiro\n* Matijs van Zuijlen\n\n## License\n\nCopyright \u0026copy; 2009\u0026ndash;2022 [Matijs van Zuijlen](http://www.matijs.net)\n\nGirFFI is free software, distributed under the terms of the GNU Lesser\nGeneral Public License, version 2.1 or later. See the file COPYING.LIB for\nmore information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvz%2Fgir_ffi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmvz%2Fgir_ffi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvz%2Fgir_ffi/lists"}