Projects
GNU G-Golf
G-Golf
G-Golf is a Guile Object Library for GNOME.
G-Golf is a tool to develop fast and feature-rich graphical applications, with a clean and recognizable look and feel. Here is an overview of the GNOME platform libraries, accessible using G-Golf.
In particular, libadwaita provides a number of
widgets that change their layout based on the available space. This can
be used to make applications adapt their UI between desktop and mobile
devices. The GNOME Web (best known through its code name,
G-Golf uses GLib, GObject and GObject Introspection. As it imports a Typelib (a GObject introspectable library), G-Golf defines GObject classes as GOOPS (the Guile Object Oriented System) classes. GObject methods are defined and added to their corresponding generic function. Simple functions are defined as scheme procedures.
Here is an example, an excerpt taken from the peg-solitaire game, that shows the implementation, for the peg-solitaire game, of the GtkApplication activate signal callback in G-Golf:
(define (activate app) (let ((window (make <gtk-application-window> #:title "Peg Solitaire" #:default-width 420 #:default-height 420 #:application app)) (header-bar (make <gtk-header-bar>)) (restart (make <gtk-button> #:icon-name "view-refresh-symbolic"))) (connect restart 'clicked (lambda (bt) (restart-game window))) (set-titlebar window header-bar) (pack-start header-bar restart) (create-board window) (show window)))
G-Golf comes with some examples, listed on the learn page of the G-Golf web site. Each example comes with a screenshot and has a link that points to its source code, in the G-Golf sources repository.
GNU Guile-CV
Guile-CV
Guile-CV is based on Vigra (Vision with
Generic Algorithms), enhanced with additional algorithms (
Guile-CV is natively
GNU Foliot
Foliot
Guile-Lib
Guile-Lib
Guile-Lib is intended as an accumulation place for pure-scheme Guile modules, allowing for people to cooperate integrating their generic Guile modules into a coherent library.
Guile-SQLite3
Guile-SQLite3 is a Guile wrapper for the SQLite database 3.0 API.
Tactus
Tactus is a simple yet powerful graphical planning and coordinating tool. Originally developed using Winterp and Motif, it will be redesigned and ported to Guile and G-Golf.
Grip
Grip
GNU Guile-GNOME
Guile-GNOME, a Guile wrapper for some of the GNOME core libraries, is retired (unmaintained) since 2017.
For your GNOME based graphical application(s) in Guile, prefer G-Golf or Guile-GI.
GNU Guile-Clutter
Guile-Clutter, a Guile wrapper for the GNOME Clutter library, is retired (unmaintained) since 2017.
In February 2022, the development team announced that the project would be discontinued. Developers using Clutter are encouraged to port their applications to Gtk+ 4.0 and libadwaita.
For Gtk+ 4.0 and libadwaita based application(s) in Guile, prefer G-Golf or Guile-GI.
G-Wrap
G-Wrap, a tool (and Guile library) for generating function wrappers for inter-language calls, used to generate Guile wrappers for C functions, mainly for Guile-GNOME and Guile-Clutter, is retired (unmaintained) since 2017.
Unpublished
Software we created and maintain that support Free Software, but are unpublished, generally because they are too specific. We nonetheless list them because they do witness knowledge, experience and skills you might be interested in.
ThesisPUC
Rg-Ergbd
Within the Digital Image Processing Laboratory, Materials Engineering Department of the PUC-Rio, we participate to the development of advanced algorithms for mineral (and agglomerates) microscopic image analysis.