Libraries

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.

Core

These projects modify or enhance the innards of Guile.

Guile-lib

Guile 2.0Guile 1.8

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

Guile 1.8

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

Guile 2.0Guile 1.8

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

Guile 2.0

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

Guile 2.0

Guile wrapper for GNOME Clutter library. Clutter is a Scene Graph based canvas working in Retained Mode. Every object on the scene is usually a 2D surface inside a 3D space.

License: GPL 2 or later

GNU Guile-Gnome

Guile 2.0

Guile wrapper collection for GNOME core libraries. It provides a comprehensive environment for developing modern graphical applications.

License: GPL 2 or later

GNU Guile-GTK

Guile 1.8

Guile-GTK provides bindings to the GTK+ toolkit from Guile 1.8.

License: GPL 3 or later

GNU Guile-Ncurses

Guile 2.0

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

Guile 2.0

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

Guile 2.0

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.

GNU Artanis

Guile 2.0

Web Application Framework (WAF) with support for templates, MVC, relational mapping, and more.

License: GPLv3+ and LGPLv3+

GnuTLS

Guile 2.0

Guile bindings for the GnuTLS library, an implementation of the Transport Layer Security (TLS) protocol.

License: LGPL 3 or later

Guile-Avahi

Guile 1.8

Bindings for Avahi, an implementation of the mDNS and DNS-SD protocol. The latter provides service discovery mechanisms.

License: LGPL 3 or later

GNU Guile-RPC

Guile 2.0

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 3 or later

SCSS

Guile 2.0

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

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

Guile 2.0

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

Guile 2.0

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 later

Libchop

Guile 2.0

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

Guile 2.0

Beast is a music composition and synthesis tool.

License: GPL 2 or later, LGPL 2.1 or later

GNU GDB

Guile 2.0

GDB is the GNU debugger. With it, you can monitor what a program is doing while it runs or what it was doing just before a crash. It allows you to specify the runtime conditions, to define breakpoints, and to change how the program is running to try to fix bugs. It can be used to debug programs written in C, C++, Ada, Objective-C, Pascal and more.

License: GPL 3 or later

gEDA (GPL Electronic Design Automation)

Guile 2.0

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

Guile 1.8

LilyPond generates beautiful music notation from an input file.

License: GPL

Skribilo

Guile 2.0Guile 1.8

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

Guile 2.0

Snd is a sound editor.

License: LGPL

GNU TeXmacs

Guile 2.0

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

Guile 2.0

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