Libraries

This page lists free software projects that use or enhance the current stable version of Guile. It is generated from the package collection of GNU Guix. If you want to add packages to this list, consider contributing them to Guix!

8sync

Guile 3.0

GNU 8sync (pronounced "eight-sync") is an asynchronous programming library for GNU Guile based on the actor model.

License: LGPL 3+

ac-d-bus

Guile 3.0

AC/D-Bus is an implementation of the D-Bus wire protocol. D-Bus is an interprocess communication protocol popular on GNU/Linux systems to communicate with a variety of services. Originally designed for desktop environments, it is now used by programs like VLC media player, BlueZ, NetworkManager, Pulseaudio, systemd (including logind and resolved), Polkit, gnome-keyring, and many more.

License: Expat

agi-bio

Guile 2.2

This is a package for genomic and proteomic research using the OpenCog toolset with Guile. This includes experiments in applying pattern mining and other OpenCog components.

License: AGPL 3

aiscm

Guile 3.0

AIscm is a Guile extension for numerical arrays and tensors. Performance is achieved by using the LLVM JIT compiler.

License: GPL 3+

aisleriot

Guile 2.2

Aisleriot (also known as Solitaire or sol) is a collection of card games which are easy to play with the aid of a mouse.

License: GPL 3+

akku

Guile 3.0

Akku.scm is a project-based language package manager for R6RS and R7RS Scheme. It is mainly meant for programmers who develop portable programs or libraries in Scheme, but could potentially work for end-users of those programs. It also has a translator from R7RS, which allows most R7RS code to run on R6RS implementations.

License: GPL 3+

alive

Guile 3.0

GNU Alive sends periodic pings to a server, generally to keep a connection alive.

License: GPL 3+

anubis

Guile 3.0

Anubis is a daemon that sits between the Mail User Agent (MUA) and the Mail Transfer Agent (MTA). When a mail is sent by a user in the MUA, it is first passed to Anubis, which performs additional processing to the message before passing it on for delivery by the MTA. Anubis may, for example, modify the message headers or body, or encrypt or sign the message.

License: GPL 3+

artanis

Guile 3.0

GNU Artanis is a web application framework written in Guile Scheme. A web application framework (WAF) is a software framework that is designed to support the development of dynamic websites, web applications, web services and web resources. The framework aims to alleviate the overhead associated with common activities performed in web development. Artanis provides several tools for web development: database access, templating frameworks, session management, URL-remapping for RESTful, page caching, and more.

License: GPL 3+, LGPL 3+

atomspace

Guile 2.2

The OpenCog AtomSpace is an in-RAM knowledge representation (KR) database, an associated query engine and graph-re-writing system, and a rule-driven inferencing engine that can apply and manipulate sequences of rules to perform reasoning. It is a layer that sits on top of ordinary distributed (graph) databases, providing a large variety of advanced features not otherwise available.

License: AGPL 3

attention

Guile 2.2

Attention Allocation is an OpenCog subsystem meant to control the application of processing and memory resources to specific tasks.

License: AGPL 3

autogen

Guile 3.0

AutoGen is a program to ease the maintenance of programs that contain large amounts of repetitive text. It automates the construction of these sections of the code, simplifying the task of keeping the text in sync. It also includes an add-on package called AutoOpts, which is specialized for the maintenance and documentation of program options.

License: GPL 3+

avr-gdb

Guile 3.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.

This variant of GDB can be used to debug programs written for the AVR microcontroller architecture.

License: GPL 3+

bats

Guile 3.0

Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected. Bats is most useful when testing software written in Bash, but you can use it to test any UNIX program.

License: Expat

bffe

Guile 3.0

The BFFE of Build Farm Front-end is an experimental frontend for Guix build farms. It works together with the Guix Data Service and Guix Build Coordinator to submit builds and monitor the activity.

It functions as a Guile library, with the run-bffe-service procedure in the (bffe) module as the entry point.

License: GPL 3+

camlboot

Guile 3.0

OCaml is written in OCaml. Its sources contain a pre-compiled bytecode version of ocamlc and ocamllex that are used to build the next version of the compiler. Camlboot implements a bootstrap for the OCaml compiler and provides a bootstrapped equivalent to these files.

It contains a compiler for a small subset of OCaml written in Guile Scheme, an interpreter for OCaml written in that subset and a manually-written lexer for OCaml. These elements eliminate the need for the binary bootstrap in OCaml and can effectively bootstrap OCaml 4.07.

This package produces a native ocamlc and a bytecode ocamllex.

License: Expat

carla

Guile 2.2

Carla is a modular audio plugin host, with features like transport control, automation of parameters via MIDI CC and remote control over OSC. Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2, and VST3 plugin formats, plus SF2 and SFZ file support. It uses JACK as the default and preferred audio driver but also supports native drivers like ALSA.

License: GPL 2+

ccwl

Guile 3.0

The ccwl is a concise syntax to express CWL workflows. ccwl is a compiler to generate CWL workflows from concise descriptions in ccwl. It is implemented as an EDSL in the Scheme programming language.

License: GPL 3+

chickadee

Guile 3.0

Chickadee is a game development toolkit for Guile Scheme built on top of SDL2 and OpenGL. Chickadee aims to provide all the features that parenthetically inclined game developers need to make 2D (and eventually 3D) games in Scheme, such as:

  1. extensible, fixed-timestep game loop

  2. OpenGL-based rendering engine

  3. keyboard, mouse, controller input

  4. REPL-driven development model

License: ASL 2.0

clipmenu

Guile 3.0

Start clipmenud, then run clipmenu to select something to put on the clipboard.

When clipmenud detects changes to the clipboard contents, it writes them out to the cache directory. clipmenu reads the cache directory to find all available clips and launches dmenu (or rofi, depending on the value of CM_LAUNCHER) to let the user select a clip. After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.

License: Public Domain

cogserver

Guile 2.2

The OpenCog Cogserver is a network and job server for the OpenCog framework.

License: AGPL 3

cuirass

Guile 3.0

Cuirass is a continuous integration tool using GNU Guix. It is intended as a replacement for Hydra.

License: GPL 3+

denemo

Guile 2.0

GNU Denemo is a music notation editor that provides a convenient interface to the powerful music engraving program Lilypond. Music can be typed in using the computer keyboard, played in using a MIDI keyboard, or even input via a microphone connected to the sound card. The final product is publication-quality music notation that is continuously generated in the background while you work.

License: GPL 3+

dezyne

Guile 3.0

Dezyne is a programming language and a set of tools to specify, validate, verify, simulate, document, and implement concurrent control software for embedded and cyber-physical systems. The Dezyne language has formal semantics expressed in mCRL2.

License: AGPL 3+, LGPL 3+, CC0

dico

Guile 2.2

GNU Dico implements a flexible dictionary server and client according to RFC 2229 (DICT Server). It is able to access any database available, regardless of format, thanks to its modular structure. New modules may be written in C, Guile or Python. Dico also includes a command-line client, which may be used to query remote dictionary databases.

License: GPL 3+

disarchive

Guile 3.0

Disarchive can disassemble software archives into data and metadata. The goal is to create a small amount of metadata that can be used to recreate a software archive bit-for-bit from the original files. For example, a software archive made using tar and Gzip will need to describe the order of files in the tarball and the compression parameters used by Gzip.

License: GPL 3+

distrobox

Guile 3.0

Distrobox is a fancy wrapper around Podman or Docker to create and start containers highly integrated with the hosts.

License: GPL 3

dpkg

Guile 3.0

This package provides the low-level infrastructure for handling the installation and removal of Debian software packages.

License: GPL 2+

ecj-javac-wrapper

Guile 3.0

This package provides a wrapper around the Eclipse compiler for Java (ecj) with a command line interface that is compatible with the standard javac executable.

License: EPL 1.0

emacs-geiser-guile

Guile 3.0

This package adds support for the Guile Scheme implementation to Geiser, a generic Scheme interaction mode for the GNU Emacs editor.

License: Modified BSD

emacs-guix

Guile 3.0

Emacs-Guix provides a visual interface, tools and features for the GNU Guix package manager. Particularly, it allows you to do various package management tasks from Emacs. To begin with, run M-x guix-about or M-x guix-help command.

License: GPL 3+

emacsy

Guile 3.0

Emacsy is an embeddable Emacs-like library that uses GNU Guile as extension language. Emacsy can give a C program an Emacsy feel with keymaps, minibuffer, recordable macros, history, tab completion, major and minor modes, etc., and can also be used as a pure Guile library. It comes with a simple counter example using FreeGLUT and browser examples in C using Gtk+-3 and WebKitGtk.

License: GPL 3+

emacsy-minimal

Guile 2.2

Emacsy is an embeddable Emacs-like library that uses GNU Guile as extension language. Emacsy can give a C program an Emacsy feel with keymaps, minibuffer, recordable macros, history, tab completion, major and minor modes, etc., and can also be used as a pure Guile library. It comes with a simple counter example using FreeGLUT and browser examples in C using Gtk+-3 and WebKitGtk.

License: GPL 3+

f

Guile 3.0

f.scm is a library intended to facilitate working with files and directories (the file system in general). It was initially inspired by the f library for Emacs.

License: GPL 3+

fdisk

Guile 1.8

GNU fdisk provides a GNU version of the common disk partitioning tool fdisk. fdisk is used for the creation and manipulation of disk partition tables, and it understands a variety of different formats.

License: GPL 3+

fibers

Guile 3.0Guile 2.2

Fibers is a Guile library that implements a a lightweight concurrency facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is like a "goroutine" from the Go language: a lightweight thread-like abstraction. Systems built with Fibers can scale up to millions of concurrent fibers, tens of thousands of concurrent socket connections, and many parallel cores. The Fibers library also provides Concurrent ML-like channels for communication between fibers.

Note that Fibers makes use of some Guile 2.1/2.2-specific features and is not available for Guile 2.0.

License: LGPL 3+

freehdl

Guile 2.2

FreeHDL is a compiler/simulator suite for the hardware description language VHDL. VHDL'93 as well as VHDL'87 standards are supported.

License: GPL 2+, LGPL 2.0+

freetalk

Guile 3.0

GNU Freetalk is a command-line Jabber/XMPP chat client. It notably uses the Readline library to handle input, so it features convenient navigation of text as well as tab-completion of buddy names, commands and English words. It is also scriptable and extensible via Guile.

License: GPL 3+

g-golf

Guile 3.0Guile 2.2

G-Golf (Gnome: (Guile Object Library for)) is a library for developing modern applications in Guile Scheme. It comprises a direct binding to the GObject Introspection API and higher-level functionality for importing Gnome libraries and making GObject classes (and methods) available in Guile's object-oriented programming system, GOOPS.

License: LGPL 3+

g-wrap

Guile 2.2

G-Wrap is a tool and Guile library for generating function wrappers for inter-language calls. It currently only supports generating Guile wrappers for C functions. Given a definition of the types and prototypes for a given C interface, G-Wrap will automatically generate the C code that provides access to that interface and its types from the Scheme level.

License: LGPL 2.1+

gash

Guile 3.0

Gash is a POSIX-compatible shell written in Guile Scheme. It provides both the shell interface, as well as a Guile library for parsing shell scripts. Gash is designed to bootstrap Bash as part of the Guix bootstrap process.

License: GPL 3+

gash-utils

Guile 3.0

Gash-Utils provides Scheme implementations of many common POSIX utilities (there are about 40 of them, ranging in complexity from false to awk). The utilities are designed to be capable of bootstrapping their standard GNU counterparts. Underpinning these utilities are many Scheme interfaces for manipulating files and text.

License: GPL 3+

gdb

Guile 3.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+

gdb-multiarch

Guile 3.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+

geda-gaf

Guile 2.0

Gaf stands for “gschem and friends”. It is a subset of the entire tool suite grouped together under the gEDA name. gEDA/gaf is a collection of tools which currently includes: gschem, a schematic capture program; gnetlist, a netlist generation program; gsymcheck, a syntax checker for schematic symbols; gattrib, a spreadsheet programme that manipulates the properties of symbols of a schematic; libgeda, libraries for gschem gnetlist and gsymcheck; gsch2pcb, a tool to forward annotation from your schematic to layout using PCB; some minor utilities.

License: GPL 2+

gitile

Guile 3.0

Gitile is a Git forge written in Guile that lets you visualize your public Git repositories on a web interface.

License: AGPL 3+

gnubik

Guile 2.0

GNUbik is a puzzle game in which you must manipulate a cube to make each of its faces have a uniform color. The game is customizable, allowing you to set the size of the cube (the default is 3x3) or to change the colors. You may even apply photos to the faces instead of colors. The game is scriptable with Guile.

License: GPL 3+

gnucash

Guile 3.0

GnuCash is personal and professional financial-accounting software. It can be used to track bank accounts, stocks, income and expenses, based on the double-entry accounting practice. It includes support for QIF/OFX/HBCI import and transaction matching. It also automates several tasks, such as financial calculations or scheduled transactions.

To make the GnuCash documentation available, its doc output must be installed as well as Yelp, the Gnome help browser.

License: GPL 3+

gnunet-scheme

Guile 3.0

This package provides Guile modules for connecting to various GNUnet services. It also has infrastructure for writing new GNUnet services and connecting to them and can be used from multi-threaded environments. It is not to be confused with guile-gnunet -- guile-gnunet supports a different set of services.

The following services are supported:

  • NSE (network size estimation)

  • DHT (distributed hash table)

  • CADET (secure end-to-end communication between arbitrary peers)

License: AGPL 3+, GPL 3+, FDL 1.3+, LGPL 3+

gnurobots

Guile 1.8

GNU Robots is a game in which you program a robot to explore a world full of enemies that can hurt it, obstacles and food to be eaten. The goal of the game is to stay alive and collect prizes. The robot program conveniently may be written in a plain text file in the Scheme programming language.

License: GPL 3+

goblins

Guile 3.0

guile-goblins is the Guile version of Spritely Goblins, a transactional, distributed programming environment following object capability security designs. Goblins is a general toolkit, and also the core layer of Spritely's work to support healthy distributed networked communities. Goblins allows for cooperation between networked programs in a mutually suspicious network through OCapN, the Object Capability Network. This includes collaboration across runtimes; for instance, programs written in the Guile and Racket versions of Goblins are able to speak to each other.

License: ASL 2.0

graphviz

Guile 3.0

Graphviz is a graph visualization tool suite. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains.

License: EPL 1.0

graphviz-minimal

Guile 3.0

Graphviz is a graph visualization tool suite. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains.

License: EPL 1.0

guildhall

Guile 2.0

Guildhall is a package manager written for Guile Scheme. A guild is an association of independent craftspeople. A guildhall is where they meet. This Guildhall aims to make a virtual space for Guile wizards and journeyfolk to share code.

On a practical level, Guildhall lets you share Scheme modules and programs over the internet, and install code that has been shared by others. Guildhall can handle dependencies, so when a program requires several libraries, and each of those has further dependencies, all of the prerequisites for the program can be installed in one go.

License: GPL 3+

guile

Guile 3.0Guile 2.2

This is Emacs with a few settings that make working with Guile easier for people new to Emacs. Features include: CUA mode, Geiser, tool bar icons to evaluate Guile buffers, support for Guile's very own picture language, code completion, a simple mode line, etc.

License: GPL 3+

guile-aa-tree

Guile 3.0

This package provides an implementation of AA trees, a self-balancing binary tree data structure, for Guile. It ensure O(log n) worst case performance for core operations. The module provides non-mutating insert, delete, and search operations, with support for convenient nested tree operations.

License: GPL 3+

guile-algorithms.lajszczak

Guile 3.0

Guile port of racket-algorithms, a package containing useful algorithms borrowed from other programming languages).

License: GPL 3+

guile-ares-rs

Guile 3.0

Asynchronous Reliable Extensible Sleek RPC Server for Guile. It's based on nREPL protocol and can be used for programmable interactions with a running guile processes, for implementing REPLs, IDEs, test runners or other tools.

License: GPL 3+

guile-aspell

Guile 2.2

guile-aspell is a Guile Scheme library for comparing a string against a dictionary and suggesting spelling corrections.

License: GPL 3+

guile-avahi

Guile 3.0

This package provides bindings for Avahi. It allows programmers to use functionalities of the Avahi client library from Guile Scheme programs. Avahi itself is an implementation of multicast DNS (mDNS) and DNS Service Discovery (DNS-SD).

License: LGPL 3+

guile-aws

Guile 3.0

This package provides a DSL for a number of Amazon Web Services (AWS) APIs, including EFS, EC2, Route53, and more. Guile AWS uses the Guile compiler tower to generate the DSL from AWS JSON specifications.

License: GPL 3+

guile-bash

Guile 3.0Guile 2.0

Guile-Bash provides a shared library and set of Guile modules, allowing you to extend Bash in Scheme. Scheme interfaces allow you to access the following aspects of Bash:

  • aliases;

  • setting and getting Bash variables;

  • creating dynamic variables;

  • creating Bash functions with a Scheme implementation;

  • reader macro for output capturing;

  • reader macro for evaluating raw Bash commands.

To enable it, run:

enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm

and then run scm example.scm.

License: GPL 3+

guile-bzip2

Guile 3.0

Guile-bzip2 is a Guile wrapper for the libbzip2 library. It exposes an interface similar to other Guile compression libraries, like Guile-zlib.

License: GPL 3+

guile-cairo

Guile 3.0Guile 2.2

Guile-Cairo wraps the Cairo graphics library for Guile Scheme. Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API stable, providing a firm base on which to do graphics work. Finally, and importantly, it is pleasant to use. You get a powerful and well-maintained graphics library with all of the benefits of Scheme: memory management, exceptions, macros, and a dynamic programming environment.

License: LGPL 3+

guile-cbor

Guile 3.0

The Concise Binary Object Representation (CBOR), as specified by RFC 8949, is a binary data serialization format. CBOR is similar to JSON but serializes to binary which is smaller and faster to generate and parse. This package provides a Guile implementation of CBOR.

License: GPL 3+

guile-charting

Guile 3.0Guile 2.2

Guile-Charting is a Guile Scheme library to create bar charts and graphs using the Cairo drawing library.

License: LGPL 2.1+

guile-colorized

Guile 3.0Guile 2.2

Guile-colorized provides you with a colorized REPL for GNU Guile.

License: GPL 3+

guile-commonmark

Guile 3.0Guile 2.2Guile 2.0

guile-commonmark is a library for parsing CommonMark, a fully specified variant of Markdown. The library is written in Guile Scheme and is designed to transform a CommonMark document to SXML. guile-commonmark tries to closely follow the CommonMark spec, the main difference is no support for parsing block and inline level HTML.

License: LGPL 3+

guile-config

Guile 3.0Guile 2.2

Guile Config is a library providing a declarative approach to application configuration specification. The library provides clean configuration declaration forms, and processors that take care of: configuration file creation; configuration file parsing; command-line parameter parsing using getopt-long; basic GNU command-line parameter generation (--help, --usage, --version); automatic output generation for the above command-line parameters.

License: GPL 3+

guile-curl

Guile 3.0Guile 2.2

guile-curl is a project that has procedures that allow Guile to do client-side URL transfers, like requesting documents from HTTP or FTP servers. It is based on the curl library.

License: GPL 3+

guile-cv

Guile 2.2

Guile-CV is a Computer Vision functional programming library for the Guile Scheme language. It is based on Vigra (Vision with Generic Algorithms), a C++ image processing and analysis library. Guile-CV contains bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is enriched with pure Guile Scheme algorithms, all accessible through a nice, clean and easy to use high level API.

License: GPL 3+

guile-daemon

Guile 3.0

Guile-Daemon is a small Guile program that loads your initial configuration file, and then reads and evaluates Guile expressions that you send to a FIFO file.

License: GPL 3+

guile-dbi

Guile 2.2

guile-dbi is a library for Guile that provides a convenient interface to SQL databases. This package implements the interface for PostgreSQL.

License: GPL 2+

guile-debbugs

Guile 3.0

This package provides a Guile library to communicate with a Debbugs bug tracker's SOAP service, such as https://bugs.gnu.org.

License: GPL 3+

guile-dns

Guile 3.0

guile-dns is a DNS library written in pure Guile Scheme.

License: GPL 3+

guile-drmaa

Guile 3.0

This project provides Guile bindings to the DRMAA library version 1. DRMAA is a resource management library implemented by HPC cluster schedulers.

License: GPL 3+

guile-dsv

Guile 3.0Guile 2.2

Guile-DSV is a GNU Guile module for working with the delimiter-separated values (DSV) data format. Guile-DSV supports the Unix-style DSV format and RFC 4180 style format. Also Guile-DSV includes a console program named dsv that allows to view and process DSV data, including such operations as delimiter change, conversion from one DSV standard to another and printing the data as pseudographics tables.

License: GPL 3+

guile-email.systemreboot

Guile 3.0Guile 2.2

guile-email is a collection of email utilities implemented in pure guile. It supports parsing MIME (Multipurpose Internet Mail Extensions) compliant email messages and reading emails from the mbox format.

License: AGPL 3+

guile-eris

Guile 3.0

Guile-ERIS is a Guile implementation of the Encoding for Robust Immutable Storage (ERIS). ERIS allows arbitrary content to be encoded into uniformly sized, encrypted blocks that can be reassembled using a short read-capability.

License: GPL 3+

guile-ffi-cblas

Guile 3.0

This package provides Guile FFI bindings for CBLAS, the library of linear algebra subprograms.

To use the bindings, import (ffi cblas). CBLAS will be loaded from the default dynamic library path. There are up to three bindings for each function: raw, typed, and functional.

License: LGPL 3+

guile-ffi-fftw

Guile 2.2

This is a minimal set of Guile FFI bindings for the FFTW library's ‘guru interface’. It provides two functions: fftw-dft! rank sign in out and fftw-dft rank sign in. These bindings being minimal, there is no support for computing & reusing plans, or split r/i transforms, or anything other than straight complex DFTs.

License: LGPL 3+

guile-file-names

Guile 2.2

The (file-names) module provides tools for manipulating file names. The module was built on the idea that doing anything more than a non-trivial modification of a file name string is a pain (making sure all slashes are present and accounted for, resolving . and .., etc). Inevitably, you have to break the string up into chunks and operate on that list of components. This module takes care of that for you.

License: LGPL 3+

guile-filesystem

Guile 3.0Guile 2.2

guile-filesystem provides a set of utility functions, that augment Guile's support for handling files and their names.

License: LGPL 3+

guile-fslib

Guile 3.0

This package contains helper functions for working with file system locations.

License: AGPL 3+

guile-gcrypt

Guile 3.0Guile 2.2Guile 2.0

Guile-Gcrypt provides a Guile interface to a subset of the GNU Libgcrypt crytographic library. It provides modules for cryptographic hash functions, message authentication codes (MAC), public-key cryptography, strong randomness, and more. It is implemented using the foreign function interface (FFI) of Guile.

License: GPL 3+

guile-gdbm

Guile 3.0Guile 2.2Guile 2.0

Guile bindings to the GDBM key-value storage system, using Guile's foreign function interface.

License: GPL 3+

guile-gemini

Guile 3.0

Guile Gemini is an implementation of the Gemini protocol in Guile Scheme, providing both client and server functionality. It uses GnuTLS to meet Gemini's TLS requirements, and Guile Fibers for concurrency.

License: LGPL 3+

guile-gi

Guile 3.0Guile 2.2

Guile-GI is a library for Guile that allows using GObject-based libraries, such as GTK+3. Its README comes with the disclaimer: This is pre-alpha code.

License: GPL 3+

guile-git

Guile 3.0Guile 2.2Guile 2.0

This package provides Guile bindings to libgit2, a library to manipulate repositories of the Git version control system.

License: GPL 3+

guile-gitlab

Guile 2.2

This package provides bindings to the GitLab Community Edition REST API as well as the gitlab-cli command line tool for interacting with a GitLab instance.

License: GPL 3

guile-gnome

Guile 2.2

Includes guile-clutter, guile-gnome-gstreamer, guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.

License: GPL 2+

guile-hall

Guile 3.0

Hall is a command-line application and a set of Guile libraries that allow you to quickly create and publish Guile projects. It allows you to transparently support the GNU build system, manage a project hierarchy & provides tight coupling to Guix.

License: GPL 3+

guile-ics

Guile 3.0Guile 2.2

Guile-ICS is an iCalendar (RFC5545) and vCard (RFC6350) format parser library written in pure Scheme. The library can be used to read and write iCalendar/vCadr data and convert the data from/to various formats.

The library is shipped with documentation in Info format and usage examples.

License: GPL 3+

guile-imanifest

Guile 3.0

This package provides functions to generate Guix manifests interactively. It works by scanning an alist of package categories, to ask the user which package sets would they like to install from it.

License: GPL 3+

guile-ini

Guile 3.0

guile-ini is a GNU Guile library for working with the INI format. This library provides API for reading and writing INI data.

License: GPL 3

guile-irc

Guile 3.0

This package provides a Guile library for Internet Relay Chat (IRC).

License: LGPL 2.1+

guile-jpeg

Guile 2.2

Guile-JPEG is a Scheme library to parse JPEG image files and to perform geometrical transforms on JPEG images.

License: GPL 3+

guile-json

Guile 3.0Guile 2.2

Guile-JSON supports parsing and building JSON documents according to the specification. These are the main features:

  • Strictly complies to specification.

  • Build JSON documents programmatically via macros.

  • Unicode support for strings.

  • Allows JSON pretty printing.

License: GPL 3+

guile-jsonld

Guile 3.0

Guile JsonLD is an implementation of the JsonLD (Json for Linked Data) API defined by the W3C for GNU Guile. It allows you to express links between data, in a way that is very similar to WikiData or RDF for instance. An object can have relations (in the form of an IRI) that relates it to one or more objects or strings, represented by a Json object or an IRI.

License: GPL 3+

guile-jtd

Guile 3.0

The (jtd) module for Guile provides a procedure jump-to-debugger for escaping to the Guile REPL for the purpose of debugging code.

License: LGPL 2.1+

guile-jwt

Guile 3.0

guile-jwt is a JSON Web Token module for Guile. JSON Web Tokens are an open, industry standard (RFC 7519) method for representing claims securely between two parties. guile-jwt allows you to decode, verify and generate JWT. Supported algorithms: HS256, HS384, HS512.

License: GPL 3+

guile-lens

Guile 3.0Guile 2.2

Guile-Lens is a library implementing lenses in Guile. The library is currently a re-implementation of the lentes library for Clojure. Lenses provide composable procedures, which can be used to focus, apply functions over, or update a value in arbitrary data structures.

License: GPL 3+

guile-lib

Guile 3.0Guile 2.2Guile 2.0

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". It provides the following modules:

  • (apicheck) Describe and verify library programming interfaces.

  • (config load) Loading configuration files.

  • (container async-queue) A thread-safe message queue.

  • (container nodal-tree) A tree consisting of nodes with attributes.

  • (container delay-tree) A nodal tree with lazily evaluated fields.

  • (debugging assert) Helpful assert macro.

  • (debugging time) A simple macro to time the execution of an expression.

  • (graph topological-sort) Routines to perform topological sorts.

  • (htmlprag) Neil Van Dyke's permissive ("pragmatic") HTML parser.

  • (io string) SLIB's IO routines dealing with strings.

  • (logging logger) A flexible logging system.

  • (logging port-log) A logger that outputs to a port.

  • (logging rotating-log) A logger that rotates its output files.

  • (match-bind) Nifty and concise regular expression routines.

  • (math minima) A golden-section minimum finder.

  • (math primes) Functions related to prime numbers and factorization.

  • (os process) Spawning processes and capturing their output.

  • (scheme documentation) Macros to define different kinds of variables with documentation.

  • (scheme kwargs) Defining functions with flexible keyword arguments.

  • (search basic) Classic search functions.

  • (string completion) Building blocks for tab completion.

  • (string soundex) The SOUNDEX string categorization algorithm.

  • (string transform) Beyond SRFI-13.

  • (string wrap) A versatile string formatter.

  • (term ansi-color) Generate ANSI color escape sequences.

  • (unit-test) A JUnit-style unit testing framework.

License: GPL 3+

guile-libyaml

Guile 3.0

This package provides a simple yaml module for Guile using the ffi-helper from nyacc.

License: LGPL 3+

guile-lmdb

Guile 3.0

This package provides a Scheme wrapper around liblmdb.so. Most names are the same as LMDB ones, except for prefix absence. Several conveniences are added on top:

  • call-with-env-and-txn and call-with-cursor wrappers.

  • for-cursor procedure for cursor iteration.

  • val and stat types.

  • Error signaling instead of integer return values.

License: GPL 3+

guile-lzlib

Guile 3.0Guile 2.2

This package provides Guile bindings for lzlib, a C library for in-memory LZMA compression and decompression. The bindings are written in pure Scheme by using Guile's foreign function interface.

License: GPL 3+

guile-lzma

Guile 3.0

Guile-LZMA is a Guile wrapper for the liblzma (XZ) library. It exposes an interface similar to other Guile compression libraries, like Guile-zlib.

License: GPL 3+

guile-mastodon

Guile 3.0

This package provides Guile modules to access the REST API of Mastodon, a federated microblogging service.

License: GPL 3+

guile-ncurses

Guile 3.0Guile 2.2

guile-ncurses provides Guile language bindings for the ncurses library.

License: LGPL 3+

guile-netlink

Guile 3.0

Guile Netlink is a GNU Guile library providing an implementation of the netlink protocol.

It provides a generic library for writing implementations of a netlink protocol, a low-level rtnetlink implementation that uses that library and a high-level API for network management that uses rtnetlink.

License: GPL 3+

guile-newra

Guile 3.0

guile-newra (newra) wants to replace the current (3.0) Guile array system, which is almost entirely implemented in C. The new implementation should be at least as fast.

License: GPL 3+

guile-newt

Guile 3.0

This package provides bindings for Newt, a programming library for color text mode, widget based user interfaces. The bindings are written in pure Scheme by using Guile’s foreign function interface.

License: GPL 3+

guile-openai

Guile 3.0

Guile OpenAI is an implementation of the OpenAI API in Guile Scheme, providing a convenient interface for interactive programming with their AI models.

License: AGPL 3+

guile-opengl

Guile 3.0Guile 2.2

Guile-OpenGL is a library for Guile that provides bindings to the OpenGL graphics API.

License: LGPL 3+

guile-parted

Guile 3.0

This package provides bindings for GNU Parted library, a C library allowing disk partition tables creation and manipulation. The bindings are written in pure Scheme by using Guile's foreign function interface.

License: GPL 3+

guile-persist

Guile 3.0

This is a serialization library for serializing objects like classes and objects, closures and structs. This currently does not support serializing continuations or delimited continuations.

License: LGPL 2.0+

guile-pg

Guile 2.0

Guile-PG is a collection of modules for Guile allowing access to the PostgreSQL RDBMS from Scheme programs.

This has been tested against PostgreSQL 10 through 13, but currently only works with Guile 1.4.x to 2.0.x.

License: GPL 3+

guile-picture-language

Guile 3.0Guile 2.2

This package provides a simple SVG-based picture language for Guile. The picture values can directly be displayed in Geiser.

License: LGPL 3+, GPL 3+

guile-pipe

Guile 3.0

This package provides macros for functional chaining in Guile, similar to UNIX pipes (|), Clojure's threading macros (-> and ->>).

License: GPL 3+

guile-plotutils

Guile 3.0

Guile-Plotutils is a Guile binding to the venerable GNU Plotutils plotting and graphing library. If you want to make graphs that look like you went to university in the 1990s, this is the library for you.

License: GPL 3+

guile-png

Guile 3.0

guile-png is a GNU Guile library for working with the PNG format. This library provides API for reading and writing PNG data, as well as some graphic primitives and basic image processing filters.

License: GPL 3+

guile-present

Guile 3.0Guile 2.2

Guile-Present defines a declarative vocabulary for presentations, together with tools to render presentation documents as SVG or PDF. Guile-Present can be used to make presentations programmatically, but also includes a tools to generate PDF presentations out of Org mode and Texinfo documents.

License: LGPL 3+

guile-proba

Guile 3.0

This software is a set of testing tools for GNU Guile projects with SRFI 64-based test suites. It comes with a command-line interface to run test collections, and a library that includes a test runner and helpers for writing tests.

License: Public Domain

guile-quickcheck

Guile 3.0

Guile-Quickcheck is a library for random testing of program properties inspired by ghc-quickcheck. You can use it to express properties, which functions should satisfy, as Scheme code and then check whether they hold in a large number of randomly generated test cases.

License: GPL 3+

guile-raw-strings

Guile 3.0

This package provides A Guile reader extension for `raw strings', it lets you write verbatim strings without having to escape double quotes.

License: Public Domain

guile-rdf

Guile 3.0

Guile RDF is an implementation of the RDF (Resource Description Framework) format defined by the W3C for GNU Guile. RDF structures include triples (facts with a subject, a predicate and an object), graphs which are sets of triples, and datasets, which are collections of graphs.

RDF specifications include the specification of concrete syntaxes and of operations on graphs. This library implements some basic functionalities, such as parsing and producing turtle and nquads syntax, as well as manipulating graphs and datasets.

License: GPL 3+

guile-reader

Guile 3.0Guile 2.2

Guile-Reader is a simple framework for building readers for GNU Guile.

The idea is to make it easy to build procedures that extend Guile’s read procedure. Readers supporting various syntax variants can easily be written, possibly by re-using existing “token readers” of a standard Scheme readers. For example, it is used to implement Skribilo’s R5RS-derived document syntax.

Guile-Reader’s approach is similar to Common Lisp’s “read table”, but hopefully more powerful and flexible (for instance, one may instantiate as many readers as needed).

License: GPL 3+

guile-redis

Guile 3.0Guile 2.2Guile 2.0

Guile-redis provides a Scheme interface to the Redis key-value cache and store.

License: LGPL 3+

guile-rsvg

Guile 3.0Guile 2.2

Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG images onto Cairo surfaces.

License: LGPL 2.1+

guile-sdl

Guile 2.2

Guile-SDL is a set of bindings to the Simple DirectMedia Layer (SDL). With them, Guile programmers can have easy access to graphics, sound and device input (keyboards, joysticks, mice, etc.).

License: GPL 3+

guile-sdl2

Guile 3.0Guile 2.2

Guile-SDL2 provides Guile Scheme bindings for the SDL2 C shared library. The bindings are written in pure Scheme using Guile's foreign function interface.

License: LGPL 3+

guile-semver

Guile 3.0Guile 2.2

This Guile library provides tools for reading, comparing, and writing Semantic Versions. It also includes ranges in the style of the Node Package Manager (NPM).

License: GPL 3+

guile-shapefile

Guile 3.0

Guile Shapefile is a Guile library for reading shapefiles.

License: Expat

guile-simple-iterators

Guile 3.0

This is a collection of iteration macros for Guile. They are inspired by racket's family of iterators. Specifically, the following iterators are available:

  • for

  • for/map

  • for/c

  • for/fold

  • for/fold-right

  • for/folder

  • folder

License: ASL 2.0

guile-simple-zmq

Guile 3.0Guile 2.2

This package provides a Guile programming interface to the ZeroMQ messaging library.

License: GPL 3+

guile-sjson

Guile 3.0Guile 2.2

guile-sjson is a json reader/writer for Guile. It has a nice, simple s-expression based syntax.

License: LGPL 3+

guile-smc

Guile 3.0Guile 2.2

Guile-SMC is a state machine compiler that allows users to describe finite state machines (FSMs) in Scheme in terms of transition tables. It is capable to generate such transition tables from a PlantUML state diagrams.

A transition table can be verified and checked for dead-ends and infinite loops. Also Guile-SMC FSMs gather statistics when they run.

Guile-SMC comes with a Scheme program called smc -- a state machine compiler itself. It produces a Scheme code for an FSM from the PlantUML format. This tool is meant to be called on a PlantUML file when a program with a FSM is being built (for example, from a Makefile.)

License: GPL 3

guile-sodium

Guile 3.0

This package provides Guile bindings to the libsodium cryptographic library which provides core cryptographic primitives needed to build higher-level tools.

License: GPL 3+

guile-sparql

Guile 3.0

This package provides the functionality to query a SPARQL endpoint. Additionally, it provides an interface to write SPARQL queries using S-expressions.

License: GPL 3+

guile-sqlite3

Guile 3.0Guile 2.2Guile 2.0

This package provides Guile bindings to the SQLite database system.

License: GPL 3+

guile-squee

Guile 3.0Guile 2.2

squee is a Guile library for connecting to PostgreSQL databases using Guile's foreign function interface.

License: LGPL 3+

guile-srfi-128

Guile 3.0

This package provides an implementation of SRFI 128 for Guile. SRFI 128 defines comparators, which bundles a test type predicate, an equality predicate, an ordering predicate and a hash function into a single Scheme object. This can be used in the implementation of data structures. This package re-uses the SRFI sample implementation.

License: LGPL 3+, ISC

guile-srfi-145

Guile 3.0

This package provides SRFI-145. This provides the means to denote the invalidity of certain code paths in a Scheme program.

License: GPL 3+

guile-srfi-146

Guile 3.0

This package provides an implementation of SRFI 146 for Guile. SRFI 146 defines datastructures that implement mappings (finite sets of associations consiting of a key and a value). Two types of mappings are defined: One using a comparator to define an order on the keys and another using a hash function on the keys. The datastructures and procedures are by default purely-functional. This package re-uses the SRFI sample implementation that is based on red-black trees and Hash Array Mapped Trie (HAMT).

License: LGPL 3+, ISC

guile-srfi-158

Guile 3.0

This package provides an implementation of SRFI 158 for Guile. SRFI 158 defines utility procedures that create, transform, and consume generators. It also defines procedures that return accumulators. It is implemented by wrapping the sample implementation in a thin Guile compatibility layer.

License: GPL 3+

guile-srfi-159

Guile 2.2

The (srfi-159) module and its sub-modules implement the formatting combinators specified by SRFI-159. These are more expressive and flexible than the traditional format procedure.

License: Modified BSD

guile-srfi-89

Guile 3.0

This package provides SRFI-89 optional positional and named parameters, which define* and lambda* special forms

License: GPL 3+

guile-ssh

Guile 3.0Guile 2.2

Guile-SSH is a library that provides access to the SSH protocol for programs written in GNU Guile interpreter. It is a wrapper to the underlying libssh library.

License: GPL 3+

guile-syntax-highlight

Guile 3.0Guile 2.2

Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various programming languages into a simple s-expression that can be converted to HTML (via SXML) or any other format for rendering.

License: LGPL 3+

guile-tap

Guile 3.0

guile-tap is a library for GNU Guile that implements a framework for specifying test cases that emit output that adheres to the Test Anything Protocol (TAP). It comes with an experimental harness (tap-harness).

License: FreeBSD

guile-termios

Guile 3.0

To query and change settings of serial devices on POSIX systems, the termios API is used. GNU Guile doesn't have an interface for that built in. This module implements this interface by use of Guile's dynamic FFI.

License: FreeBSD

guile-ts

Guile 3.0

This package provides Guile bindings to the Tree-sitter parsing library.

License: GPL 3+

guile-udev

Guile 3.0

Guile-Udev provides GNU Guile bindings to libudev.

License: GPL 3+

guile-websocket

Guile 3.0

Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.

License: LGPL 3+

guile-webutils

Guile 3.0Guile 2.2

This package provides tooling to write web applications in Guile, such as signed sessions, multipart message support, etc.

License: GPL 3+

guile-wiredtiger

Guile 2.2

This package provides Guile bindings to the WiredTiger ``NoSQL'' database.

License: GPL 3+

guile-wm

Guile 2.2

Guile-WM is a simple window manager that's completely customizable—you have total control of what it does by choosing which modules to include. Included with it are a few modules that provide basic TinyWM-like window management, some window record-keeping, multi-monitor support, and emacs-like keymaps and minibuffer. At this point, it's just enough to get you started.

License: GPL 3+

guile-xapian

Guile 3.0Guile 2.2

guile-xapian provides Guile bindings for Xapian, a search engine library. Xapian is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It has built-in support for several families of weighting models and also supports a rich set of boolean query operators.

License: GPL 2+

guile-xcb

Guile 2.2

Guile-XCB implements the XCB protocol and provides all the tools necessary to write X client code in Guile Scheme without any external dependencies.

License: GPL 3+

guile-xosd

Guile 3.0

Guile-XOSD provides Guile bindings for libxosd, the X On Screen Display library.

License: GPL 3+

guile-yamlpp

Guile 3.0

A module for GNU Guile to read and write YAML files. It works using bindings to the yaml-cpp C++ library.

License: GPL 3+

guile-zlib

Guile 3.0Guile 2.2

This package provides Guile bindings for zlib, a lossless data-compression library. The bindings are written in pure Scheme by using Guile's foreign function interface.

License: GPL 3+

guile-zstd

Guile 3.0

This package provides a GNU Guile interface to the zstd (``zstandard'') compression library.

License: GPL 3+

guilescript

Guile 3.0

GuileScript is a toy compiler that aims to compile Guile to JavaScript. It currently does not do much, but it might in the future.

License: GPL 3+

guix

Guile 3.0Guile 2.0

This package provides Guile bindings to the client libraries of various GNUnet services, including the identity and file sharing services.

License: GPL 3+

guix-build-coordinator

Guile 3.0

The Guix Build Coordinator helps with performing lots of builds across potentially many machines, and with doing something with the results and outputs of those builds.

License: GPL 3+

guix-build-coordinator-agent-only

Guile 3.0

The Guix Build Coordinator helps with performing lots of builds across potentially many machines, and with doing something with the results and outputs of those builds.

This package just includes the agent component.

License: GPL 3+

guix-data-service

Guile 3.0

The Guix Data Service stores data about GNU Guix, and provides this through a web interface. It supports listening to the guix-commits mailing list to find out about new revisions, then loads the data from these in to a PostgreSQL database.

License: AGPL 3+

guix-jupyter

Guile 3.0

Guix-Jupyter is a Jupyter kernel. It allows you to annotate notebooks with information about their software dependencies, such that code is executed in the right software environment. Guix-Jupyter spawns the actual kernels such as python-ipykernel on behalf of the notebook user and runs them in an isolated environment, in separate namespaces.

License: GPL 3+

guix-modules

Guile 3.0

Guix-Modules is an extension of Guix that provides a new guix module command. The guix module create sub-command creates environment modules, allowing you to manipulate software environments with the module command commonly found on HPC clusters.

License: GPL 3+

gwl

Guile 3.0

The Guix Workflow Language (GWL) provides an extension to GNU Guix's declarative language for package management to automate the execution of programs in scientific workflows. The GWL can use process engines to integrate with various computing environments.

License: GPL 3+, AGPL 3+, SIL OFL 1.1

gwl-next

Guile 3.0

The Guix Workflow Language (GWL) provides an extension to GNU Guix's declarative language for package management to automate the execution of programs in scientific workflows. The GWL can use process engines to integrate with various computing environments.

License: GPL 3+, AGPL 3+, SIL OFL 1.1

gzochi

Guile 3.0

gzochi is a framework for developing massively multiplayer online games. A server container provides services to deployed games, which are written in Guile Scheme, that abstract and simplify some of the most challenging and error-prone aspects of online game development: Concurrency, data persistence, and network communications. A very thin client library can be embedded to provide connectivity for client applications written in any language.

License: GPL 3+

h-client

Guile 3.0

The h-node project (https://www.h-node.org) aims to build a database of hardware that works with fully free operating systems. h-client is a GTK+ graphical client that is able to retrieves information on the hardware inside the computer it's running on, and on peripherals connected to it, and helps you submit that information to the h-node project along with whether the hardware works with a fully free operating system or not.

License: GPL 3+

hashing

Guile 3.0Guile 2.2

The (hashing <*ENTITY*>hellip) modules implement cryptographic hash functions in pure R6RS Scheme: CRC, HMAC, MD5, SHA-1, and SHA-2 (SHA-256, SHA-512).

License: Expat

haunt

Guile 3.0Guile 2.2

Haunt is a static site generator written in Guile Scheme. Haunt features a functional build system and an extensible interface for reading articles in any format.

License: GPL 3+

hoot

Guile 3.0

Guile Hoot is a WebAssembly compiler backend for GNU Guile and standalone WASM toolchain.

License: ASL 2.0, LGPL 3+

hpcguix-web

Guile 3.0

Hpcguix-web provides a web interface to the list of packages provided by Guix. The list of packages is searchable and provides instructions on how to use Guix in a shared HPC environment.

License: AGPL 3+

hw-probe

Guile 3.0

Hardware Probe is a tool to probe for hardware, check its operability and find drivers.

License: LGPL 2.1+, Original BSD

inspekt3d

Guile 3.0

Inspekt3d is a lightweight 3D viewer for Libfive written in Guile Scheme. The viewer can be used interactively with a REPL (for example Geiser in Emacs).

License: GPL 3+

irregex

Guile 3.0Guile 2.2Guile 2.0

Irregex is an s-expression based alternative to your classic string-based regular expressions. It implements SRFI 115 and is deeply inspired by the SCSH regular expression system.

License: Modified BSD

jupyter-guile-kernel

Guile 3.0

This package provides a Guile 2.x kernel for the Jupyter Notebook. It allows users to interact with the Guile REPL through Jupyter.

License: GPL 3+

kaiju

Guile 3.0

Kaiju is a program for sensitive taxonomic classification of high-throughput sequencing reads from metagenomic whole genome sequencing experiments.

License: GPL 3+

kolam.systemreboot

Guile 3.0

guile-kolam is a GraphQL implementation for Scheme. kolam features a parser to parse and serialize GraphQL documents, a type system to create GraphQL schemas, an execution engine to execute GraphQL queries, and a HTTP handler to implement a HTTP GraphQL endpoint.

License: AGPL 3+

laesare

Guile 3.0

This is an R6RS Scheme library that provides a reader with some extra features not found in the standard read procedure such as a compatible mode with support for other RnRS standards and a tolerant mode that continues on errors.

License: Expat

lepton-eda

Guile 3.0

Lepton EDA ia an electronic design automation (EDA) tool set forked from gEDA/gaf in late 2016. EDA tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Lepton EDA includes tools for schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout, and many other features.

License: GPL 2+

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, distribution among several sites, selective sharing of stored data, adaptive compression, and more. The library itself implements storage techniques such as content-addressable storage, content hash keys, Merkle trees, similarity detection, and lossless compression.

License: GPL 3+

libctl

Guile 2.2

Libctl is a Guile-based library implementing flexible control files for scientific simulations.

License: GPL 2+

libfive

Guile 3.0

Libfive is a tool for programmatic computer-aided design (CAD). In libfive, solid models are defined as Scheme or Python scripts, and there are no opaque function calls into the geometry kernel: everything is visible to the user. Even fundamental, primitive shapes are represented as code in the user-level language.

License: MPL 2.0, GPL 2+

libjami

Guile 3.0

This package provides a library and daemon implementing the Jami core functionality. Jami is a secure and distributed voice, video and chat communication platform that requires no centralized server and leaves the power of privacy in the hands of the user. It supports the SIP and IAX protocols, as well as decentralized calling using P2P-DHT. The "bin" output contains the D-Bus daemon (jamid) as well as the Jami D-Bus service definitions.

License: GPL 3+

libpatch

Guile 3.0

libpatch is a lightweight C library that can be used by tracers, debuggers and other tools for insertion of probes in a program at runtime. It has many strategies to minimize probe overhead and maximize possible coverage.

License: LGPL 2.1, Expat, GPL 3+

lightdm-gtk-greeter

Guile 3.0

This package provides a LightDM greeter implementation using GTK+, lets you select a desktop session and log in to it.

License: GPL 3+

lilypond

Guile 3.0

GNU LilyPond is a music typesetter, which produces high-quality sheet music. Music is input in a text file containing control sequences which are interpreted by LilyPond to produce the final document. It is extendable with Guile.

License: GPL 3+

liquidwar6

Guile 2.0

Liquid War 6 is a unique multiplayer war game. Your army is a blob of liquid and you have to try and eat your opponents. Rules are very simple yet original, they have been invented by Thomas Colcombet.

License: GPL 3+

lokke

Guile 3.0

Lokke intends to provide a full dialect of Clojure for Guile. It also consists of a set of Guile modules providing some of Clojure's functionality in two different guises.

License: LGPL 2.1+, EPL 1.0

machine-code

Guile 3.0

This project is about the development of tools that relate to machine code and object formats; for all architectures. Here you'll find libraries for working with binary code: assembly, disassembly, instruction tables, object formats and related areas.

License: Expat

mailutils

Guile 3.0Guile 2.2

GNU Mailutils is a collection of programs for managing, viewing and processing electronic mail. It contains both utilities and server daemons and all operate in a protocol-agnostic way. The underlying libraries are also available, simplifying the addition of mail capabilities to new software. GNU Mailutils provides the following commands:

  • dotlock

  • decodemail

  • frm

  • from

  • guimb

  • mail

  • mailutils

  • mailutils-config

  • messages

  • mimeview

  • movemail

  • popauth

  • putmail

  • readmsg

  • sieve

License: GPL 3+, LGPL 3+

make

Guile 3.0

Make is a program that is used to control the production of executables or other files from their source files. The process is controlled from a Makefile, in which the developer specifies how each file is generated from its source. It has powerful dependency resolution and the ability to determine when files have to be regenerated after their sources change. GNU make offers many powerful extensions over the standard utility.

License: GPL 3+

mcron

Guile 3.0

GNU Mcron is a complete replacement for Vixie cron. It is used to run tasks on a schedule, such as every hour or every Monday. Mcron is written in Guile, so its configuration can be written in Scheme; the original cron format is also supported.

License: GPL 3+

meep

Guile 2.2

Meep is a finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagnetic systems.

License: GPL 2+

mes

Guile 3.0

GNU Mes--Maxwell Equations of Software--brings the Reduced Binary Seed bootstrap to Guix and aims to help create full source bootstrapping for GNU/Linux distributions. It consists of a mutual self-hosting Scheme interpreter in C and a Nyacc-based C compiler in Scheme and is compatible with Guile.

License: GPL 3+

miniadapton

Guile 2.2

This package provides a complete Scheme implementation of miniAdapton, which implements the core functionality of the Adapton system for incremental computation (also known as self-adjusting computation). Like Adapton, miniAdapton allows programmers to safely combine mutation and memoization. miniAdapton is built on top of an even simpler system, microAdapton. Both miniAdapton and microAdapton are designed to be easy to understand, extend, and port to host languages other than Scheme.

License: Expat

minikanren

Guile 3.0Guile 2.2Guile 2.0

MiniKanren is a relational programming extension to the Scheme programming Language, written as a smaller version of Kanren suitable for pedagogical purposes. It is featured in the book, The Reasoned Schemer, written by Dan Friedman, William Byrd, and Oleg Kiselyov.

This is Ian Price's r6rs packaged version of miniKanren, which deviates slightly from miniKanren mainline.

See http://minikanren.org/ for more on miniKanren generally.

License: Expat

mpb

Guile 2.2

MIT Photonic-Bands (MPB) computes definite-frequency eigenstates (harmonic modes) of Maxwell's equations in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods.

License: GPL 2+

mu

Guile 3.0

Mu is a tool for dealing with e-mail messages stored in the Maildir format. Mu's purpose in life is to help you to quickly find the messages you need; in addition, it allows you to view messages, extract attachments, create new maildirs, and so on.

License: GPL 3+

mumi

Guile 3.0

Mumi is a Debbugs web interface.

License: AGPL 3+

nanopolish

Guile 3.0

This package analyses the Oxford Nanopore sequencing data at signal-level. Nanopolish can calculate an improved consensus sequence for a draft genome assembly, detect base modifications, call SNPs (Single nucleotide polymorphisms) and indels with respect to a reference genome and more.

License: Expat

nar-herder

Guile 3.0

The Nar Herder is a utility for managing a collection of nars (normalized archives, in the context of Guix) along with the corresponding narinfo files which contain some signed metadata.

It can assist in serving a collection of nars, moving them between machines, or mirroring an existing collection of nars.

It's currently a working prototype, many designed features aren't implemented, and the error handling is very rough.

License: AGPL 3+

nlopt

Guile 3.0

NLopt is a library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.

License: LGPL 2.1+

nomad

Guile 2.2

Nomad is a Emacs-like web browser that consists of a modular feature-set, fully programmable in Guile Scheme.

License: GPL 3+

nyacc

Guile 3.0Guile 2.2

NYACC is an LALR(1) parser generator implemented in Guile. The syntax and nomenclature should be considered not stable. It comes with extensive examples, including parsers for the Javascript and C99 languages.

License: GPL 3+, LGPL 3+

ocaml-guile

Guile 3.0

The OCaml guile library provides high-level OCaml bindings to GNU Guile 3.0, supporting easy interop between OCaml and GNU Guile Scheme.

License: GPL 3+

opencog

Guile 2.2

OpenCog is a framework for developing AI systems, especially appropriate for integrative multi-algorithm systems, and artificial general intelligence systems. It currently contains a functional core framework, and a number of cognitive agents at varying levels of completion, some already displaying interesting and useful functionalities alone and in combination.

License: AGPL 3

packrat

Guile 3.0

This is an R6RS Scheme adaptation of the packrat parsing. Packrat parsing is a memoizing, backtracking, recursive-descent parsing technique that runs in time and space linear in the size of the input text.

License: Expat

pbuilder

Guile 3.0

pbuilder is a personal package builder for Debian packages.

  • pbuilder constructs a chroot system, and builds a package inside the chroot. It is an ideal system to use to check that a package has correct build-dependencies. It uses apt extensively, and a local mirror, or a fast connection to a Debian mirror is ideal, but not necessary.

  • pbuilder create uses debootstrap to create a chroot image.

  • pbuilder update updates the image to the current state of testing/unstable/whatever.

  • pbuilder build takes a *.dsc file and builds a binary in the chroot image.

  • pdebuild is a wrapper for Debian Developers, to allow running pbuilder just like debuild, as a normal user.

License: GPL 2+

pfds

Guile 3.0Guile 2.2

This package provides purely functional data structures written in R6RS Scheme and compiled for Guile. It has been tested with Racket, Guile 2, Vicare Scheme and IronScheme. Right now it contains:

  • queues

  • deques

  • bbtrees

  • sets

  • dlists

  • priority search queues (PSQs)

  • finger trees

  • sequences

  • heaps

  • hash array mapped tries (HAMTs).

License: Modified BSD

piglit

Guile 3.0

Piglit is a collection of automated tests for OpenGL and OpenCL implementations.

License: Expat, Modified BSD, GPL 2+, GPL 3+

pinentry-rofi

Guile 3.0

Pinentry-rofi is a simple graphical user interface for passphrase or PIN when required by gpg or other software. It is using the Rofi application launcher as the user interface. Which makes it combined with rofi-pass a good front end for password-store.

License: GPL 3+

piper

Guile 3.0

Piper is a GTK+ application for configuring gaming mice with onboard configuration for key bindings via libratbag. Piper requires a ratbagd daemon running with root privileges. It can be run manually as root, but is preferably configured as a DBus service that can launch on demand. This can be configured by enabling the following service, provided there is a DBus service present:

(simple-service 'ratbagd dbus-root-service-type (list libratbag))

License: GPL 2

prinseq

Guile 3.0

PRINSEQ is a bioinformatics tool to help you preprocess your genomic or metagenomic sequence data in FASTA or FASTQ formats. The tool is written in Perl and can be helpful if you want to filter, reformat, or trim your sequence data. It also generates basic statistics for your sequences.

License: GPL 3+

prometheus

Guile 3.0

This Guile library provides instrumentation code intended to be used with the Prometheus time series service. Counter, gauge and histogram metric types are supported.

License: GPL 3+

proteinortho

Guile 3.0

Proteinortho is a tool to detect orthologous genes across different species. For doing so, it compares similarities of given gene sequences and clusters them to find significant groups. The algorithm was designed to handle large-scale data and can be applied to hundreds of species at once.

License: GPL 3+

pubstrate

Guile 3.0

This package provides an implementation of ActivityStreams and ActivityPub in Guile. It includes a full (currently demo) web server.

License: GPL 3+

python-on-guile

Guile 3.0

This package allows you to compile a Guile Python file to any target from tree-il.

License: LGPL 2.0+

r6rs-protobuf

Guile 3.0

This project provides a pure Scheme implementation of Protocol Buffers, including parsing and code generation.

License: GPL 3+

rcas-web

Guile 2.2

This package provides a simple web interface for the RNA-centric annotation system (RCAS).

License: AGPL 3+

remake

Guile 3.0

Remake is an enhanced version of GNU Make that adds improved error reporting, better tracing, profiling, and a debugger.

License: GPL 3+

scheme-bytestructures

Guile 3.0Guile 2.2Guile 2.0

Guile bytestructures offers a system imitating the type system of the C programming language, to be used on bytevectors. C's type system works on raw memory, and Guile works on bytevectors which are an abstraction over raw memory. It's also more powerful than the C type system, elevating types to first-class status.

License: GPL 3+

scheme-json-rpc

Guile 3.0

This library implements parts of the JSON-RPC specification, allowing for calling methods on remote servers by exchanging JSON objects.

License: Expat

schemetran

Guile 3.0

Fortran is great in expressing operations on multi-dimensional arrays of numbers. Scheme is great at expressing your coding thoughts. This project is an attempt to combine both into something useful.

License: ASL 2.0

schmutz

Guile 2.2

Schmutz is a header-only library to declare Scheme bindings for C++ code using a simple embedded DSL. Think of it as Boost.Python or LuaBind but for Scheme.

License: Boost 1.0

scmackerel

Guile 3.0

SCMackerel is a library in GNU Guile to create abstract syntax trees (ASTs). Initially written for mCRL2 and now also supporting other languages, such as C, C++, and C#. Based on GNU Guix records.

License: GPL 3+

serveez

Guile 2.2

GNU Serveez is a server framework providing the routines necessary to easily implement IP-based servers in your application. It demonstrates aspects of network programming in a portable manner, making it convenient for both simplifying the process of adding a server to your application or for learning about how network services work. Several example servers are provided already, such as an HTTP server and an IRC server.

License: GPL 3+

shepherd

Guile 3.0Guile 2.2

The GNU Shepherd is a daemon-managing daemon, meaning that it supervises the execution of system services, replacing similar functionality found in typical init systems. It provides dependency-handling through a convenient interface and is based on GNU Guile.

License: GPL 3+

shroud

Guile 2.2

Shroud is a simple secret manager with a command line interface. The password database is stored as a Scheme s-expression and encrypted with a GnuPG key. Secrets consist of an arbitrary number of key/value pairs, making Shroud suitable for more than just password storage. For copying and pasting secrets into web browsers and other graphical applications, there is xclip integration.

License: GPL 3+

sieve-connect

Guile 3.0

Sieve-connect lets you view, upload, edit, delete, and otherwise manage Sieve scripts on any mail server that speaks the ManageSieve protocol, as specified in RFC 5804.

Sieve (RFC 5228) is a specialised language for e-mail filtering. Sieve scripts are stored on the server and run whenever mail arrives. They can automatically sort new messages into folders, silently reject them, send an automated response, and more.

sieve-connect is designed to be both a tool which can be invoked from scripts as well as a decent interactive client. It supports TLS for connection privacy, as well as authentication with SASL or GSSAPI client certificates. It should be a drop-in replacement for sieveshell from the Cyrus IMAP project.

License: Modified BSD

skribilo

Guile 3.0

Skribilo is a free document production tool that takes a structured document representation as its input and renders that document in a variety of output formats: HTML and Info for on-line browsing, and Lout and LaTeX for high-quality hard copies.

The input document can use Skribilo's markup language to provide information about the document's structure, which is similar to HTML or LaTeX and does not require expertise. Alternatively, it can use a simpler, “markup-less” format that borrows from Emacs' outline mode and from other conventions used in emails, Usenet and text.

Lastly, Skribilo provides Guile Scheme APIs.

License: GPL 3+

sly

Guile 2.2

Sly is a 2D/3D game engine written in Guile Scheme. Sly features a functional reactive programming interface and live coding capabilities.

License: GPL 3+

snuik

Guile 3.0

Snuik is an IRC bot using the GNU 8sync (for now). It has some basic functionality only, such as seen, tell, and what.

License: GPL 3+

srfi-133

Guile 3.0

This package provides a Guile implementation of SRFI-133, a comprehensive library of vector operations.

License: Expat

srfi-180

Guile 3.0

This library implements a JavaScript Object Notation (JSON) parser and printer. It also supports parsing JSON objects that may be bigger than memory with a streaming API.

License: Expat

srfi-189

Guile 3.0

This SRFI defines two disjoint immutable container types known as Maybe and Either, both of which can contain objects collectively known as their payload. A Maybe object is either a Just object or the unique object Nothing (which has no payload); an Either object is either a Right object or a Left object. Maybe represents the concept of optional values; Either represents the concept of values which are either correct (Right) or errors (Left).

License: Expat

srfi-197

Guile 3.0

This library provides a reference implementation for SRFI-197. This SRFI defines a family of chain and nest pipeline operators, which can rewrite nested expressions like (a b (c d (e f g))) as a sequence of operations: (chain g (e f _) (c d _) (a b _)).

License: Expat

srfi-232

Guile 3.0

This package provides an implementation of SRFI-232, which describes curried, a variant of lambda that creates true curried procedures which also behave just like ordinary Scheme procedures. They can be applied to their arguments one by one, all at once, or anywhere in between, without any novel syntax. curried also supports nullary and variadic procedures, and procedures created with it have predictable behavior when applied to surplus arguments.

License: Expat

srfi-64-driver

Guile 2.2

This package provides an Automake test driver that can run SRFI 64 test suites. It gives Automake insight into the individual tests being run, resulting clearer and more specific output.

License: GPL 3+

srt2vtt

Guile 3.0

srt2vtt converts SubRip formatted subtitles to WebVTT format for use with HTML5 video.

License: GPL 3+

stis-parser

Guile 3.0

This package provides a functional parser combinator library that supports backtracking and a small logical framework. The idea is to build up chunks that are memoized and there is no clear scanner/parser separation, chunks can be expressions as well as simple tokens.

License: LGPL 2.0+

struct-pack

Guile 3.0

This is an R6RS library for working with packed byte structures. It is similar to struct in Python or pack and unpack in Perl.

License: Expat

swig

Guile 3.0

SWIG is an interface compiler that connects programs written in C and C++ with languages such as Perl, Python, Ruby, Scheme, and Tcl. It works by taking the declarations found in C/C++ header files and using them to generate the wrapper code that scripting languages need to access the underlying C/C++ code. In addition, SWIG provides a variety of customization features that let you tailor the wrapping process to suit your application.

License: GPL 3+

swineherd

Guile 3.0

This project aims to provide an extension to the Shepherd, retraining it as a swineherd, a manager of crude system containers. It does this by providing a Shepherd service swineherd that talks to the Shepherd process to create Guix System containers as Shepherd services. It also comes with an optional HTTP API server.

License: GPL 3+

texmacs

Guile 1.8

GNU TeXmacs is a text editing platform which is specialized for scientists. It is ideal for editing structured documents with different types of content. It has robust support for mathematical formulas and plots. It can also act as an interface to external mathematical programs such as R and Octave. TeXmacs is completely extensible via Guile.

License: GPL 3+

tigervnc-server

Guile 3.0

TigerVNC is a client/server implementation of VNC (Virtual Network Computing). It provides enough performance to run even 3D and video applications. It also provides extensions for advanced authentication methods and TLS encryption. This package installs the VNC server, a program that will enable users with VNC clients to log into a graphical session on the machine where the server is installed.

License: X11

tissue

Guile 3.0

tissue is an issue tracker and project information management system built on plain text files and git. It is specifically intended for small free software projects. It features a static site generator to build a project website and a powerful search interface to search through project issues and documentation. The search interface is built on the Xapian search engine library, and is available both as a command-line program and as a web server.

License: GPL 3+

torrent

Guile 2.2

This package provides facilities for working with .torrent or metainfo files. Implements a bencode reader and writer according to Bitorrent BEP003.

License: GPL 3+

tsukundere

Guile 3.0

Tsukundere is a game engine geared heavily towards the development of visual novels, written on top of Guile-SDL2. It is still experimental.

License: LGPL 3+

turbovnc

Guile 3.0

TurboVNC is a high-speed version of VNC derived from TightVNC, with which it remains compatible. It contains a variant of Tight encoding that is tuned to maximize performance for image-intensive applications (such as VirtualGL, video applications, and image editors) while still providing excellent performance for other types of applications. Some of its unique features are:

  • a user-facing vncserver command;

  • the ability to capture keyboard keys even when not in full screen mode;

  • a full screen mode that is compatible with ratpoison*

*Although due to a quirk in Java, you'll want to set the _JAVA_AWT_WM_NONREPARENTING environment variable when using it with ratpoison.

License: GPL 2+

vpnc-scripts

Guile 3.0

This set of scripts configures routing and name services when invoked by the VPNC or OpenConnect Cisco Virtual Private Network (VPN) clients.

The default vpnc-script automatically configures most common connections, and provides hooks for performing custom actions at various stages of the connection or disconnection process.

Alternative scripts are provided for more complicated set-ups, or to serve as an example for writing your own. For example, vpnc-script-sshd contains the entire VPN in a network namespace accessible only through SSH.

License: GPL 2+

weechat

Guile 3.0

WeeChat (Wee Enhanced Environment for Chat) is an Internet Relay Chat (IRC) client, which is designed to be light and fast. The client uses a curses frontend, and there are remote interfaces for Web, Qt, Android, and Emacs.

Everything in WeeChat can be done with the keyboard, though it also supports using a mouse. It is customizable and extensible with plugins and scripts.

License: GPL 3

wisp

Guile 3.0Guile 2.2

Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some users and in some situations.

License: GPL 3+, Expat

x-resize

Guile 3.0

The x-resize command detects physical display resolution changes via udev and invokes the xrandr command to reconfigure the active display resolution accordingly. It can be used to implement dynamic resize support for desktop environments that lack native support such as Xfce.

License: GPL 3+

xbindkeys

Guile 2.2

XBindKeys is a program that allows you to launch shell commands with your keyboard or your mouse under the X Window System. It links commands to keys or mouse buttons, using a configuration file. It's independent of the window manager and can capture all keyboard keys (ex: Power, Wake...). It optionally supports a Guile-based configuration file layout, which enables you to access all XBindKeys internals, so you can have key combinations, double clicks or timed double clicks take actions. Also all functions that work in Guile will work for XBindKeys.

License: GPL 2+

xfstests

Guile 3.0

The FSQA regression test suite, more commonly known as xfstests, comprises over 1,500 tests that exercise (torture) both the user- and kernel-space parts of many different file systems.

As the package's name subtly implies, it was originally developed to test the XFS file system. Today, xfstests is the primary test suite for all major file systems supported by the kernel Linux including XFS, ext4, and Btrfs, but also virtual and network file systems such as NFS, 9P, and the overlay file system.

The packaged check script is not in PATH but can be invoked with the included xfstests-check helper.

License: GPL 2

zile-on-guile

Guile 2.0

GNU Zile is a lightweight clone of the Emacs editor, and Zile-on-Guile is a variant of Zile that can be extended in Guile Scheme. Hitting M-C (or: Alt and C) brings up a Guile REPL from which interactive functions akin to those of Emacs can be invoked.

License: GPL 3+

zplugins

Guile 3.0

ZPlugins is a collection of audio DSP plugins intended to be bundled with the Zrythm digital audio workstation (DAW).

License: AGPL 3+

zrythm

Guile 3.0

Zrythm is a digital audio workstation designed to be featureful and easy to use. It offers unlimited automation options, LV2 plugin support, JACK support and chord assistance.

License: AGPL 3+