Common Lisp/External libraries

Common Lisp libraries exist for many purposes. Here we will showcase a small sampling of mature, useful, and free packages available, showing some of the functionality they provide.

System Utilities

 * 1) /ASDF/ — Another System Definition Facility
 * 2) /clbuild/ — A script to update/install the latest versions of all the most important Common Lisp packages
 * 3) Roswell - An implementation installer and script launcher

Language Extension
These libraries add new control structures to the Common Lisp language.


 * 1) Serapeum - Another general-purpose utility library.
 * 2) rutils - radical yet reasonable syntactic utilities for Common Lisp.
 * 3) /Iterate/ — Easy and extensible iteration
 * 4) /Extended Binding/ — Pattern matching, anaphoric control structures, and more
 * 5) /Cells/ — A constraint based programming paradigm that operates in a way similar to spread sheets
 * 6) /Screamer/ — Efficient, nondeterminism for Common Lisp
 * 7) /FSet/ — Functional programming in Common Lisp
 * 8) generic-cl - Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…).
 * 9) cl21 An experimental project that brings more modern idioms into Common Lisp (unmaintained)

Data Structures

 * 1) /CL-CONTAINERS/ — A library for abstracting data structures details
 * 2) FSet - A functional, set-theoretic collections data structure library.
 * 3) cl-data-structures - a portable collection of data structures and algorithms (mainly dicts and sequences, with some statistical functions).
 * 4) cl-competitive - Common Lisp algorithms collection for competitive programming.

Database

 * 1) cl-dbi - A database independant interface
 * 2) postmodern - A library for interacting with PostgreSQL databases
 * 3) Mito - An ORM, with migrations, relationships and DB schema versioning
 * 4) Crane - An ORM, based on the CL Objects System, with migrations

Parsing and Text processing

 * 1) /CL-PPCRE/ — regular expressions library
 * 2) /CXML/ — An XML parsing library
 * 3) /CL-HTML-Parse/ — Parsing HTML
 * 4) /CL-YACC/ — A parser generator
 * 5) /CL-Walker/ — A Common Lisp parser for Common Lisp

Serialization and Persistent data

 * 1) /Serialization/ — serialization of Common Lisp data (via cl-serialization and cl-store)
 * 2) /ELEPHANT/ — A persistent object system
 * 3) /CL-Perec/ — A persistent object system

GUI

 * 1) /Ltk/ — Common Lisp interface to Tk (portable GUI library)
 * 2) /McCLIM/ — A Common Lisp GUI builder
 * 3) IUP- CFFI bindings to the IUP Portable User Interface library. IUP is cross-platform (Windows, macOS, GNU/Linux, with new Android, iOs, Cocoa and Web Assembly drivers), has many widgets, has a small api and is actively developed.

Graphics

 * 1) /Vecto/ — A library for drawing and rastering vector graphic images
 * 2) /CL-OpenGL/ — A set of GL, GLU, and GLUT bindings

Audio

 * 1) Open Music - a visual programming, computer-aided composition environment.
 * 2) CLM - Common Lisp Music is a music synthesis and signal processing package in the Music V family. It provides much the same functionality as Stk, Csound, SuperCollider, PD, CMix, cmusic, and Arctic — a collection of functions that create and manipulate sounds, aimed primarily at composers (in CLM's case anyway).
 * 3) Incudine -  Music/DSP programming environment for Common Lisp. Useful to design software synthesizers or sound plugins from scratch. It is also a compositional tool that allows to produce high quality sounds controllable at the sample level, defining and redefining the digital signal processors and the musical structures on-the-fly.

Web and Network

 * 1) Dexador — A full featured HTTP client (that aims at replacing /Drakma/)
 * 2) /Portable Allegro Serve/ — A fairly light weight, multithreaded, HTTP server
 * 3) /Hunchentoot/ — A Web application server written in Common Lisp
 * 4) Caveman - A fully featured web framework
 * 5) Plump - An html/xml parser, tolerant on malformed markup
 * 6) lquery - A jquery-like DOM/HTML manipulation library
 * 7) Djula - A port of Django templates
 * 8) Parenscript - A translator from Common Lisp to Javascript
 * 9) Wuwei - Examples on how to do Ajax in Lisp