The following modules and programs are primarily written in either Gauche Scheme, an interpreter with excellent I18N support, or the Chicken Scheme Compiler. They are of varying R5RS portability, though mostly you just need to change things like module definitions, at least until we get a standard module system.


Chibi-Scheme 0.11.0
A very tiny Scheme implementation with decent speed and native hygienic macros.

Common-Scheme 0.3
A portable module system, standard libraries, and easy peer-to-peer code sharing tool for Scheme.

Hato 0.3.5
A Mail suite including MTA, fetchmail replacement, multilingual spam classifier, Yahoo domain key verifier and other utilities.

Kishi 0.1
A simple chess program with both xboard support and an ASCII interface with optional ANSI graphics and Unicode character chess pieces.


irregex 0.9.11
A fully portable and efficient R[45]RS implementation of regular expressions, supporting both POSIX syntax with various (irregular) PCRE extensions, as well as SCSH's SRE syntax, all with Unicode support. DFA matching is used when possible, otherwise a closure-compiled NFA approach is used.

Combinator Formatting 0.8.5
An extensible formatting library based on passing closures, including shared structure support, pretty-printing, optimal text wrapping and columnated output, colored output, and utilities for easily generating or formatting C code.

Scheme Unicode 0.1
Initial Gauche library for Unicode properties as character sets, plus full locale-aware case mapping.

let-objects 0.5 -- updated Sun Aug 3 2003
A recursive letrec-like syntax for defining object hierarchies. Includes customized bindings for Gauche-gtk UI objects.

Scheme Version Control 0.3 -- updated Sun Aug 3 2003
Abstract bindings to any version control system. Currently supports CVS and Darcs.

Scheme Terminal Library 0.3 -- updated Sun Aug 3 2003
A pure Scheme library for VT100 terminal control, including convenious procedures for STTY, ANSI colors, and read-line.

Scheme Povray Interface 0.1 -- updated Fri Aug 27 2004
Generate 3D scenes in Scheme and output povray source files.

Scheme IRC Library 0.2
An IRC library and sample IRC server.

Huffman Encoding Library 0.2 -- updated Sun Aug 3 2003
A generalized huffman encoder that acts on sexps, with a (very slow) sample compression program.

General Modules

A fully portable hygienic pattern matcher backwards compatible with Andrew Wright's MATCH sytax. Also supports non-linear patterns, and ellipse patterns in a non-final position. Available as the "matchable" egg in Chicken. Simplified version in match-simple.scm, and version with some COND-EXPAND uses for features and efficiency in match-cond-expand.scm.

A powerful and extensible LOOP syntax in the spirit of named-let. This is the original version from the article at A more featureful version is available in the Chicken "loopy-loop" egg, and an alternate variation with slightly different syntax can be found at

term-optimizer.scm 0.4
A library for optimizing large arithmetic expressions using the distributed law, identities and common sub-expression elimination. Can output the result as an SEXP or as formatted C code. Also see fast-math.scm, which provides a FAST-MATH macro to automatically and safely optimize any arithmetic expression.

gettext 1.0
A full superset of GNU gettext, with many useful additions including the ability to load directly from .po files and cascade domains, under a BSD license. Packaged by default in Gauche as the text.gettext module, and available in Chicken as the free-gettext egg, this file tries to remain portable and contains instructions for porting to other implementations.

util.combinations 0.1
Library of combinations and permutations.

file.find 0.2
Convenient syntax for finding files.

util.history 0.1 -- updated Sun Sep 2 2003
General history library.

util.memoize 0.2 -- updated Sun Aug 3 2003
Automatically memoize procedures, including utilities for saving to files.

text.format 0.1 -- updated Sun Aug 3 2003
Text wrapping and columnating (like ls) procedures. 0.2 -- updated Sun Aug 3 2003
A simple Wiki parser, and parser only, with the intent that an actual Wiki would just use this as a backend. Uses Schemeish hypen-style wiki-words instead of the usual StudlyCaps which can become hard to read.


char-set.scm 0.1 -- updated Fri Dec 5 2003
A portable (SRFI-13 only) definition of all standard Unicode properties as char-sets.

Guile PLEAC 0.1
Translation to Guile Scheme of the Perl Cookbook as part of the PLEAC project. Uses POSIX exensions to Guile available in various forms in most Schemes.


grename 0.2 -- updated Fri Dec 5 2003
All-singing, all-dancing rename, similar to the Perl utility rename, but also supports charset conversions and kakasi romanization.

grecode 0.1 -- updated Sun Aug 3 2003
Recode interactive process I/O, in case you want to run a program in one encoding on a terminal in another.

goshwhich -- updated Sun Aug 3 2003
Locate the installed location of Gauche modules.