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

projects from sph are not included

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
cdlug-web | gpl2+ | developing web applications using guile
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
duplicates | find duplicate files
eliug | the smart irc bot
epholys/sicp | agpl3
feast | gpl3+ | concurrency library
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
gcrypt-guile | gpl3 | guile gcrypt bindings
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-bdd-example | gpl3 | an example application developed with guile-bdd
guile-bdd | gpl3 | behavior driven development framework
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-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-gcrypt | gpl3 | libgcrypt bindings
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-dsv | gpl3 | working with delimiter-separated values files. csv, rfc4180 and more
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-cblas | gpl3+ | cblas and blis bindings (vector and matrix operations)
guile-ffi-fftw | gpl3+ | binding to fftw (a library for computing the discrete fourier transform)
guile-gdbm | gpl3 | bindings for gdbm
guile-git | gpl3+ | bindings to libgit2, to write custom git applications
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-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-mime | gpl3 | mime discovery with xdg shared mime-info database support
guile-modules | gpl3 | a collection of modules
guile-mud | gpl3+ | a mud game (it is a chinese szdiy game)
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-oauth | gpl3 | oauth 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-parsec | parser combinator library
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-present | declarative vocabulary for presentations, together with tools to render presentation documents as svg or pdf
guile-raw-strings | public domain | reader extension that lets you write verbatim strings without needing escapes
guile-redis | gpl3 | redis module
guile-scsh | bsd 3-clause | resurrection of guile-scsh on guile-2.0
guile-sexp-diff | public domain / lgpl | ported sexp-diff from chicken
guile-sfml-2 | lgpl3 | sfml 2.1 bindings (from csfml) using the dynamic ffi of guile 2
guile-shapefile | mit | library for reading shapefiles (a geospatial vector data format for geographic information system (gis) software)
guile-semver | gpl3 | handles semantic version numbers and npm-style ranges
guile-sly | gpl3 | functional reactive game programming
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-template | gpl3 | templating system
guile-tmx | lgpl3 | tiled map parser for guile
guile-toxcore | gpl3 | libtoxcore bindings
guile-unit | a testing framework
guile-websocket | websocket client and server
guile-wm | gpl3 | window manager toolkit
guile-words | lgpl3+ | vocabulary for scheme and c programs
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
gush | bsd 3-clause | this is a record of my attempt to repair scsh-guile
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
implicator | a formal logic system for computers
industria | mit | portable r6rs scheme libraries for cryptography (aes, hmac, sha-1, sha-2, rsa, dsa, ecdsa, etc.), zlib/xz decompression, disassemblers for various machine architectures, off-the-record messaging, bytevector pack/unpack syntax, tls connections via custom binary ports, secure shell, and a few more things
iteratees | iteratees in r6rs scheme
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
nc-snake | bsd 2-clause | ncurses snake game written with guile
nyacc | lgpl3 | set of guile modules for generating computer language parsers and lexical analyzers
pfds | bsd 3-clause | functional data structures for scheme
project-euler | public domain | solutions in guile/scheme
protest | lgpl3 | a quickcheck like unit testing framework
python on guile | lgpl2+ | to use and write python code with guile
quickcheck | bsd 3-clause | quickcheck for r6rs schemes
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
sat | unknown | generate minisat problems
scamp | scheme mpd client
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
shepherd | gpl3+ | service manager that manages system services (formerly known as "dmd")
shroud | secret-manager with a command-line interface. key/value pairs
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
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
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
xc | unknown | generate c language from s-expressions
xyz2openscad | script for generating 3d open-scad molecule models from .xyz coordinate files
zabavno | x86 emulator in scheme
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-curl | gpl3 | client-side url transfers, like requesting documents from http or ftp servers. based on the libcurl library
guile-epoll | simple epoll interface
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-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-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-wiredtiger | gpl2/gpl3 | bindings to wiredtiger - an ordered key/value database stored on disk
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
test-manager | an automatic unit-testing framework
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
gnutls | guile bindings for the gnutls library, an implementation of the transport layer security (tls) protocol
guile-comm | guile interpeter extended by basic mpi-based inter-process communication primitives
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

to find guile projects in general see also