Current recommended libraries

Cliki contributors (that's you!) believe that the libraries on this page are considered "good enough for government use", and serve as a starting point when looking for a library covering a given field.

If you feel that a certain library should be written then please add it to Suggested Programming Projects or write it yourself.

A clean and up-to-date, yet rather subjective listing of recommended libraries can be found here

Library management / installation / Handling Packages

Quicklisp - A popular way of obtaining lisp libraries

asdf - System definition, aka Makefiles(in some implementation like sbcl, this is already installed by default)

Qlot is a project-local library installer using Quicklisp facility. This aims to be like Bundler of Ruby or Carton of Perl.

Roswell is a Lisp implementation installer/manager, library installer, script launcher, and much more !

Web development

See also Quickdocs

Frameworks and development tools:

Caveman - a lightweight, server independant, fully extensible web framework with database integration.

CL-Weblocks - a continuations based framework

ningle - a very lightweight web application framework using Clack

Clack - a wrapper API for HTTP requests/responses with multiple webserver backends. Inspired by Python's WSGI and Ruby's Rack

Hunchentoot - the de-facto standard HTTP web server

Woo - a fast libev-based async web server with worker thread support

Wookie - an async application/web server

Dexador - an HTTP/HTTPS client library with session management and more, aiming at replacing Drakma.

Plump - a markup parser, tolerant on malformed html. It can be queried with Lquery or Lcss.

CL-WHO HTML generator

Parenscript JavaScript compiler

css-lite is a library for generating CSS from an s-exp based syntax

quri URI library

CLSQL

CL-DBI Database independent interface for Common Lisp

postmodern: designed for PostgreSQL

hu.dwim.rdbms: nicer API than CLSQL; but not as many backends yet

hu.dwim.perec: the ORM of choice (if you're into ORMs at all...); based on hu.dwim.rdbms

Character encoding/decoding: flexi-streams - focus on features

Character encoding/decoding: babel - focus on speed

Character categories, etc: cl-unicode

Localization (number formats, etc): cl-l10n

HTTP server:HTTP client:HTTP parser:Utilities:SQL database connectivity:Internationalization (i18) and localization (l10n):

APIs to websites

Chirp A full Twitter API library

Humbler Easy Tumblr interaction

Game development

xelf - Formerly known as blocky. "Xelf extends Common Lisp with an Emacs-inspired 2D OpenGL game engine, a game project editor interface, and an integrated command shell" - http://www.xelf.me

General purpose utility libraries and commonly used libraries

alexandria — Collection of portable general purpose utilities. Used by a large number of other projects.

serapeum — A supplement to Alexandria, also conservative but less so.

iterate — A lispy and extensible replacement for the LOOP macro.

closer-mop — A popular compatibility library allowing portable access to the MOP across implementations.

Regular expressions: cl-ppcre — Popular and fast regular expressions engine.

Pattern Matching: trivia — ML-style pattern matcher.

Collections: lisp-interface-library is a collection of pure and stateful data structures in interface-passing style FSet is a functional set-theoretic collections package

Mathematics: GSLL is an interface to the GNU Scientific Library Maxima is a computer algebra system RCL is a interface to R

Compression: Salza2 is a Common Lisp library for creating compressed data in the ZLIB, DEFLATE, or GZIP data formats, described in RFC 1950, RFC 1951, and RFC 1952, respectively. It does not use any external libraries for compression. It does not yet support decompression. Chipz is a decompression library for decompressing DEFLATE (RFC 1951) data such as ZLIB (RFC 1950), GZIP (RFC 1952), as well as bzip2.



Common data formats

CXML namespace, validating, SAX, StAX, W3C DOM, XPath 1.0, XSLT 1.0

S-XML simple XML parser

XMLS simple XML parser

cl-json : A CLOS-extensible JSON parser and generator.

yason: Another extensible JSON parse and generator.

CL-CSV : a library to parse and write csv (comma-separated-values) files.

The book Practical Common Lisp implements an id3v2 parser, the source code can be found at its website

System and low level management

Threads: Bordeaux-Threads

Files and directories: UIOP

Sockets: usocket is under active development; includes trivial-sockets compatibility IOLib includes support for non-blocking IO (select, epoll, kqueue)

OS Interface: UIOP OSICAT or IOlib inferior-shell SHUT-IT-DOWN

Foreign language interface: CFFI. Supports almost all common lisp implementations on all platforms. SWIG can generate CFFI bindings from C/C++ header files

Memory management: trivial-garbage includes support for finalization and weak hash tables

Project managements

Logging:

Log4CL is high performance extensible logging library for Common Lisp

Unit Testing:

Graphics libraries

cl-gtk2

gtk-cffi GTK3 interface, in active development

CommonQt

ltk

CLIM

Graphical User Interface:

Graphical drawing library:

vecto < cl-vectors < zpng : writing vector graphics on PNG format.

cl-cairo2 : cairo binding for Common Lisp.

clinch : 3d-graphics engine built on-top of OpenGL

lispbuilder-sdl : Lispbuilder-SDL provides Common Lisp bindings for the SDL graphics library.

Audio

mixalot. Mixalot currently consists of a mixer component providing straightforward audio output on Linux (via ALSA) and other platforms (using libao), a CFFI binding to the libmpg123 library, and a helper component allowing playback of MP3 files through the mixer.

Encryption

Ironclad : A native Common Lisp package with support for several ciphers and hash functions

PRNG

MT19937 : a portable Mersenne Twister pseudo-random number generator. Has its own *random-state* and supports seeding from any integer.

Parallel, concurrent and async programming