Guile

The GNU extension language

Projects List


This page lists free software projects that use or enhance the current stable version of Guile. To have your project listed here or to contribute, ask for instructions on the guile-user mailing list.

Note: If you want your project to appear here on the GNU site, then you must include licensing information, and the license has to be acceptably free.

Older Guile projects, e.g., software that might not run with the current stable version of Guile, are listed here.


Core Projects

These projects modify or enhance the innards of Guile.

Guile-Lib
description 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. Think "a down-scaled, limited-scope CPAN for Guile".
license LGPL 2.1 or later
Guile-Lint
description Syntactic and semantic checks on Guile 1.8 programs and modules. Picks up things like unbound variables in hard-to-reach places (note that Guile 2.0 brings part of Guile-Lint's functionality through its compiler warnings.)
license GPL 2 or later
Guile-Reader
description Guile-Reader is a toolkit to build readers for Guile, making it easy to extend the syntax. It makes it possible to have several coexisting readers, recognizing different syntaxes.
license LGPL 2.1 or later
Guile syntax parse
description Guile syntax parse is a port of Racket's syntax parse for Guile 2. It allows one to parse complex syntax expressions correctly and with good error reporting in a hygienic way. The recommending reading for anyone interested to learn more is the Racket documentation for syntax parse at Racket doc.
license LGPL 2 or later

Graphical User Interfaces

Projects that provide support for the creation of graphical user interfaces (GUIs).

GNU Guile-GNOME
description Guile-GNOME provides Guile 1.8/2.0 bindings for the entire GNOME library stack: from Pango to GnomeCanvas, Gtk+ to GStreamer, Glade to GtkSourceView, etc.
license GPL 2 or later

GNU Guile-GTK
description Guile-GTK provides bindings to the GTK+ toolkit from Guile 1.8.
license GPL 3 or later

GNU Guile-Ncurses
description GNU Guile-Ncurses is a Guile library that provides functions for creating text user interfaces. The text user interface functionality is built on the ncurses libraries: curses, form, panel, and menu.
license GPL 3 or later

GNU Guile-SDL
description Guile-SDL is a set of modules that provide bindings for SDL (Simple DirectMedia Layer) to enable Guile programmers to do all the nice things you can do with SDL.
license GPL 3 or later

libRUIN
description libRUIN (Renderer for User Interfaces in Ncurses) is a rendering library for various XML-based user interface markup languages (such as Mozilla XUL), using the Ncurses terminal control library as a rendering target. GNU Guile and the SDOM Scheme module are used as the "glue" that manages user input and event handling.
license GPL

File Formats

Tools and libraries to read and produce specific file formats.

Networking

These projects provide Guile modules for networking.

GnuTLS
description Guile bindings for the GnuTLS library, an implementation of the Transport Layer Security (TLS) protocol
license LGPL v3 or later

Guile-Avahi
description Guile 1.8 bindings for Avahi, an implementation of the mDNS and DNS-SD protocol. The latter provides service discovery mechanisms.
license LGPL v3 or later

GNU Guile-RPC
description GNU Guile-RPC is an implementation of ONC RPC and XDR (standardized as RFC 1831 and RFC 4506) in Guile Scheme, and for use by Guile programs.
license LGPL v3 or later

SCSS
description SCSS is an implementation in Scheme of the W3C CSS recommendation (version 2.1). It provides a framework for parsing user-supplied style information and for querying the resulting cascade using SXML/SDOM documents or plain text.
license GPL

Ragnarok
description A server for HTTP and other Internet protocols, with support for templates, CGI, and more.
license GPL v3 or later

Tools

These projects are tools for or implemented with Guile. Mostly, these are the types of things that automate documentation or code generation.

GNU AutoGen
description AutoGen is a tool designed for generating program files that contain repetitive text with varied substitutions. Its goal is to simplify the maintenance of programs that contain large amounts of repetitious text. This is especially valuable if there are several blocks of such text that must be kept synchronized.
license GPL for the AutoGen engine, LGPL for the POSIX and GNU compliant option processing

GNU Guix
description GNU Guix is a purely functional package manager, and associated distribution of the GNU system. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs), to describe how packages are to be built and composed.
license GPL 3 or layer

libchop
description Libchop is a set of utilities and library for data backup and distributed storage. Its main application is chop-backup, an encrypted backup program that supports data integrity checks, versioning at little cost, distribution among several sites, selective sharing of stored data, adaptive compression, and more. The library itself, which chop-backup builds upon, implements storage techniques such as content-based addressing, content hash keys, Merkle trees, similarity detection, and lossless compression. It is written in C and Scheme, with Guile 2.0 bindings.
license GPL 3 or later

Applications

These projects are applications using Guile: either C programs that allow extension via Scheme, or Scheme programs written for Guile.

Beast
description Beast is a music composition and synthesis tool.
license GPL 2 or later, LGPL 2.1 or later

gEDA (GPL Electronic Design Automation)
description The gEDA project provids a full GPL-licensed suite of electronic design tools, including schematic capture, simulation, prototyping and production. Guile is used for extensibility and customisation of many gEDA applications.
license GPL 2 or later.

GNU LilyPond
description LilyPond generates beautiful music notation from an input file.
license GPL

Skribilo
description Skribilo is a document authoring system that can produce output in a variety of formats including HTML and PDF from a single input format. It is implemented in Scheme and highly customizable and programmable.
license GPL 2 or later

Snd
description Snd is a sound editor.
license LGPL

GNU TeXmacs
description GNU TeXmacs is a free WYSIWYW editing platform with special features for scientists. The software aims to provide a unified and user friendly framework for editing structured documents with different types of content (text, graphics, mathematics, interactive content, etc.). The rendering engine uses high-quality typesetting algorithms so as to produce professionally looking documents, which can either be printed out or presented from a laptop. New presentation styles can be written by the user and new features can be added to the editor using the Scheme extension language.
license GPL

XChat-Guile
description XChat-Guile is a plugin for XChat that enables XChat plugin writers to write their plugins in Scheme language. Since it uses libguile, the plugin writers can do almost everything that they can do with guile. e.g It is possible to do all kinds of gnome stuff using the guile-gnome modules.
license GPL