list of guile projects

list of projects that use guile. free software only

for additions/removals/corrections send an email to the address you can find on the start page, im happy to add anything that fits the description

the list is grouped into the following categories

  • scheme: scheme-only modules
  • extension: requires compilation of a shared library
  • integration: uses guile or other combination

as csv


8sync | lgpl3+/gpl3+ | asynchronous programming library based on the actor model
alias-generator | generate alias-like scripts which can be available to all programs
bloom-filter | bsd 3-clause | a simple bloom filter
c-ast | gpl3 | generating/outputing ansi c asts
cforth/sicp | mit | answers to exercises of the book "structure and interpretation of computer programs"
chatter | chatter bot framework inspired by eliza
chickadee | gpl3+ | chickadee is a game development toolkit for guile scheme built on top of sdl2 and opengl
codejam practices | unknown | code jam solved
cthom06/guile-json | a basic json parser
cunning-bot | gpl3 | a command-oriented irc bot
dezyne | agpl3+ | programming language and set of tools to specify, validate, verify, simulate, document, and implement concurrent control software for embedded and cyber-physical systems
duplicates | find duplicate files
eliug | the smart irc bot
fectors | bsd 3-clause | functional vectors
fibers | lgpl3+ | concurrent ml-like concurrency for guile. cooperative, event-driven user threads with support for non-blocking io
game-of-life | implementation of conway's game of life
gapd | guile audio player daemon
gappserver | a really tiny, easy-to-use webserver
gash | gpl3+ | posix-compatible shell
gclip-select | gpl3+ | re-use multiple x window system primary selections of selected text
gcrypt-guile | gpl3 | guile gcrypt bindings
gde_appmenu | gpl3 | application selection menu similar to those of gnome, mate, xfce, and lxde
ggspec | a lightweight, functional-style unit testing framework for guile/scheme
gnu artanis | gpl3+ | web application framework
gnu foliot | gpl3+ | time keeping application (formerly known as "kise")
gnu guile-rpc | gpl3 | implementation of onc rpc and xdr (standardized as rfc 1831 and rfc 4506), and for use by guile programs
gnu thales | gpl3+ | set of gnu guile macroses to perform doctests
grip | gpl3+ | toolbox currently composed of grip itself, grip-sqlite, grip-gnome and grip-clutter
gsparql | creative commons | sparql client
gtk-tutorial-using-guile-gnome | gtk tutorial code in scheme and guile-gnome
guildhall | gpl3+ | package manager for guile
guile100 | the repository for the 100 guile programs project
guile-aa-tree | gpl3+ | an aa tree implementation. self-balancing binary trees
guile-agentx | lgpl2 | agent-x implementation in guile
guile-allegro5 | lgpl3 | allegro 5 bindings for guile
guile-aspell | gpl3 | spellcheck module for guile. uses functionality provided by the gnu aspell spellcheck library
guile-cbor | gpl3+ | implementation of cbor (concise binary object representation)
guile-charting | library to create charts and graphs
guile-cl | lgpl2 | the common-lisp concepts that are ported to the scheme environment are loop, tagbody, block and symbol-properties
guile-clipboard-speaker | agpl3 | accessibility tool which reads aloud text in the clipboard buffer using xsel and espeak-ng
guile-coap | gpl3+ | implementation of the constrained application protocol (coap) which is specialized for use with constrained nodes and constrained networks (e.g. low-power, lossy). coap provides a request/response interaction model similar to http. however, coap can also be used for observing resources (see module rfc 7641) and allows bi-directional requests
guile-colorized | gpl3 | colorized repl
guile-commonmark | lgpl3+ | library for parsing commonmark, a fully specified variant of markdown
guile-compost | gpl3 | compiles inner loops into native x86-64 machine code that operates on unboxed values
guile-config | agpl3 | configuration declaration forms and processors
guile-contract | lgpl2 | the contract system guards one part of a program from another
guile-coroutines | lgpl2 | guile-coroutines
guile-csv | csv reader
guile-cuirass | gpl3+ | continuous integration tool using gnu guix intended as a replacement for hydra
guile-dbi | gpl2 | generic scheme/guile interface to sql databases, such as postgres, mysql or sqlite
guile-ddg | bsd | duckduckgo api access
guile-dns | gpl3+ | a library for dns interactions
guile-dsv | gpl3 | working with delimiter-separated values files. csv, rfc4180 and more
guile-email | gpl3+ | email utilities: parsing mime compliant (multipurpose internet mail extensions) email messages and reading emails from the mbox format
guile-eris | gpl3+ | implementation of the encoding for robust immutable storage (eris).
guile-examples | gpl3 | usage examples and tutorials of guile things
guile-fash | lgpl3 | functional hashes using hash array mapped tries (hamts)
guile-fector | blue oak model license 1.0 | persistent vectors with amortized o(1) pushes, and "effectively o(1)" (as in log32) set and get
guile-ffi-blis | gpl3 | ffi bindings for blis, a linear algebra subprograms library
guile-ffi-cblas | gpl3 | ffi bindings for cblas, a linear algebra subprograms library including features for vector and matrix operations
guile-ffi-fftw | gpl3 | ffi bindings for fftw's guru interface for computing the discrete fourier transform
guile-gcrypt | gpl3 | libgcrypt bindings
guile-gdbm | gpl3 | bindings for gdbm
guile-gemini | lgpl3+ | implementation of the gemini protocol
guile-git | gpl3+ | bindings to libgit2, to write custom git applications
guile-gitlab | gpl3 | interface to the gitlab ce rest api
guile-ics | gpl3 | icalendar format (rfc5545) parser
guile-imi | unknown | some libs for guile
guile-ini | gpl3+ | parse and write ini configuration files
guile-irc | lgpl2 | irc library for guile
guile-jpeg | gpl3+ | parse jpeg image files
guile-json | json module
guile-jwt | gpl3+ | json web tokens (rfc 7519)
guile-lens | gpl3 | composable procedures, which can be used to focus, apply functions over, or update a value in arbitrary data structures. currently a re-implementation of the lentes library for clojure
guile-lib | gpl3+ | guile-lib is intended as an accumulation place for pure-scheme guile modules, allowing for people to cooperate integrating their generic guile modules into a coherent library
guile-libyaml | lgpl3 | yaml module
guile-lint | gpl3 | syntactic and semantic checks on guile 1.8 programs and modules
guile-lua-rebirth | lua language front-end rebirth on guile platform
guile-lzlib | gpl3+ | bindings to lzlib to work with the lzlib compression format
guile-lzma | gpl3 | bindings to liblzma (xz)
guile-magic | gpl3 | bindings to libmagic, the library of the file command to guess file types
guile-mud | gpl3+ | a mud game (it is a chinese szdiy game)
guile-newra | gpl3 | a scheme replacement for guile's array system
guile-newt | gpl3+ | bindings for newt, a programming library for color text mode, widget based user interfaces
guile-notes | a tool for saving a list of notes
guile-num | swig wrappers for the gnu scientific library, the sndfile library and the lapack library
guile-oauth | gpl3 | oauth module
guile-openai | agpl+ | client for the openai api
guile-openai | gpl3 | openai module.
guile-packed-binary | gpl3 | performs conversions between guile values and c structs represented as strings. it also provides read and write routines to perform these conversions directly to/from binary files
guile-pacman | gpl2 | a simple, ascii pacman game using the ncurses c library
guile-parallel | gpl3 | high level structures and procedures for parallelism
guile-parser-combinators | lgpl3 | monadic parser combinators
guile-parted | gpl3+ | bindings to gnu parted, to manipulate partition tables
guile-paxos | an implementation of the paxos consensus
guile-pcre-ffi | gpl3+ | pcre for guile
guile-picture-language | lgpl3+ | simple svg-based picture language
guile-pigpen | gpl3 | implementation of the pigpen cipher
guile-ploy | gpl3 | array library inspired by the rank conjunction from the array language j
guile-prescheme | bsd3 | a port of pre-scheme, a low-level dialect of scheme designed for systems programming, and particularly interesting as an alternative to c
guile-raw-strings | public domain | reader extension that lets you write verbatim strings without needing escapes
guile-redis | gpl3 | redis module
guile-rsv | gpl3 | rows of string values (rsv) data format. a binary alternative to csv
guile-scmutils | port of the scmutils package for symbolic mathematics from mit scheme to guile
guile-scsh | bsd 3-clause | resurrection of guile-scsh on guile-2.0
guile-semver | gpl3 | handles semantic version numbers and npm-style ranges
guile-sexp-diff | public domain / lgpl | ported sexp-diff from chicken
guile-shapefile | mit | library for reading shapefiles (a geospatial vector data format for geographic information system (gis) software)
guile-sly | gpl3 | functional reactive game programming
guile-sparql | gpl3+ | sparql module
guile-spec | lgpl3 | simple rspec/jasmine-like bdd library
guile-sqlite3 | gpl3 | bindings to sqlite. uses the foreign function interface
guile-srfi89 | gpl3 | hygienic implementation of srfi-89
guile-syntax-highlight | gpl3 | general-purpose syntax highlighting library
guile-syntax-parse | lgpl2 | 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
guile-tap | simple guile module which provides tap compilant output
guile-telegram | gpl3+ | library for the telegram messenger bot api
guile-tmx | lgpl3 | tiled map parser for guile
guile-websocket | lgpl3+ | websocket client and server. rfc 6455
guile-wm | gpl3 | window manager toolkit
guile-www | modules for making uri requests (client side), as well as for doing listener setup (inet and unix domain), http request parsing, mime lookup, cookie handling, response packing, and logging (server side)
guile-xmlrpc | gpl3 | xmlrpc module
guile-xmms | lgpl3 | guile buildings for the xmms client library
guile-zlib | lgpl3 | zlib bindings for guile
guile-zstd | gpl3 | bindings to the zstd compression library
haunt | gpl3+ | static site generator
ijputils | bsd 3-clause | a bunch of scheme junk
imp | gpl3 | the imperative imp toy language as an example for adding a new language to guile
iteratees | iteratees in r6rs scheme
kolam | gpl3+ | graphql implementation
lcs | bsd 3-clause | r6rs library for longest common subsequence
littleschemer | working through miscellaneous scheme books using guile 2.0.3
mcron | gpl3 | 100% compatible replacement for vixie cron
metabash | gpl3+ | module for running distributed shell pipelines. to run and chain remote and local commands
minikanren | mit | r6rs packaging of minikanren from "the reasoned schemer"
monad | bsd 3-clause | various monads in r6rs scheme
mro | utilities
nabs | mit | set of tools written to make (semi-)auto-configurable makefiles (requires gnu make 4). no autotools, no cmake
nala-repl | gpl3+ | an enhanced repl
nyacc | lgpl3 | set of guile modules for generating computer language parsers and lexical analyzers
pfds | bsd 3-clause | functional data structures for scheme
python on guile | lgpl2+ | to use and write python code with guile
quickcheck | bsd 3-clause | quickcheck for r6rs schemes
guile-goblins | al2 | port of spritely goblins, a distributed object programming environment
guile-quickcheck | gpl3 | tools for randomized, property-based testing. it follows closely the quickcheck library written in haskell
r6rs-protobuf | gpl3 | pure scheme implementation of protocol buffers, including parsing and code generation
r6rs-slice | bsd 3-clause | slicer procedure for lists, vectors, strings and bytevectors
ragnarok | glp3/lgpl3 | a generic server
rsa scheme | gpl2 | toy implementation of the rsa public key encryption
rsixrs | bsd 3-clause | base for creating r6rs-based languages
sanng-guile-edition | scheme artificial neural network generator
schemantic-web | public domain | project of porting the original "schemantic-web"
scheme-bytestructures | structured access to bytevector contents. the core library provides functionality that closely resembles the type system of c, and correctly implements the rules of struct padding and alignment
scheme.code | gpl2 | scheme code for guile, scheme48 and other things
scheme-linenoise | bsd 3-clause | line editing
scheme-power-tools | bsd 3-clause | an assorted collection of scheme utilities. implements native monads, pattern matching, generic operator dispatch, serialization, event handling, memoization, suffix trees, among other things
scheme-srfis | r7rs srfi implementations
scss | gpl | 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
sescript | gpl3+ | compiles scheme-like s-expressions to javascript/ecmascript
shepherd | gpl3+ | service manager that manages system services (formerly known as "dmd")
shroud | secret-manager with a command-line interface. key/value pairs
sicp-guile | answers to exercises of the book "structure and interpretation of computer programs"
simple | gpl3 | simple language for guile example
skribilo | gpl3+ | document authoring system that can produce output in a variety of formats including html and pdf from a single input format. it is highly customizable and programmable
slib | portable scheme library
spells | mostly bsd/non-copyleft | collection of scheme libraries
sph-lib | gpl3+ | a collection of 80+ gpl3+ licensed guile scheme libraries
sph-sc | gpl3+ | compiles scheme-like s-expressions to c
sph-web-app | gpl3+ | web application framework
sph-web-publish | gpl3+ | static site generator
square-man | a small game for me to play with guile-2d
srfi-78-guile | mit | srfi 78: lightweight testing by sebastian egner
srfi | mixed | scheme requests for implementation, as r6rs libraries
srt2vtt | convert srt formatted subtitles to webvtt format for use with the html5 <track> tag
stexidoc | source code documentation extractor and formatter
stis-parser | gpl2+ | functional parser combinator library that supports backtracking and a small logical framework
termios | bsd 2-clause | posix termios interface
thomasengine2 | a top-down 2d game engine
tissue | gpl3+ | issue tracker and project information management system built on plain text files and git. it features a static site generator to build a project website and a powerful search interface to search through project issues and documentation
translates | gpl3+ | helps to translate languages
uri | bsd 3-clause | r6rs library for uniform resource identifier (uri)
vcard | lgpl3 | simple vcard processor
wak | collection of scheme libraries ported to r6rs
weechat-guile-repl | scheme repl for weechat
xyz2openscad | script for generating 3d open-scad molecule models from .xyz coordinate files
zoj-guile | zoj in scheme


aiscm | gpl3 | numerical arrays and tensors
gnu g-golf | lgpl3+ | g-golf is a tool to develop modern graphical applications, a guile object library for gnome
gnu guile-clutter | lgpl2+ | guile binding for the clutter library
gnu guile-cv | gpl3+ | image processing and analysis in guile - a computer vision functional programming library for the guile scheme language. based on vigra
gnu guile-gnome | gpl2+ | provides bindings for the following gnome core libraries: atk, corba, gdk, gdk-pixbuf, glib, gnome-vfs, gobject, gtk, libglade, libgnome, libgnomecanvas, libgnomeui, pango, pangocairo
gnu guile-gtk | gpl3 | guile-gtk provides bindings to the gtk+ toolkit from guile 1.8
gnu guile-ncurses | lgpl3+ | a 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
gnu guile-sdl | 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
gnu robots | gpl3+ | program robots in scheme/guile to explore a maze and collect things to survive as long as possible
gpgme-with-guile | gpl3+ | binding to the gpgme (gpg made easy) encryption library
guile-a-sync | lgpl3 | asynchronous event loop for guile-2.0 with await semantics
guile-avahi | gpl3 | bindings for avahi, an implementation of the mdns and dns-sd protocol. the latter provides service discovery mechanisms
guile-beaglebone-io | mit | library for the beaglebone (beagleboard)
guile-cairo | lgpl | binding to the cairo graphics library
guile-epoll | simple epoll interface
guile-fuse | gpl3+ | bindings to use fuse with guile
guile-gi | gpl3 | this library hopes to make gtk and webkit available to guile. it generates gnu guile bindings for gobject libraries that provide typelib files
guile-hoot | apache2 | scheme to wasm compiler and full-featured webassembly toolkit
guile-inotify | gpl3 | inotify bindings
guile libxml/xsl | gpl2+ | glue to bind guile to the libxml2 library and the libxslt library
guile-lightning | lightning bindings
guile-log | lgpl2 | logic programming framework. prolog engine, minikanren engine and internal scheme interface. it can do whatever iso-prolog or swi-prolog can do and contains most prolog constructs
guile-pcre | guile (scheme) bindings for perl-compatible regular expression library
guile-pg | gpl3+ | access to postgresql rdbms from guile
guile-plotutils | gpl3 | use the plotting and graphing functionality provided by gnu plotutils
guile-reader | gpl3+ | 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
guile-ssh | gpl3 | guile-ssh is a library that provides access to the ssh protocol for gnu guile programs
guile-taglib | guile bindings for the taglib library
guile-udev | gpl3 | bindings to libudev, an api for enumerating and introspecting local devices, and monitoring events
guile-zeromq-3 | lgpl3+ | zeromq bindings
guile-zmq.git | lgpl3 | zeromq bindings
gzochi | gpl3 | framework for developing massively multiplayer online games
lokke | lgpl 2.1+ or epl 1.0+ | intends to provide a full dialect of clojure for guile
sph-db-guile | gpl3+ | bindings to the nosql database sph-dg which offers key/value, records and graph features
wrap-syscall | guile module to wrap/intercept system calls via ld_preload


aisleriot | card games
anubis | gpl3 | smtp message submission daemon. it represents an intermediate layer between mail user agent (mua) and mail transport agent (mta)
ball and paddle | gpl3+ | ball and paddle is an extensible ball and paddle game that lets you script the events and attributes of the objects (balls, blocks, powerups, etc.)
beast | beast is a music composition and synthesis tool
combine | extensible file matching and filtering. gnu combine joins, rearranges fields in, reformats, and sometimes summarizes flat files or other data files. it is extensible with guile, and doesn't need sorted files (if you have enough memory)
garble | guile/ada rich binding for language extension
geda | the geda project provids a full gpl-licensed suite of electronic design tools, including schematic capture, simulation, prototyping and production
gnotime | gpl3 | to-do list/diary/journal tool that can track the amount of time spent on projects, and, among other things, generate reports and invoices based on that time
gnu autogen | 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
gnubik | gpl3+ | interactive, graphical, single player puzzle - a rubiks cube
gnucash | gpl2/gpl3/gpl3+ | personal and small-business financial-accounting software
gnu guix | 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
gnu lilypond | lilypond generates music notation from an input file
gnu mailutils | gpl3+/lgpl3+ | general-purpose mail package
gnu make | gpl3+ | integrates guile as an embedded extension language
gnu mix development kit | gpl3 | emulation of mix and mixal
gnurobots | gpl3 | game/diversion where you construct a program for a little robot, then watch him explore a world
guile-comm | guile interpeter extended by basic mpi-based inter-process communication primitives
guile-gnutls | guile bindings for the gnutls library, an implementation of the transport layer security (tls) protocol
guile-rsvg | binding to the rsvg library for guile, allowing you to render svg images onto cairo surfaces
g-wrap | tool (and guile library) for generating function wrappers for inter-language calls. it currently only supports generating guile wrappers for c functions
libchop | is a set of utilities and library for data backup and distributed storage. its main application is chop-backup
libctl | library implementing flexible control files for scientific simulations
libguile-llvm | llvm bindings for guile
librekontrol | gpl3+ | define the events that occur when you interact with keyboards, gamepads, music controllers, etc.
libruin | 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
liquidwar6 | gpl3+ | unique multiplayer wargame
mu | gpl3 | email indexer/search with guile bindings
nomad | gpl3 | an extensible customisable, free web browser, and more
opencog | agpl3 with linking exception | framework for developing AI systems, especially appropriate for integrative multi-algorithm systems, and artificial general intelligence systems
schmutz | boost1 | declare scheme bindings for c++ code using a simple embedded dsl. think of it as boost.python or luabind but for scheme
scwm | last update in 2000. window manager with a configuration language based on guile scheme
snd | sound editor
texmacs | gpl3 | free wysiwyw (what you see is what you want) editing platform with special features for scientists
wisp | gpl3+ | turns indentation based syntax into lisp. srfi-119
xchat-guile | plugin for xchat that enables xchat plugin writers to write their plugins in the scheme language


gnunet-guile2 | gpl3 | bindings for gnunet
gnunet | gpl3 | bindings for gnunet
cmod-play | gpl3 | cmod-play provides a skeleton for making compiled modules available to guile scheme programs
mixp | gpl3 | bindings to the expat library
rpx | gpl3 | port of the ratpoison window manager to guile scheme
guile-png | gpl3 | portable network graphics (png) format parser
guile-smc | gpl3 | state machine compiler

to find guile projects in general see also