1. Eggs Unlimited (release branch 3, updated Tue May 25 21:04:35 2010)
    1. Installation
    2. List of available eggs
      1. Language extensions
      2. Graphics
      3. Debugging tools
      4. Logic programming
      5. Networking
      6. Input/Output
      7. Databases
      8. OS interface
      9. Interfacing to other languages
      10. Web programing
      11. XML processing
      12. Documentation tools
      13. Egg tools
      14. Mathematical libraries
      15. Object-oriented programming
      16. Algorithms and data-structures
      17. Data formats and parsing
      18. Tools
      19. Sound
      20. Unit-testing
      21. Cryptography
      22. User interface toolkits
      23. Code generation
      24. Macros and meta-syntax
      25. Miscellaneous
      26. Concurrency and parallelism
      27. Unsupported or redundant

Eggs Unlimited (release branch 3, updated Tue May 25 21:04:35 2010)

A library of extensions for the Chicken Scheme system.

Note: the development of CHICKEN 3 is frozen. Consider using the current CHICKEN version and its corresponding eggs.


Just enter

 $ chicken-setup EXTENSIONNAME

This will download anything needed to compile and install the library. If your extension repository is placed at a location for which you don't have write permissions, then run chicken-setup as root. You can obtain the repository location by running

 $ chicken-setup -repository

If you only want to download the extension and install it later, pass the -fetch option to chicken-setup:

 $ chicken-setup -fetch EXTENSIONNAME

By default the archive will be unpacked into a temporary directory (named EXTENSIONNAME.egg-dir and the directory will be removed if the installation completed successfully. To keep the extracted files add -keep to the options passed to chicken-setup.

For more information, enter

 $ chicken-setup -help

If you would like to access the subversion repository, see eggs tutorial.

If you are looking for 3rd party libraries used by one the extensions, check out the CHICKEN tarball repository.

List of available eggs

Language extensions

Egg Licence Author Description
F-operator BSD Kon Lovett Shift/Reset Control Operators.
autoload BSD Alex Shinn Load modules lazily
awk LGPL-1 Olin Shivers, adapted to Chicken by felix winkelmann The SCSH/PLT 'awk' macro
codewalk BSD felix winkelmann macro-expansion and code-walking
contracts BSD felix winkelmann Simple contract-oriented programming
datatype BSD felix winkelmann A facility for creating and deconstructing variant records (from EOPL)
date-literals MIT Arto Bendiken A reader extension providing SRFI-19 date/time literals of the form #@2007-12-31T23:59:59Z
defun-cond BSD Kon Lovett Create condition convenience procedures
environments BSD felix winkelmann User defined evaluation environments
extended-cond Public Domain Shawn Wagner cond conforming to SRFI-61 (Guard clauses) case conformating to SRFI-87 (Passing the matched value to a function) Generic case and switch versions that take a user-defined equality function.
foof-loop Public Domain Taylor R Campbell Extensible looping macros (originally based on Alex Shinn's)
fspath BSD Kon Lovett CommonLISP similar namestring & pathname
generalised-case BSD Peter Bex A generalised version of CASE that accepts an equality predicate
generator BSD Kon Lovett Provides generator-like coroutine operations.
job-worker BSD Kon Lovett Background Job/Worker Associates
lexmod BSD Taylor Campbell A portable module system based on lexical scope
loop GPL-2 Heinrich Taube The Common Lisp LOOP macro
loopy-loop Public Domain Alex Shinn Alex Shinn's LOOP macro
make LGPL-1 PLT, adapted to Chicken by felix winkelmann The PLT 'make' macro
match-action BSD Kon Lovett Match extension with explicit success & fail actions
matchable Public Domain Alex Shinn Hygienic MATCH replacement
misc-extn BSD Kon Lovett Miscellaneous useful stuff
miscmacros BSD felix winkelmann Various helper macros
modules BSD felix winkelmann a simple module system
object-apply BSD felix Allows calling arbitrary data objects as procedures
pmatch Public Domain Mayer Goldberg Macroless ML-style pattern matching
procedure-decoration BSD Kon Lovett An interface for procedure decoration
procedure-surface BSD Kon Lovett Generic Programming Support
regex-case BSD felix winkelmann Provides an easy to use case construct for regular expression matching
regex-literals MIT Arto Bendiken A reader extension providing precompiled regular expression literals of the form #/[a-z0-9]+/i
sandbox BSD felix winkelmann A safe evaluation environment
softscheme GPL-2 Andrew Wright, packaged by Lars Thomas Hansen and ported to chicken by felix Andrew Wright's soft type checker
srfi-45 BSD Kon Lovett Primitives for Expressing Iterative Lazy Algorithms
srfi-60 BSD Aubrey Jaffer Integers as bits
srfi-89 SRFI Marc Feeley reference implementation of SRFI-89
stacktor BSD Mark Fredrickson A stack programming DSL, inspired by Factor
suspension BSD felix Serialized limited continuations
tagged-begin BSD Jens Axel Søgaard An extended form of begin similar to Common Lisp's tagbody
uri-literals MIT Arto Bendiken A reader extension providing URI literals of the form # .call-with-current-continuation.org/>


Egg Licence Author Description
aalib BSD felix winkelmann Bindings for the AAlib ASCII renderer
aquaterm BSD Thomas Chust Bindings to the C API for AquaTerm
cairo LGPL-2.1 Michael Bridgen and Tony Garnock-Jones Chicken bindings for Cairo, a vector graphics library
directfb BSD Hans Bulfone A binding for the DirectFB graphics library
epeg BSD Peter Bex Chicken bindings for the JPEG thumbnail creation library epeg
ezxdisp GPL-2 n-sibata and Morihiko Tamai A simple 2D and 3D graphics library for X11
fps Free Use Wandy Sae-Tan and Olin Shivers Functional PostScript
freetype BSD Alex Shinn Freetype2 Interface
g2 BSD felix winkelmann Interface to the G2 graphics libary
glfw MIT Alex Sandro Queiroz e Silva Bindings for GLFW, an OpenGL framework
glut BSD felix winkelmann GLUT bindings
imlib2 BSD Peter Bex Chicken bindings for the Imlib2 image library
octave BSD Pierre-Alexandre Fournier Interface to GNU/Octave
opengl BSD felix winkelmann OpenGL bindings
sdl LGPL-2.1 Tony Garnock-Jones Basic SDL support
xlib unknown Richard Mann Xlib bindings
xmi BSD felix winkelmann An interface to libxmi, the 2D rasterization library

Debugging tools

Egg Licence Author Description
dissector BSD Taylor Campbell An object inspector for Chicken
gdb MIT Tony Sidaway GDB-MI interface to the GNU debugger
mayo MIT Tony Sidaway Scheme source-level debugger

Logic programming

Egg Licence Author Description
kanren MIT Oleg Kiselyov and Dan Friedman A declarative applicative logic programming system.
schelog LGPL-2 Dorai Sitaram, substantially optimized by Brad Lucier Dorai Sitaram's embedding of logic programming into Scheme


Egg Licence Author Description
9p BSD Peter Bex 9p networked filesystem protocol implementation. Includes high-level client code library
dict BSD David Krentzlin Simple API for the dict client/server-protocol
dns BSD elf domain name service client
dpfw GPL-2 Dan Muresan A lightweight distributed programming framework
ftp BSD felix winkelmann Simple FTP client
hostinfo BSD Zbigniew Szadkowski Look up host, protocol, and service information
http BSD felix winkelmann HTTP client and server
http-auth GPL-3 Ivan Raikov HTTP access authentication.
irc BSD felix winkelmann A simple IRC client
memcached BSD Alaric B. Snell-Pym A client for accessing a memcached cluster
mpi GPL-3 Ivan Raikov Message-passing Interface (MPI)
openssl BSD Thomas Chust Bindings to the OpenSSL SSL/TLS library
pcap BSD Category 5 Interface to the portable packet-capture library
pop3 BSD felix winkelmann Mail retrieval via the POP3 protocol
raw-sockets BSD Ben Kurtz Simple access to UNIX raw sockets
remote-launch BSD Kon Lovett Remote Launch Service
remote-mailbox BSD Kon Lovett Remote Mailbox
remote-repl BSD elf remote read-eval-print loop client and server
rpc BSD Thomas Chust A flexible peer-to-peer RPC system.
scgi BSD Thomas Chust SCGI server library
sendfile BSD David Krentzlin Sending a file over the network
smtp BSD felix winkelmann A simple library to send e-mail via SMTP (RFC 821)
soap BSD description SOAP Library for Chicken
socket BSD Jim Ursetto BSD sockets interface
sockets BSD elf socket code
spread BSD felix winkelmann An interface to the Spread communication library
stringprep GPL Adam C. Emerson RFC 3454 internationalized string preparation
tcp-server BSD felix winkelmann A simple generic multithreaded tcp-server
tcp6 BSD Jun-ichiro Itojun Hagino and felix winkelmann A replacement for the tcp library unit that supports IPv6
udp BSD Category 5 An interface to User Datagram Protocol sockets
unix-sockets BSD felix winkelmann UNIX domain sockets
uuid-lib BSD Kon Lovett OSF DCE 1.1 UUID
uuid-ossp BSD Kon Lovett OSSP UUID
webdav-client GPL-3 Ivan Raikov WebDAV client implementation.


Egg Licence Author Description
binary-parse Public Domain Oleg Kiselyov Reading variable number of bits from a sequential input stream
eformat BSD elf extended formatting procedures
endian-port GPL-3 Ivan Raikov An I/O port that supports different endian formats.
fmt BSD Alex Shinn Combinator Formatting
format-graph GPL-3 Ivan Raikov Prints a graph in various formats.
format-modular Public Domain Alejandro Forero Cuervo, Alex Shinn and Kon Lovett Modular Common-Lisp style formatted output
format-textdiff GPL Ivan Raikov Output text diff scripts in different formats
fpio BSD Ivan Raikov Conversion of floating point numbers between binary and decimal representation.
http-fs BSD felix winkelmann Simple read-only HTTP access over vfs
ioctl BSD Alex Shinn ioctl system call interface
nbstdin BSD Daishi Kato Non-blocking Standard Input
pipeline BSD Hans Bulfone Run multiple subprocesses connected via pipes
ppi MIT Michal Dybizbanski user-space interface to ppbus parallel 'geek' port under FreeBSD
pty BSD Alex Shinn Easy Pseudo-Terminal Interface
readline GPL-2 Tony Garnock-Jones An interface to the GNU readline library
sfio BSD Category 5 Interface to AT&T;'s Safe/Fast I/O Library
srfi-38 SRFI Al Petrofsky and Ray Dillinger A Chicken version of the SRFI-38 reference implementation
strictly-pretty GPL-3 Ivan Raikov Algebraic pretty printer.
stty BSD Alex Shinn stty-style interface to termios
vfs BSD felix winkelmann TinyCLOS wrappers for file operations


Egg Licence Author Description
gdbm BSD Alex Shinn GNU DBM interface
geoip MIT Arto Bendiken Chicken bindings for the GeoIP C API
metakit MIT Sergey Khorev An interface to the Metakit database
mysql MIT Toby Butzon MySQL bindings for Chicken
postgresql BSD Johannes Groedem Some simple bindings for PostgreSQL's C-api
qdbm GPL Sven Hartrumpf Some bindings for qdbm (depot interface)
sedna Apache The Institute for System Programming of the Russian Academy of Sciences (ISP RAS) An interface to the Sedna XML database management system.
sql BSD Hans Bulfone A small scheme library for constructing SQL queries
sql-null Public Domain Ivan Shmakov A convenience extension for representing SQL NULL values
sqlite3 BSD Thomas Chust Bindings to version 3.x of the SQLite API
sqlite3-records BSD Joshua B. Griffith Record-based interface to sqlite3 with hierarchical relationships
sqlite3-tinyclos BSD Thomas Chust A bridge between persistent storage in SQLite3 tables and TinyCLOS objects.
sqlora BSD Graham Fawcett A wrapper for libsqlora8, the Oracle-database library
tokyocabinet BSD Alex Shinn Tokyo Cabinet DBM interface

OS interface

Egg Licence Author Description
daemon-tools BSD Hans Bulfone Collection of useful functions for daemons
dbus MIT Shawn Rutledge A binding for libdbus, the IPC mechanism
filesystem MIT Ozzi Lee Functions for getting filesystem information.
lirc-client BSD Hans Bulfone Interface to LIRC (Linux Infrared Remote Control) client library
locale BSD Kon Lovett Provides locale operations
macosx BSD Kon Lovett MacOS X Utilities
osprocess BSD Kon Lovett Subprocess Object
rlimit BSD felix winkelmann Setting resource limits
statvfs MIT Ozzi Lee Wrapper for the statvfs C function.
unix-test BSD elf test(1) equivalence procedures

Interfacing to other languages

Egg Licence Author Description
dollar BSD felix winkelmann FFI convenience macro
easyffi BSD felix winkelmann Generates bindings from C/C++ declarations
javahack BSD felix winkelmann A simple interface to Java(tm)
jni BSD Daishi Kato and felix winkelmann An interface to Java(tm) via JNI
lazy-ffi BSD felix winkelmann A foreign function interface for lazy people
lua MIT PUC Rio, chicken interface by felix winkelmann Embed Lua interpreter into Scheme applications
objc MIT Zbigniew An Objective-C interface
pyffi GPL-3 Ivan Raikov An interface to the Python programming language.
q-lang GPL-2 John Cowan An interface to the programming language Q

Web programing

Egg Licence Author Description
ajax MIT felix winkelmann Using xmlHttpRequest with the Spiffy web-server
cgi-util unknown Oleg Kiselyov. Ported to chicken by Shawn Wagner. CGI GET and POST query string parsing.
curl BSD Tony Sidaway Bindings for libcurl, the multiprotocol file transfer library
estraier GPL Alejandro Forero Cuervo Thin wrapper around the Hyper Estraier API for indexing documents and searching them.
fancypants BSD Peter Bex Automatic ASCII smart quotes and ligature handling for SXML
fastcgi BSD Alex Drummond Bindings for the FCGX API of libfcgi
hart BSD Graham Fawcett An efficient HTML-generation library.
honu BSD felix winkelmann A parser for `honu' syntax
html-form GPL-3 Ivan Raikov HTML form constructor.
html-plots GPL Alejandro Forero Cuervo Parsing files in wiki format and rendering them to HTML
html-stream GPL Alejandro Forero Cuervo Tiny, functional HTML generator, generating srfi-40 streams of characters
htmlprag LGPL-2.1 Neil W. Van Dyke A permissive HTML parser
http-server-form-posts Public Domain Moe Aboulkheir Extends http-server to handle multipart/form-data POSTs
http-session BSD Mario Domenech Goulart Facilities for managing HTTP sessions
idna BSD Zbigniew An interface to Internationalizing Domain Names in Applications
irnc-base BSD Tony Sidaway and Martin Sidaway Base package for the ironchicken bot framework for Mediawiki
memoize GPL-3 Alejandro Forero Cuervo Simple implementation of memoization.
mime BSD Shiro Kawai, ported to Chicken by Hans Bulfone Parse MIME Messages
phoghorn BSD Peter Bex A thumbnail gallery library for spiffy
scheme-dissect GPL Alejandro Forero Cuervo Functions useful to show Scheme code in an HTML file
spiffy BSD felix winkelmann Spiffy the web-server
spiffy-utils BSD Peter Bex Utility library for Spiffy
stream-cgi Public Domain Alejandro Forero Cuervo A library with functionality useful for creating applications that run under CGI using streams
stream-httplog GPL Alejandro Forero Cuervo Parser for Apache access_log files
stream-wiki Public Domain Alejandro Forero Cuervo Parsing files in wiki format and rendering them to HTML
svnwiki-archives GPL-3 Alejandro Forero Cuervo Generates lists of files by the time they were created. This is useful for weblogs and similar websites.
svnwiki-atom GPL-3 Alejandro Forero Cuervo Generates ATOM XML files.
svnwiki-chicken GPL-3 Alejandro Forero Cuervo Defines tags used by the Chicken wiki.
svnwiki-contributor GPL-3 Alejandro Forero Cuervo Shows the name of the person who contributed a file. Used for weblogs where multiple people contribute.
svnwiki-discuss GPL-3 Alejandro Forero Cuervo Handles discussions associated to wiki pages. Some of the logic for this is still included in Svnwiki.
svnwiki-edit-question GPL-3 Alejandro Forero Cuervo Requires anonymous users to answer certain questions, as a means to control spam.
svnwiki-enscript GPL-3 Alejandro Forero Cuervo Provides an enscript tag that provides syntax highlighting using GNU enscript.
svnwiki-extensions GPL-3 Alejandro Forero Cuervo Svnwiki's extension framework
svnwiki-folksonomy GPL-3 Alejandro Forero Cuervo Utilities for managing folksonomies. Shows the tags that pages have underneath them.
svnwiki-glossary GPL-3 Alejandro Forero Cuervo For directories containing a glossary where every page corresponds to one term, generates HTML views such as lists of all terms beginning by a given letter.
svnwiki-googlemap GPL-3 Alejandro Forero Cuervo Generates a map of pages, based on the svnwiki:location:latitude and svnwiki:location:longitude properties.
svnwiki-image GPL-3 Alejandro Forero Cuervo Handles images in Svnwiki repositories, providing a convenient way to view them.
svnwiki-javascript GPL-3 Alejandro Forero Cuervo Library of Javascript functions used by svnwiki extensions.
svnwiki-links GPL-3 Alejandro Forero Cuervo Provides links to certain popular websites (digg, del.icio.us, reddit) for registering pages there.
svnwiki-mail GPL-3 Alejandro Forero Cuervo Functionality for sending email notifications about changes to wiki pages.
svnwiki-math GPL-3 Alejandro Forero Cuervo Provides rendering of mathematical formulas using TexVC.
svnwiki-metadata GPL-3 Alejandro Forero Cuervo Svnwiki extension to handle metadata about pages in the wiki
svnwiki-nowiki GPL-3 Alejandro Forero Cuervo Adds the nowiki tag for including literal strings.
svnwiki-progress GPL-3 Alejandro Forero Cuervo Shows a progress bar for commits through the web interface.
svnwiki-rating GPL-3 Alejandro Forero Cuervo Provides means for users to rate pages according to their quality.
svnwiki-scheme GPL-3 Alejandro Forero Cuervo Allows users to embed Scheme code in wiki pages, executing it in a sandboxes environment.
svnwiki-tags GPL-3 Alejandro Forero Cuervo Defines the basic HTML tags.
svnwiki-translations GPL-3 Alejandro Forero Cuervo Support for translating wiki pages to multiple languages (eg. including links in a page to all the languages it is available on).
svnwiki-upload GPL-3 Alejandro Forero Cuervo Provides a form to allow users to upload binary files to the wiki.
svnwiki-weblog GPL-3 Alejandro Forero Cuervo Useful for managing weblogs inside the wiki repository (eg. renders the main page with the most recently-created files).
uri BSD Felix Winkelmann and Kon Lovett, with code taken from Aubrey Jaffers' SLIB URL (RFC 1739 & 3986) parsing
uri-generic BSD Ivan Raikov URI generic syntax (RFC 3986) parsing and manipulation.
uri-namespaces MIT Arto Bendiken Facilities for converting between prefixed symbols (such as 'dc:title) and absolute URI references (such as # .org/dc/elements/1.1/title>). This is useful e.g. for working with XML documents and RDF triples.
web-scheme BSD Mario Domenech Goulart Scheme for web programming
web-unity BSD Peter Bex Web app unification framework for CGI/SCGI/FCGI/Spiffy webservers
xml-rpc BSD felix winkelmann XML-RPC client/server

XML processing

Egg Licence Author Description
asxt LGPL-2.1 Neil van Dyke Another Scheme XML Transformer
doctype Public Domain Zbigniew Szadkoswski Exports strings corresponding to standard XML (XHTML, HTML) doctypes
expat BSD felix winkelmann An interface to James Clark's Expat XML parser
lazy-ssax Public Domain Dmitry Lizorkin A specialized lazy XML->SXML parser
rss BSD felix winkelmann A RSS parser
ssax Public Domain Oleg Kiselyov, ported to CHICKEN by Kirill Lisovsky, packaged as an extension by felix winkelmann Oleg Kiselyov's XML parser
sxml-match MIT Reed Sheridan Pattern matching of SXML
sxml-templates Public Domain Moe Aboulkheir A simple facility for subtituting values into SXML expressions
sxml-tools Public Domain Oleg Kiselyov, Kirill Lisovsky, Dmitry Lizorkin The sxml-tools from the SSAX project
sxml-transforms Public Domain Oleg Kiselyov The SXML transformations (to XML, SXML, and HTML) from the SSAX project at Sourceforge
xxexpr LGPL-2.1 Tony Garnock-Jones Manipulation of eXtended Xml EXPRessions

Documentation tools

Egg Licence Author Description
eggdoc BSD Zbigniew An egg documentation tool
eggdoc-svnwiki BSD Zbigniew Render eggdoc source to svnwiki syntax
eggdoc-texinfo BSD Zbigniew Render eggdoc source to Texinfo
man BSD Mario Goulart Access the manual from the REPL
mole Public Domain Kirill Lisovsky A literate programming tool for Scheme

Egg tools

Egg Licence Author Description
meta-setup BSD felix winkelmann A tool for various operations on a local CHICKEN extension repository
nest-tool BSD Mario Domenech Goulart Extension and command-line tool for extracting information from eggs repositories listings
salmonella BSD Mario Domenech Goulart A tool for testing eggs
versions BSD elf Procedures for extraction and comparison of version strings

Mathematical libraries

Egg Licence Author Description
SO31 GPL Will M. Farr Basic functions to manipulate SO(3,1) group elements.
atlas-lapack GPL-3 Ivan Raikov An interface to the LAPACK routines implemented in ATLAS.
blas BSD felix winkelmann An interface to level 1, 2 and 3 BLAS routines
complex BSD Thomas Christian Chust Support for complex numbers in Chicken
fpfz BSD Kon Lovett Floating-point Comparison With Epsilon
glpk GPL-3 Ivan Raikov An interface to GLPK (linear programming).
gmp LGPL-2.1 Peter Keller Bindings for the GNU Multiprecision Arithmetic Library
grobner-basis MIT Naruto Canada Grobner Basis
gsl-srfi-27 GPL Will M. Farr SRFI-27 library which uses the GSL behind the scenes to generate random numbers.
interp1d GPL Ivan Raikov One-dimensional numerical interpolation.
libsvm BSD daishi libsvm wrapper
lognum GPL-3 Ivan Raikov Logarithmic number system.
mapm Public Domain Peter Wang Binding to Mike's Arbitrary Precision Math Library
mathh Public Domain John Cowan and Kon Lovett ISO C math functions and constants
matpak BSD Norman Hardy, packaged by Terrence Brannon matrix multiplication, inverse, transpose, determinant, and vector inner product
matrix-utils GPL Ivan Raikov Generation of special utility matrices.
numbers BSD felix winkelmann Full numeric tower support
ode GPL-3 Ivan Raikov Numerical solver framework for systems of first-order differential equations (ODE).
predicate-calculus MIT Naruto Canada Predicate calculus with equality.
probdist GPL Ivan Raikov Probability distributions
unitconv GPL Ivan Raikov Conversion of units of measurement

Object-oriented programming

Egg Licence Author Description
c3 BSD Alex Shinn Implements C3 class linearization for TinyCLOS
meroon LGPL-1 Christian Queinnec, ported to CHICKEN by felix winkelmann A fast and feature-rich object system
modds BSD Thomas Chust A prototype based object system with multiple object dynamic dispatch
operations BSD felix winkelmann The object system from the T Lisp system
pos Free Use Blake McBride POS is a portable object system for Scheme
prometheus GPL-2 Jorgen Schaefer The Prometheus prototype-based object system
protobj LGPL-2.1 Neil van Dyke A prototype-delegation object model
tinyclos BSD Gregor Kiczales (ported to CHICKEN and heavily modified by felix and kon) Gregor Kiczales TinyCLOS object system
yasos SRFI Kenneth Dickey A very simple OOP system

Algorithms and data-structures

Egg Licence Author Description
amb BSD Thomas Chust The non-deterministic backtracking ambivalence operator
array-lib BSD Kon Lovett SRFI-25 Similar, SRFI-47, SRFI-63 & More
bit-cat BSD Ben Kurtz Bitstring Concatenator for u8vectors
bloom-filter BSD Kon Lovett Bloom Filter
box BSD Kon Lovett Boxing
charplot Free Use Aubrey Jaffer Character plots
coerce BSD Kon Lovett Type Coerce
date-info BSD Alaric B. Snell-Pym Converts dates from y/m/d or julian day number format into a number of formats and provides other useful data about that day
defstruct BSD Dorai Sitaram Another record-type facility
digraph GPL-3 Ivan Raikov Directed graph in adjacency list format.
disjoint-sets BSD elf procedures for operating on disjoint sets
dyn-vector GPL Ivan Raikov Dynamic (dense) vectors based on SRFI-43.
ftl LGPL-2.1 Sergei Egorov, partially reimplemented by felix winkelmann Interface based sequence library
ftl-peg BSD Thomas Chust Parsing expression grammars for FTL
graph-bfs GPL-3 Ivan Raikov Breadth-first search in a graph.
graph-cycles GPL-3 Ivan Raikov Enumerate all simple cycles in a graph.
graph-dfs GPL-3 Ivan Raikov Depth-first search in a graph.
graph-dominators BSD Richard Kelsey Find immediate dominators in a directed graph.
graph-scc GPL-3 Ivan Raikov Compute strongly-connected components (SCC) of a graph.
graph-separators BSD Richard Kelsey Determine the separation vertices of a graph.
graph-ssa BSD Richard Kelsey Compute static single assignment form of a graph.
iset BSD Alex Shinn Integer sets
kvlists MIT Arto Bendiken Provides keyword/value list (or key-value list, for short) operations.
lookup-table BSD Kon Lovett Simple Lookup Table
lzma BSD Alaric Snell-Pym A wrapper for the liblzma library, providing the excellent LZMA compression algorithm
metaphone BSD Kon Lovett Metaphone 'sounds like' algorithm
npdiff GPL-3 Ivan Raikov Compute the longest common subsequence of two sequences
orders GPL Alejandro Forero Cuervo Functions useful for defining orders (for sorting)
pairing-heap BSD Will M. Farr Persistent heap datastructure which is adaptive and supports O(1) merge.
plist-utils BSD Kon Lovett Provides property list operations
random-mtzig BSD Ivan Raikov An implementation of the MT19937 random number generator with Marsaglia and Tang's Ziggurat algorithm to generate random numbers from a non-uniform distribution.
random-swb GPL Ivan Raikov A random number generator based on the subtract-with-borrow (SWB) method.
random-test GPL Ivan Raikov Some simple randomness tests for a sequence of numbers.
rb-tree GPL-3 Ivan Raikov A sorted dictionary data structure based on red-black trees.
records Public Domain David Carlton, Aubrey Jaffer Procedural record-type interface
rgraph BSD Jonah Beckford A graph library for Scheme
sets Public Domain Alejandro Forero Cuervo Functions useful for working with sets
sfht GPL Ivan Raikov A dictionary data structure based on counting Bloom filters.
soundex LGPL Kyle R. Burton Implementation of the SOUNDEX phonetic string encoder.
sparse-vectors BSD Richard Kelsey and Jonathan Rees Arbitrarily large vectors
srfi-19 BSD Kon Lovett Time Data Types and Procedures
srfi-25 SRFI Jussi Piitulainen Multidimensional arrays
srfi-27 BSD Kon Lovett Sources of Random Bits
srfi-4-comprehensions SRFI Will Farr SRFI-42 Comprehensions for SRFI-4 Vectors
srfi-4-utils GPL Ivan Raikov Utility functions for SRFI-4 vectors.
srfi-40 SRFI Based on the original SRFI 40 reference implementation by Philip L. Bewig and Andre von Tonder, modified for Chicken by Category 5 SRFI-40 (Streams)
srfi-41 BSD Based on the original SRFI 41 reference implementation by Philip L. Bewig, modified for Chicken by Kon Lovett SRFI-41 (Streams)
srfi-42 SRFI Sebastian Egner SRFI-42 (Eager comprehensions)
srfi-47 BSD Aubrey Jaffer SRFI-47 arrays
srfi-66 BSD felix Octet vectors
srfi-67 BSD Sebastian Egner and Jens Axel Sogaard. For Chicken - Kon Lovett Compare Procedures
srfi-85 SRFI Will Clinger, modified for Chicken by John Cowan Recursive equivalence predicates
srfi-95 Public Domain Richard O'Keefe, modified for Chicken by John Cowan Sorting and merging
stack BSD Kon Lovett Provides LIFO queue (stack) operations
stream-ext Public Domain Alejandro Forero Cuervo A library of extensions to the SRFI-40 streams
topological-sort Public Domain Mikael Djurfeldt Topological sorting
treap GPL Oleg Kiselyov; packaged for Chicken Scheme by Ivan Raikov A sorted dictionary data structure based on randomized search trees.
ugarit BSD Alaric Snell-Pym A backup/archival system based on content-addressed storage
varsubst GPL-3 Ivan Raikov Generalized variable substitution semantics.
vector-lib Artistic Taylor Campbell, with CHICKEN-specific modifications by William S. Annis. Adapted to final version and bugs fixed by Zbigniew Szadkowski A port of the reference implementation of SRFI-43 with additions and fixes
wt-tree MIT-ish Reed Sheridan Weight-balanced trees
z3 BSD Oskar Schirmer and felix winkelmann A gzip (RFC1952) compression and decompression library

Data formats and parsing

Egg Licence Author Description
base64 BSD James Bailey Parsing and unparsing of base-64 strings
charconv BSD Alex Shinn Character encoding utilities
chasen BSD Alex Shinn Bindings to ChaSen Japanese Morphological Analyzer
content-type Public Domain Alejandro Forero Cuervo Parsing of Content-type headers
cookie BSD Reed Sheridan Parse and construct HTTP cookies
csv LGPL-2.1 Neil van Dyke Parsing comma-separated values
filepath BSD Ivan Raikov Cross-platform file path manipulation.
formular GPL-3 Ivan Raikov Processing of CGI email forms.
icalendar GPL-3 Ivan Raikov iCalendar (RFC 2445) parser.
iconv Public Domain Alejandro Forero Cuervo Character-set conversions
input-parse unknown Oleg Kiselyov. Ported to chicken by Shawn Wagner. input-stream tokenizing and parsing routines.
json MIT Tony Garnock-Jones A JSON library
lalr GPL Dominique Boucher An efficient LALR(1) parser generator
levenshtein BSD Kon Lovett Levenshtein edit distance
lexgen BSD Ivan Raikov Lexer combinators.
magic BSD Peter Busser Identifies file types
mat5-lib GPL-3 Ivan Raikov Reading and writing Level 5 MAT-File format.
mistie BSD Dorai Sitaram A programmable filter
mpeg3 Public Domain Alejandro Forero Cuervo Decodes several MPEG standards into uncompressed data suitable for editing and playback.
nemo GPL-3 Ivan Raikov Neuron model description language.
nnweave GPL-3 Ivan Raikov NeuroML to NEURON code transformation.
packedobjects BSD John P. T. Moore cross platform bit-stuffing based on Packed Encoding Rules
packrat MIT Tony Garnock-Jones A packrat parsing library
php-s11n MIT Arto Bendiken Serialization/unserialization of PHP data types.
plurals BSD Joshua B. Griffith Basic conversion of plural forms to singular forms
rfc3339 LGPL-2.1 Neil van Dyke RFC3339 Date and Time Format
rfc822 BSD Reed Sheridan Parse Internet Message Format
s11n BSD felix Serialization of arbitrary data.
scsh-regexp GPL-2 Dan Muresan Emulates SCSH regular expression API
silex BSD Danny Dubé An efficient and powerful lexer generator
stream-base64 Public Domain Alejandro Forero Cuervo Performs lazy encoding and decoding of streams of characters to and from Base64
stream-htpasswd Public Domain Alejandro Forero Cuervo Lazy parser and generator of Apache htpasswd password files.
stream-ldif Public Domain Alejandro Forero Cuervo Library to parse and produce files in the LDAP Data Interchange Format (LDIF) file format
stream-parser Public Domain Alejandro Forero Cuervo A stream-based parser
stream-sections GPL-2 Alejandro Forero Cuervo Split a document into sections and do useful things with the results.
tar BSD felix winkelmann Reading and writing tar archives
unicode-normalization BSD Adam C. Emerson Unicode normalization from scheme48.
utf8 BSD Alex Shinn Unicode support


Egg Licence Author Description
patch MIT Tony Sidaway Simple source patch utility
sbky BSD Angel Ortega, ported to Scheme by felix winkelmann A Scheme port of the `bky' version control system
sigma GPL-3 Ivan Raikov An image gallery generator.


Egg Licence Author Description
mpd-client BSD Hans Bulfone Interface to Music Player Daemon
openal BSD felix winkelmann OpenAL 1.1 bindings


Egg Licence Author Description
check SRFI Sebastian Egner SRFI-78 leightweight testing
embedded-test GPL-3 Alejandro Forero Cuervo A simple framework for unit tests that allows them to be embedded directly in programs' code
selenium Public Domain Robin Lee Powell A Selenium RC driver in Chicken Scheme.
test BSD Alex Shinn Yet Another Testing Utility
testbase BSD Kon Lovett Unit Testing Framework
testbase-driver BSD Kon Lovett Unit Testing Framework Test Runner
testbase-results BSD Kon Lovett TestBase Test Results Support
testeez LGPL-2.1 Neil van Dyke Simple Test Mechanism for Scheme


Egg Licence Author Description
crc BSD Daishi Kato Computes CRC checksum
crc16 BSD Ben Kurtz CRC16 Algorithm
crypt BSD Thomas Christian Chust Bindings to the cryptlib library
crypt3 BSD Thomas Christian Chust and Kon Lovett Bindings to the cryptlib library (for cryptlib 3.3.1)
hashes BSD Kon Lovett Miscellaneous Hash Functions
md5 GPL-2 Chistophe Devine (packaged for CHICKEN by felix winkelmann) Computes MD5 (RFC1321) checksums
message-digest BSD Kon Lovett Message Digest Support
ripemd BSD Kon Lovett RIPE Message Digest
sha1 GPL-2 Chistophe Devine (packaged for CHICKEN by felix winkelmann) Computes SHA1 (FIPS-180-1) checksums
sha2 BSD Aaron D. Gifford and Daishi Kato Computes 256-, 385- and 512-bit SHA2 checksums
tiger-hash BSD Kon Lovett Tiger/192 Message Digest

User interface toolkits

Egg Licence Author Description
PS-tk BSD Nils M Holm, Chicken port by Kon Lovett] PS-tk
bb BSD felix winkelmann An easy-to-use GUI toolkit based on FLTK
japi BSD felix winkelmann A set of bindings for the JAPI GUI toolkit
ncurses BSD felix winkelmann An interface to the UNIX ncurses package
qt BSD felix winkelmann A leightweight Qt 4 interface
slang MIT Tony Sidaway Bindings for slang text-based user interface library.
sx LGPL-2.1 Dominic Giampaolo, chicken interface by felix winkelmann Simple X programming
tk Bremer License Wolf-Dieter Busch An interface to the Tk GUI toolkit
xosd BSD felix winkelmann An interface to the XOSD (On Screen Display) library

Code generation

Egg Licence Author Description
crunch BSD felix winkelmann A restricted statically typed subset of Scheme
fp BSD felix winkelmann An interpreter/translator for a dialect of John Backus' FP language
inline BSD felix winkelmann Use compiled code inside interpreter scripts
lightning BSD felix winkelmann An interface to GNU Lightning
sassy LGPL-2.1 Jonathan Kraut A portable 32-bit assembler for x86 processors
tcc BSD felix winkelmann Accessing the Tiny C compiler from Scheme

Macros and meta-syntax

Egg Licence Author Description
alexpander BSD Al Petrofsky A syntax-rules macro-expander
riaxpander BSD Taylor R Campbell (with one file written by Jonathan A Rees) Flexible macro expander
simplify BSD felix winkelmann simplifies macroexpand code
syntactic-closures MIT Alan Bawden, Chris Hanson Hygienic macros with syntactic closures
syntax-case MIT R. Kent Dybvig, Oscar Waddell, Bob Hieb, Carl Bruggeman Portable syntax-case macro and module system


Egg Licence Author Description
advice BSD felix winkelmann `advise' functionality
args BSD Zbigniew Command-line argument handling, on top of SRFI 37
args-doc Free Use Ivan Shmakov Formatting GNU-style help messages
caketext Public Domain Robin Lee Powell A localization egg after Perl's Locale::Maketext
currency-converter GPL-3 Jean-Philippe Theberge Perform currency conversion
egg-post-commit BSD felix winkelmann Maintenance tool for egg repository management and upload
eopl Free Use various Support code for the book 'Essentials of Programming Languages'
files BSD Mario Domenech Goulart Basic procedures from the `files' unit for chicken versions < 3.4.0
free-gettext BSD Alex Shinn Binary-compatible flexible gettext reimplementation
gettext Public Domain Alejandro Forero Cuervo Wrapper around the gettext API for translating messages.
logging BSD Kon Lovett Logging Facility
logo Creative Commons Arthur Nunes-Harwitt A small Logo implementation
numspell LGPL-2.1 Neil van Dyke Spelling Numbers as English in Scheme
peep BSD felix winkelmann Explore the compiler's symbol database
regex-extras BSD Kon Lovett Access to PCRE Structures
runcmd BSD felix winkelmann Convenience macros for invoking shell commands
srfi-29 BSD Kon Lovett Localization
srfi-34 SRFI ben SRFI-34: Exception Handling for Programs
srfi-37 SRFI Anthony Carrico A simple and flexible command-line option parsing facility
stalin GPL-2 Jeffrey Mark Siskind, ported to CHICKEN by felix winkelmann An aggressively optimizing Scheme compiler
svn-client Public Domain Alejandro Forero Cuervo A wrapper around Subversion's libsvn_client C library.
svn-post-commit-hooks GPL Alejandro Forero Cuervo Convenience functions for creating applications that run as post-commit hooks for a Subversion repository.
tabexpand LGPL-2.1 Neil W. van Dyke Tab Character Expansion in Scheme
tool BSD felix winkelmann Simplified command-line parsing

Concurrency and parallelism

Egg Licence Author Description
futures BSD felix winkelmann Concurrent evaluation of expressions
mailbox BSD Felix Winkelmann and Kon Lovett Thread-safe queues with timeout
synch BSD Kon Lovett Synchronization Forms

Unsupported or redundant

Egg Licence Author Description
format Public Domain Dirk Lutzebeck Common-Lisp style formatted output
matcher BSD Andre van Tonder; ported to CHICKEN by Dale Jordan Match extension to srfi-57
oblist BSD felix winkelmann Obtain list of all interned symbols and variables
proplist BSD Kon Lovett Provides property list operations
r6rs-libraries SRFI Andre van Tonder and felix Simple, hygienic macros (SRFI-72 compliant) and R6RS (draft) libraries
simple-macros SRFI Andre van Tonder Simple, hygienic macros and portable modules (SRFI-72 compliant)
sqlite BSD Lars Rustemeier, with some modifications by felix winkelmann A wrapper for the SQLite database engine
srfi-57 SRFI Andre van Tonder SRFI-57 records
structures BSD felix winkelmann A module system inspired by SML structures and Taylor Campbell's lexmod module system
test-infrastructure BSD Peter Keller & Kon Lovett Unit-testing framework
url BSD felix winkelmann URL (RFC 1739) parsing