Awesome Common Lisp Awesome Assertible status

A curated list of awesome Common Lisp libraries.

For awesome software, see lisp-lang.org's success stories and the awesome-cl-software list.

All libraries listed here are available from Quicklisp unless stated otherwise. The ones marked with a ⭐ are so widespread and solid that they became community standards. You can't be wrong with them. This is the case for Quicklisp, BordeauxThreads and such. Libraries denoted with a 👍 are the ones we like and want to promote here at the Awesome-cl list. They proved solid, they may solve a problem better than a community standard but they aren't as widespread, or not considered as stable. For example, we prefer Spinneret over Cl-Who.

Add something new! See the contributing section for adding something to the list.

This is released under the GNU Free Documentation License - its text is provided in the LICENSE file. This repository is also mirrored on NotABug - a fully-free (as in libre) alternative to Github. Preference is given to free software and sellers who aren't evil for physical resources.

Table of Contents

Audio

Build Systems

See also:

Compilers, code generators

APL

C, C++

Cryptography

Cryptocurrencies

See also legochain, a simple educational blockchain.

Database

ORMs

Persistent object databases

See also Clache, that can save any object on disk.

Graph databases

and also:

Wrappers

Migration tools

To third parties

Tools

Data Structures

Accessing data structures:

Other data structures:

Docker images

Foreign Function Interface, languages interop

C

Clojure

In development:

Cloture is in very early (pre-alpha) stages, but it has progressed far enough to load clojure.test, allowing the test suite to actually be written in Clojure.

See also those libraries:

Erlang

Java

Objective-C

Python

See also async-process.

.Net Core

Miscellaneous

For Emacs Lisp:

Game Development

Utilities:

Graphics

These are libraries for working with graphics, rather than making GUIs (i.e. widget toolkits), which have their own section.

Those are bindings:

GUI

For an overview and a tutorial on GUI toolkits, see the Cookbook/GUI.

But that's not all:

Other utilities:

See also this demo to use Java Swing from ABCL.

Mobile

See also MOCL below, CL as a library for mobile devices (iOS, Android and OSX) and hello-allien, SBCL built for an Android application (very new, 2023).

Implementations

Proprietary:

Other implementations, mainly for historical purposes:

You can check the implementations' compatibility to common extensions here: portability.cl.

JSON

See this extensive comparison of JSON libraries.

JSON tools:

YAML

Language extensions

Portability layers

A large list of portability layers is collected here: portability.cl/. Here are some of them:

Changing the syntax

For strings:

CLOS extensions

And also:

Function extensions

Iteration

Lambda shorthands

See also CL21 and Rutils.

Non-deterministic, logic programming

Reactive programming

Contract programming

Typing

See also:

Theorem provers

Learning and Tutorials

Online

Beginner

Intermediate

Advanced

Coding platforms

Web Development

Reference

Offline

The CLHS is available offline via an archive and as doc sets in Dash, Zeal and Velocity.

Beginner

Intermediate

Advanced

Other books

Community

Library Manager

see also:

might help:

Interfaces to other package managers

See also:

Machine Learning

Credit: borretti.me's State of CL Ecosystem 2015.

Natural Language Processing

Network and Internet

See Cliki for more.

HTTP clients

HTTP Servers

Hunchentoot plugins

See also:

Clack plugins

For routing, we can also use Snooze (see below).

Web frameworks

REST-focused frameworks:

See OpenAPI, OData and other libraries below.

Isomorphic web frameworks

Parsing html

Querying HTML/DOM

See also the XML section below for xpath libraries and more.

HTML generators and templates

URI handling

Javascript

In development:

Utilities for React:

See also:

Deployment

See also:

Monitoring

Websockets

Editor's note: at the time of writing, it seems we don't have a full-featured websocket implementation for Common Lisp. We can however recommend Portal, and we invite you to double-check the current issues of Hunchensocket and websocket-driver.

Web development utilities

Assets management

Browser tests

Form handling

User login and password management

See also mito-auth and the Hunchentoot and Clack plugins above.

Web project skeletons and generators

Others

Email

OpenAPI, OData, OpenRPC

Static site generators

Third-party APIs

Numerical and Scientific

Matrix libraries

Statistics

Units

Utils

Parallelism and Concurrency

See also:

Actors pattern

See also:

Event processing

Job processing

Regex

See also clj-re above.

Scripting

Writing, running scripts

Command-line options parsers

Readline, ncurses and other graphical helpers

Shells, shells interfaces

Lisp utilities:

System administration

Other scripting utilities

Text Editor Resources

This contains plugins and other goodies for various text editors.

Emacs

Vim & Neovim

Eclipse

Lem

Atom, Pulsar

Sublime Text

VSCode

JetBrains

Geany (experimental)

Notebooks

REPLs

Online editors

Apps

Text and binary parsers

Text Processing

See also:

Tools

These are applications or bits of code that make development in Common Lisp easier without being Common Lisp libraries themselves.

Unit Testing

See also:

Editor utilities:

For more: Sabra Crolleton's extensive test frameworks comparison.

Utilities

Caching

Compression / decompression

Configuration

CSV

Date and time

See also the book Calendrical calculations, by Edward M. Reingold, Nachum Dershowitz, Cambridge Press. It provides Lisp sources.

Data validation

Developer utilities

and also:

Documentation builders

See also:

An overview blog post with even more documentation generators: https://lisp-journey.gitlab.io/blog/overview-of-documentation-generators/

You might also like: literate programming systems.

Files and directories

File watching libraries:

Git

i18n

Linting, code formatting

and also: lisp-format and cl-indentify.

Literate programming

Logging

To third parties:

See also: extensive comparison of logging libraries.

Macro helpers

Markdown

PDF

Plotting

See also the chart facilities of IUP and ltk-plotchart (GUI section).

Project skeletons

Security

System interface

XML

Other

This contains anything which doesn't fit into another category.

Contributing

Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list.

The rules we (try to) respect are the followings: