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 UtilitiesEdit

  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 ExtensionEdit

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

Data StructuresEdit

  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.


  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 processingEdit

  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 dataEdit

  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


  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.


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


  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 NetworkEdit

  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

Further readingEdit

  1. - An opinionated post on the state of the Common Lisp ecosystem, from 2015