All Projects → spk121 → guile-gi

spk121 / guile-gi

Licence: GPL-3.0 license
Bindings for GObject Introspection and libgirepository for Guile

Programming Languages

c
50402 projects - #5 most used programming language
scheme
763 projects
shell
77523 projects
Makefile
30231 projects
M4
1887 projects
emacs lisp
2029 projects

Projects that are alternatives of or similar to guile-gi

sph-lib
more than 80 gpl3+ licensed guile scheme libraries
Stars: ✭ 15 (-69.39%)
Mutual labels:  guile
gobject-example-rs
Example for exporting a GObject/C API from Rust
Stars: ✭ 31 (-36.73%)
Mutual labels:  gobject-introspection
platypus-os
OS for pentesting, programming, and playing video games. Contributions welcome!
Stars: ✭ 23 (-53.06%)
Mutual labels:  gnu
notification-thing
Python-based implementation of Desktop Notifications Specification (notification-daemon)
Stars: ✭ 24 (-51.02%)
Mutual labels:  gobject-introspection
ffmpeg-builds
MOVED: https://gitlab.com/q3aql/ffmpeg-builds
Stars: ✭ 71 (+44.9%)
Mutual labels:  gnu
The-Learning-Documentation-Project
This documentation is about the new learning(s) and issue(s) resolvings on different aspects of academic, professional and personal thoughts. It includes(or/with links): Research topics(& resources), Programming(issues and code), Advanced Linux commands, Networking commands, bash script command utilization, Linux packages(& scripts), Machinine l…
Stars: ✭ 27 (-44.9%)
Mutual labels:  gnu
guile-commonmark
Implementation of CommonMark for Guile
Stars: ✭ 31 (-36.73%)
Mutual labels:  guile
homebrew-guile
A Homebrew Tap for Guile libraries and applications.
Stars: ✭ 25 (-48.98%)
Mutual labels:  guile
MeetixOS
An hobby OS written in modern C++20 which aims to be Unix-like. Currently based on EvangelionNG, a GhostOS derived kernel
Stars: ✭ 179 (+265.31%)
Mutual labels:  gnu
website
Public website for ITUGnu
Stars: ✭ 16 (-67.35%)
Mutual labels:  gnu
OCaml-GObject-Introspection
OCaml bindings to GObject-Introspection based on OCaml-Ctypes.
Stars: ✭ 15 (-69.39%)
Mutual labels:  gobject-introspection
KDynamic
An Alternative to MacOS Mojave Dynamic Theme and Wallpaper Changer
Stars: ✭ 48 (-2.04%)
Mutual labels:  gnu
CWP-Utilities
Combined Windows Privacy Utilities | Hosts file updater, block list manager, and more. Open source tools for Windows users, to help ensure privacy & security. Block ads, spyware domains, and other malicious activity/traffic, all through a simple interface.
Stars: ✭ 63 (+28.57%)
Mutual labels:  gnu
guile-haunt
A static site generator written in Guile Scheme.
Stars: ✭ 29 (-40.82%)
Mutual labels:  guile
CombinedPrivacyBlockLists
Ad-blocking hosts files, IP block lists, PAC filters, and ABP / uBO subscriptions, all merged from multiple reputable sources, combined with my own research. Also, script-based utilities to help you create such things yourself. Updated at least once a week, often more frequently.
Stars: ✭ 131 (+167.35%)
Mutual labels:  gnu
guile-smc
GNU Guile State Machine Compiler
Stars: ✭ 15 (-69.39%)
Mutual labels:  guile
hyperbole
GNU Hyperbole: The Everyday, Hypertextual Information Manager
Stars: ✭ 111 (+126.53%)
Mutual labels:  gnu
overscan
A live coding environment for live streaming video
Stars: ✭ 36 (-26.53%)
Mutual labels:  gobject-introspection
open-heroes
Some people that facilitate science, one way or the other
Stars: ✭ 37 (-24.49%)
Mutual labels:  gnu
libconfini
Yet another INI parser
Stars: ✭ 106 (+116.33%)
Mutual labels:  gnu

Guile GI

Build Status

This is a library for GNU Guile to create language bindings via GObject Introspection.

GNU Guile is an implementation of Scheme, which is a Lisp-like language. This library allows Guile to use GObject-based libraries -- such as GTK+3, GLib, and WebKit2 -- by generating a Scheme API from the GObject Introspection information provided by those libraries.

This is beta code. It is only partially documented. The API is stabilizing, but may still be subject to change.

Guile GI has two primary components.

  • The gi scheme modules: guile modules that provide functionality to dynamically generate Scheme API from GObject typelib files

  • libguile-gi.so or libguile-gi.dll: a compiled module that contains glue code to interface with GObject

To create bindings, use the use-typelibs syntax found in the (gi) library.

Requirements

To build guile-gi, one needs a fairly standard build environment, plus the development files for GObject Introspection and Guile. On Debian-based systems, this translates to

build-essential libgirepository1.0-dev guile-3.0-dev

It is also possible to build Guile-GI for Guile 2.2, in which guile-3.0-dev is to be replaced by guile-2.2-dev.

When building from a git clone rather than a release tarball, Texinfo is required as well in order to build documentation.

Users of GNU Guix can set up development environments through the provided guix.scm.

Running from source

To run one of the examples or your own code with Guile-GI built directly from source, use tools/uninstalled-env. For example

$ tools/uninstalled-env tools/run-guile examples/browser.scm

Testing

In order to test Guile-GI itself, only the requirements above are necessary. Some tests further rely on the GObject Introspection files of certain libraries. To run the full suite, you need

  • GLib, GObject, Gio
  • Marshall, Everything (should come with gobject-instrospection)
  • Gtk
  • Grl (grilo)

Users of GNU Guix will have to pass the --with-gir-hacks option to ./configure; it will cause Guile-GI to build typelibs for the versions of its dependencies, that are actually found in the build environment.

Documentation

Further documentation is located at spk121.github.io/guile-gi.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].