awesome-cl
by CodyReichert
A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.
AI summary
Lisp library list
A curated collection of useful libraries and frameworks for Common Lisp programming
- stars
- 2.6K
- forks
- 193
- watching
- 111
- awesome lists
- 14
- entries
- 832
What's in the list
832 links in 283 sections, with live GitHub stats.activeno commit in 2y
Artificial Intelligence (AI, LLMs)
llama.cl
a Common Lisp port of Karpathy's llama2.c to idiomatic Common Lisp. MIT
- openai-openapi-client
semi-automatically generated Openapi client updated frequently from the . AGPL-3
cl-completions
LLM completions
cl-embeddings
LLM embeddings
cl-chroma
the vector DB interface
Caten
Deep Learning Compiler based on Polyhedral Compiler and Light-weight IRs, and Optimizing Pattern Matcher, written in Common Lisp
PAIP-lisp
Lisp code for the textbook
AIMA-lisp
Common Lisp implementation of algorithms from Russell and Norvig's "Artificial Intelligence - A Modern Approach"
Audio
OpenMusic
visual programming / computer-aided composition environment. . Developped at , France
OM7
a new implementation of the OpenMusic visual programming and computer-aided composition environment including a number of improvements on graphical interface, computational mode, and connection to external software libraries.
Audio / OM7
rq
an extension: - a library for rhythm transcription in OpenMusic (version 6.10 and later). .
Audio
- 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
- 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)
Audio / CLM
common-tones
a fork of CLM5 with modern Lisp (ASDF, cffi…).
Audio
Slippery Chicken
Algorithmic composition library which outputs Midi, Common Music Notation, pdf-score via Lilypond and sound via Common Lisp Music.
Audio / Slippery Chicken
- https://michael-edwards.org/sc/
with documentation:
Audio
Common Music
the repository of an ancient version of Common Music (version 2.12.0), the presumably last version which ran on Common Lisp dating from around 2007-09, before work on Common Music shifted to (scheme-based) cm3
Audio / Common Music
cm-incudine
extends Common Music 2 with realtime capabilities. GPL2
Audio
cl-patterns
a system for composing music via Lisp code, heavily inspired by SuperCollider’s patterns system, with aims to implement much of it, but in a more robust, expressive, consistent, reflective, and lispy way. Audio output through SuperCollider, with preliminary support for Incudine, and MIDI through ALSA
Music
A framework for musical expression in Lisp with a focus on music theory (built from scratch, unrelated to Common Music)
- Harmony
A real-time sound processing and playback system.
Audio / Harmony
cl-mixed
using for the mixing and sound processing library
Audio
easy-audio
a collection of audio decoders and metadata readers
scheduler
The time based musical event scheduler for Common Lisp.
- Common Music Notation
Common Music Notation (CMN) provides a package of functions to hierarchically describe a musical score. Public domain
osc
an implementation of the Open Sound Protocol.
cl-mpg123
, (OGG/Opus), (OGG/Vorbis), , (libout123),
csound
A sound and music computing system. Includes CFFI and FFI interfaces for Common Lisp
cl-collider
A client for CommonLisp. With a and . Public domain
cl-openal
bindings for the OpenAL audio library. Public domain
Build Systems
- ASDF
⭐ - Another System Definition Facility; a build system for Common Lisp. . Quicklisp (see ) uses ASDF under the hood
Build Systems / ASDF
- known ASDF extensions
, such as , that lets you specify systems that are automatically loaded when two other systems are loaded, to connect them
Build Systems
asdf-linguist
Extensions for ASDF.
asdf-viz
a tool to visualize the library dependencies of ASDF systems, the call graph of a function and the class inheritances.
modularize
A modularization framework for Common Lisp.
Compilers, code generators / APL
April
The APL programming language (a subset thereof) compiling to Common Lisp. Replace hundreds of lines of number-crunching code with a single line of APL.
Compilers, code generators / C, C++
cmacro
Lisp macros for C.
C-mera
a source-to-source compiler that utilizes Lisp's macro system for meta programming of C-like languages.
lispc
a powerful "lispsy" macrolanguage for C.
with-c-syntax
a fun package which introduces the C language syntax into Common Lisp. (Yes, this package is not for practical coding, I think.) WTFPL Licence
- ecrepl
an interactive REPL for the C language.
Software-Evolution-Library
The SEL enables the programmatic modification and evaluation of software (C/C++ support using Clang, compiled assembler, and linked ELF binaries).
vacietis
C to Common Lisp compiler.
Cryptography
crypto-shortcuts
Collection of common crypto shortcuts.
trivial-ssh
An SSH client library.
cl-ssh-keys
Common Lisp system for generating and parsing of OpenSSH keys.
cl-bcrypt
Common Lisp system for parsing and generating bcrypt password hashes.
Cryptography / cl-bcrypt
cl-pass
see also , using pbkdf2
Cryptography
- gpgme
(GnuPG Made Easy) is the standard library to access GnuPG functions from programming languages. It provides an official Common Lisp system
Cryptography / gpgme
- gpgme lisp sources
(not in Quicklisp). GPL2
Cryptography
cl-frugal-uuid
Common Lisp UUID library with zero dependencies.
Cryptocurrencies
- bitcoin-core-rpc
a (hopefully) complete Bitcoin Core RPC client
bp
Bitcoin Protocol components in Common Lisp.
cl-monero-tools
Common Lisp toolbox to work with the Monero cryptocurrency. . Not in Quicklisp
peercoin-blockchain-parser
parse the blockchain contained in a file and export some of its data to a text file, a SQL script or a database. It can also create a database using the RPC of a Peercoin daemon as source of data instead of a blockchain file. LGPL3. Not in Quicklisp
peercoin-calculator
This program gives you the probability of generating a POS or POW block within 10 minutes, 24 hours, 31 days, 90 days and 1 year, as well as the reward that can be expected. GUI in Qt. . Not in Quicklisp
peercoin-vote
A voting system based on data from the blockchain (addresses and balances). . Not in Quicklisp
stacks-api
a Stacks API client
Database
Database / endatabas
- roadmap
in development, alpha product scheduled for Q2 of 2024.
Database / ORMs
Database / ORMs / mito
mitho-auth
, a mixin class for use authorization
mito-attachment
, a mixin class for file management outside of RDBMS
Database / ORMs
cl-dbi
A database-independent interface for Common Lisp.
Database / ORMs / cl-dbi
dbd-oracle
an Oracle database driver for CL-DBI.
Database / ORMs
Database / Persistent object databases
bknr.datastore
a CLOS-based lisp-only database in RAM with transaction logging persistence. .
Database / Persistent object databases / bknr.datastore
- good introductory blog post
see also this
screenshotbot-oss
an example web application using bknr.datastore:
bknr.cluster
See also , if you want a highly-available replicated version of bknr.datastore
Database / Persistent object databases
ubiquitous
A library providing easy-to-use persistent configuration storage.
- cl-prevalence
in-memory database system. Implementation of Object Prevalence, in which business objects are kept live in memory and transactions are journaled for system recovery. .
Database / Persistent object databases / cl-prevalence
cl-prevalence-multimaster
See also , to syncronize multiple cl-prevalence systems state
Database / Persistent object databases
- cl-naive-store
a naive persisted, in memory (lazy loading), indexed, document store for Common Lisp.
Database / Persistent object databases / cl-naive-store
Database / Graph databases
- AllegroGraph
a high-performance, multi-model (document and graph), entity-event knowledge graph technology
Database / Graph databases / AllegroGraph
- hosted version
with a
Database / Graph databases
Database / Graph databases / neo4cl
cl-neo4j
and maybe: - a thin neo4j RESTFUL client interface
Database / Graph databases
vivace-graph
graph database & Prolog implementation. Takes design inspiration from CouchDB, neo4j and AllegroGraph. It implements an ACID-compliant object graph model with user-defined indexes and map-reduce views. It also implements a master / slave replication scheme for redundancy and horizontal read scaling. Querying the graph is accomplished via a number of Lisp methods or via a Prolog-like query language.
- restagraph
an app that dynamically generates REST APIs for a Neo4j database, using a schema defined within the database.
Database / Wrappers
- postmodern
⭐ - A library for interacting with PostgreSQL.
cl-sqlite
Bindings for SQLite. Public domain
cl-memcached
Fast, thread-safe interface to the Memcached object caching system.
cl-redis
Redis client.
cl-disque
Disque client.
cl-rethinkdb
RethinkDB client.
cl-mango
A minimalist CouchDB 2.x database client. BSD_3Clause
Database / Wrappers / cl-mango
- clouchdb
See also - Library for interacting with CouchDB.
Database / Wrappers
Database / Migration tools
cl-migratum
a system which provides facilities for performing database schema migrations, designed to work with various databases.
postmodern-passenger-pigeon
a migration manager for postmodern. No licence specified
Database / To third parties
dyna
an AWS DynamoDB ORM.
cl-influxdb
an interface to the Time Series Database InfluxDB.
pzmq
ZeroMQ 4.0+ Common Lisp bindings. Unlicense
Database / Tools
pgloader
⭐ - a data loading tool for PostgreSQL.
Database / Tools / pgloader
- Why is pgloader so much faster?
obligatory blog post: (hint: it was re-written from Python to Common Lisp)
Data Structures
Data Structures / FSet
- jfon
an extension: - an attempt at porting JZON (JSON parsing library) to FSet
Data Structures
sycamore
a fast, purely functional data structure library.
Data Structures / sycamore
- FSet vs. Sycamore
comparison:
Data Structures
trivial-extensible-sequences
Portability library for the extensible sequences protocol ( ).
bst
Binary Search Tree.
- pileup
a portable, performant, and thread-safe binary heap for Common Lisp.
cl-ctrie
- lock-free, concurrent, key/value index with efficient memory-mapped persistence and fast transient storage models.
cl-data-structures
a portable collection of data structures and algorithms (mainly dicts and sequences, with some statistical functions).
listopia
a list manipulation library inspired by Haskell's Data.List.
hash-set
a convenience library implementing hash sets on top of CL hash tables
bit-smasher
Common Lisp library for handling bit vectors, bit vector arithmetic, and type conversions.
- cl-containers
an extensive library of data structures and utilities - queues, trees, heaps, doubly-linked lists, sets, bags,
cl-competitive
Common Lisp algorithms collection for competitive programming. Public domain, CCO or MIT
nonempty
Non-empty collections for Common Lisp.
cl-hash-util
Hash-table creation, access, and manipulation utilities.
cl-permutation
Permutations and permutation groups in Common Lisp.
access
👍 - Consistent and nested access to most common data structures.
modf
a setf-like macro for functional programming
bitfield
Efficiently represent several finite sets or small integers as a single non-negative integer.
rope
Immutable Ropes for Common Lisp. MIT
- Pretty printing tree data structures in Common Lisp
(as a Jupyter notebook)
Docker images
- cl-docker-images
Docker images for ABCL, CCL, ECL, and SBCL on Windows (amd64) and Alpine and Debian (amd64, arm64, arm/v7)
base-lisp-image
base Docker image for Common Lisp projects with SBCL or CCL and the latest ASDF, Qlot and Roswell
archlinux-cl
Docker Arch Linux image with Common Lisp implementations (7 to this day). MIT
Foreign Function Interface, languages interop / C
CFFI
⭐ - Portable, easy-to-use C foreign function interface.
Foreign Function Interface, languages interop / C / CFFI
cffi-ops
helps write concise CFFI-related code
cffi-objects
enables fast and convenient interoperation with foreign objects
Foreign Function Interface, languages interop / C
cl-autowrap
👍 - Automatically parses header files into CFFI definitions.
cl-bindgen
A command line tool and library for creating Common Lisp language bindings from C header files.
cl-gobject-introspection
FFI. Automatic bindings to call into the C library. . Generate a lisp interface with .
cl-cxx-jit
Common Lisp and C++ interoperation with JIT.
Foreign Function Interface, languages interop / Clojure
ABCLJ
dead easy Clojure to Common lisp interop. EPL-2.0
Cloture
Clojure in Common Lisp
cl-oju
a few idioms, mostly relating to sequences, that I miss when writing Common Lisp.
clj-con
Clojure-style concurrency operations in Common Lisp.
clj-re
Clojure-style regular expression functions
clj-arrows
Clojure-compatible threading/transformation/arrow macros for Common Lisp
with-redefs
enables rebinding of global functions, inspired by Clojure's with-redefs
Foreign Function Interface, languages interop / Erlang
CLERIC
a Common Lisp Erlang Interface. An implementation of the Erlang distribution protocol, comparable with erl_interface and jinterface.
Foreign Function Interface, languages interop / Java
- cl+j
A JNI-based interface to a JVM via CFFI. Not available on Quicklisp. Does not reliably work with all implementations.
Foreign Function Interface, languages interop / Objective-C
objc-lisp-bridge
A portable reader and bridge for interacting with Objective-C and Cocoa.
Foreign Function Interface, languages interop / Python
burgled-batteries
A bridge between Python and Common Lisp. The goal is that Lisp programs can use Python libraries. Not available on Quicklisp.
cl4py
The library cl4py (pronounce as clappy) allows Python programs to call Common Lisp libraries.
py4cl
A library that allows Common Lisp code to access Python libraries. It is basically the inverse of cl4py.
Foreign Function Interface, languages interop / Python / py4cl
py4cl2
its fork , at first less stable, now more developped and faster
py4cl2-cffi
CFFI based alternative to py4cl2
Foreign Function Interface, languages interop / Python
cl-python
an implementation of Python in Common Lisp. , not under active development
Foreign Function Interface, languages interop / .Net Core
Bike
a cross-platform .Net Core interface.
Foreign Function Interface, languages interop / Miscellaneous
- Foil
A foreign object interface; works with the JVM and CLI. Not available on Quicklisp.
- CEDAR
an advance interactive development environment aiming to be Emacs compatible with all the features that come with it. (WIP)
- CLOCC's elisp.lisp
Emacs Lisp in Common Lisp
Game Development
Trial
Trial is an OpenGL game engine with a heavy focus on modularity. It is supposed to provide a large toolkit of useful bits and pieces from which you can create a game.
Game Development / Trial
- Kandria
the game is built with Trial
Game Development
- trivial-gamekit
– with this small framework you would be able to make simple 2D games: draw basic geometric forms, images and text, play sounds and listen to mouse and keyboard input.
- virality
A component-based game engine written in Common Lisp
- Xelf
Extensible game library. Not available on Quicklisp.
- cl-gamepad
Access to gamepads and joysticks on Windows, Mac OS, and Linux.
- cl-mpg123
and , bindings libraries for libmpg123 and libout123 respectively, giving you fast and easy to use mp3 decoding and cross-platform audio output.
Graphics
Sketch
⭐ - A CL framework for the creation of electronic art, graphics, and lots more.
cl-svg
A basic library for producing SVG files.
dufy
exact color manipulation and conversion in various color models.
opticl
a library for representing and processing images.
Varjo
Lisp to GLSL translator.
- Vecto
Simple vector drawing library.
- zpng
A library for creating PNG files.
pngload-fast
A PNG (Portable Network Graphics) image format decoder in portable Common Lisp with an emphasis on speed.
imago
image manipulation library for Common Lisp
cl-raylib
NEW in 2023 - fully auto-generated Common Lisp bindings to Raylib and Raygui using claw and cffi-object. Apache 2.0
glfw
NEW in 2023 - An up-to-date Common Lisp bindings library to the most recent GLFW OpenGL context management library
common-cv
the OpenCV (Open Source Computer Vision Library) binding library for CommonLisp. No license specified
cl-cairo2
Cairo bindings
- cl-gd
A library providing an interface to the GD graphics library.
cl-horde3d
FFI bindings to the Horde3D graphics library. Not available on Quicklisp
cl-liballegro
Interface and bindings to the Allegro 5 game programming library.
cl-opengl
CFFI bindings to OpenGL, GLU and GLUT APIs.
cl-sdl2
Bindings for SDL2 using C2FFI.
CLinch
Common Lisp 2D/3D graphics engine for OpenGL.
donuts
Graphviz interface for Common Lisp.
lispbuilder-sdl
A set of bindings for SDL.
lisp-magick-wand
ImageMagick bindings. . Not in Quicklisp
- okra
CFFI bindings to Ogre. Not available on Quicklisp.
cl-cuda
A library to use NVIDIA CUDA in Common Lisp programs.
GUI
- LispWork's CAPI
A portable GUI toolkit, with mobile runtime. Proprietary, but comes with a free version
- Allegro's Common Graphics
a library of functions for writing windowized GUIs for Windows, Mac and Linux. Proprietary with a free version
GUI / Allegro's Common Graphics
- runs in the browser
since Allegro 10.1 (March, 2022), the IDE and the Common Graphics toolkit
GUI
GUI / CommonQt
CommonQt5
bindings for Qt5
GUI
- ltk
⭐ - A binding for the Tk toolkit. or
GUI / ltk
- LTk Examples
Provides LTk examples for the tkdocs tutorial
- LTk Plotchart
A wrapper around the tklib/plotchart library to work with LTk. This includes over 20 different chart types (xy-plots, gantt charts, 3d-bar charts etc...)
GUI
- nodgui
Bindings for the Tk toolkit, based on Ltk, with syntax sugar and additional widgets.
GUI / nodgui
- tk custom themes
🎨 supports , such as and
GUI
IUP
CFFI bindings to the Portable User Interface library (pre-ALPHA)
cl-gtk4
🆕 - GTK4/Libadwaita/WebKit binding for Common Lisp.
cl-cffi-gtk
Binding for GTK+3.
GUI / cl-cffi-gtk
GUI
cl-gtk2
A binding for GTK+2.
GUI / for Electron, see:
Electron-lisp-boilerplate
a rudimentary boilerplate for building Electron apps that start a Lisp process
- ceramic
a wrapper around simpler tools to create and build an Electron app for Common Lisp. It is currently broken and unmaintained, but some tools are workth having a look at
GUI
CocoaInterface
- Cocoa interface for Clozure Common Lisp. Build Cocoa user interface windows dynamically using Lisp code and bypass the typical Xcode processes. It has
- McCLIM
An implementation of the Common Lisp Interface Manager, version II.
GUI / McCLIM
discussion
example project: a Lem editor CLIM interface: ,
GUI
cl-webkit
A binding to WebKitGTK+. Also adds web browsing capabilities to an application, leveraging the full power of the WebKit browsing engine.
ftw
A Win32 GUI library.
- eql, eql5, eql5-android
Embedded Qt4 and Qt5 Lisp, embedded in ECL, embeddable in Qt. Port of EQL5 to the Android platform.
GUI / eql, eql5, eql5-android
GUI
bodge-nuklear
Wrapper over the immediate mode GUI library.
vk
Common Lisp/CFFI bindings for the Vulkan API.
file-select
A library to invoke the native system file dialog to select or create files. Zlib
GUI / Mobile
- LispWork's mobile runtime
Android and iOs. Proprietary
- LQML
a lightweight ECL binding to QML (both Qt5 and Qt6) derived from EQL5. LGPL and public domain
sbcl-termux-build
Prebuilt SBCL binary for Android (Termux)
Implementations
- SBCL
⭐ - Steel Bank Common Lisp. A fork of CMUCL; compiles to efficient machine code. . Public domain, with some parts under and
Implementations / SBCL
sbcl-librarian
see also: - Dynamic library delivery tools for SBCL. Create shared libraries that can be called from C or Python. MIT. .
SBCL-GOODIES
Distributing binaries with Common Lisp and foreign libraries: libssl, libcrypto and libfixposix are statically baked in.
Nightly Windows builds of SBCL
Nightly builds of SBCL using MSYS2 UCRT64. See also
- SBCL on Chocolatey for Windows
(unofficial)
- Static Executables with SBCL
[WIP, 2021]
Implementations
Implementations / ECL
eclweb
is using Web Assembly (WASM)
Implementations
- ABCL
Armed Bear Common Lisp; targets the JVM, compiles to bytecode. . with
Implementations / ABCL
- abcl-memory-compiler
a way to compile Java source code to create Java classes at runtime with ABCL.
Implementations
CLASP
a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. (and others)
- LispWorks
an integrated cross-platform development tool for Common Lisp
- Allegro CL
provides the full ANSI Common Lisp standard with many extensions
- CMUCL
An implementation from Carnegie Mellon University. Public domain. SBCL is a fork of CMUCL
- GNU CLISP
A GNU implementation; contains a compiler and an interpreter. . . They develop
cl-all
A script to run Lisp snippets in multiple implementations. This allows you to quickly compare implementation behaviour and differences.
JSON
jzon
👍 - a correct, safe and fast JSON parser.
shasht
Common Lisp JSON reading and writing for the Kzinti.
NJSON
Parser-agnostic JSON indexing (with JSON Pointer support), destructuring, and validation framework.
json-mop
A metaclass for bridging CLOS and JSON objects.
cl-json-pointer
A JSON Pointer implementation.
cl-jwk
Common Lisp system for decoding public JSON Web Keys (JWK). BSD License
YAML
- cl-yaml
👍 - a YAML parser and emitter built on top of libyaml.
nyaml
A lisp native YAML parser. MIT
cl-yacclyaml
a pure lisp YAML processor (loader, but not yet dumper).
Language extensions
- alexandria
⭐ - A general-purpose utility library. Public domain
serapeum
👍 - Another general-purpose utility library.
rutils
radical yet reasonable syntactic utilities for Common Lisp.
generic-cl
Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…).
Language extensions / generic-cl
equals
see also the more lightweight
Language extensions
- anaphora
A collection of anaphoric macros. Public domain
arrow-macros
Clojure-like threading macros.
hu.dwim.walker
a code walker and unwalker (aka AST parser and unparser). . See also
Language extensions / Pattern matching
trivia
⭐ - Optimized pattern-matching library.
Language extensions / Portability layers
trivial-arguments
A portable library to retrieve the arguments list of a function.
definitions
a general definitions introspection library. It gives you the ability to retrieve definitions or bindings associated with designators such as symbols, packages, and names in general.
- dissect
when a lot of projects use the “trivial-backtrace” system that just gives them a string with a backtrace, Dissect allows you to capture, step, and completely inspect the stack trace on a variety of Lisp implementations. Also very useful for logging and other situations where execution is automatically continued, but the information of the current stack is still useful to store somewhere.
Language extensions / Portability layers / dissect
ndebug
Framework for portable GUI (or any non-standard) debuggers, based on and .
Language extensions / Changing the syntax
cl-annot
Python-like annotations for Common Lisp.
Language extensions / Changing the syntax / cl-annot
cl-annot-revisit
re-implementation of cl-annot. WTFPL
Language extensions / Changing the syntax
Language extensions / Changing the syntax / clamp
arc-compat
also - Arc compatible package. Perl Foundation's Artistic Licence 2.0
Language extensions / Changing the syntax
cl-interpol
⭐ - A set of reader modifications to allow string interpolation.
- mstrings
a reader macro to provide visually appealing multiline blocks. An M-string trims leading whitespace, concatenates lines together, etc.
pythonic-string-reader
A simple and unobtrusive read table modification inspired by Python's three quote strings.
cl-heredoc
a dispatcher. . Allows to write:
Language extensions / CLOS extensions
closer-mop
⭐ - A compatibility layer that rectifies many absent or incorrect MOP features.
specialization-store
generic functions based on types. Simplified BSD License variant
filtered-functions
enable the use of arbitrary predicates for selecting and applying methods.
inlined-generic-function
- Bringing the speed of Static Dispatch to CLOS.
static-dispatch
allows standard generic function dispatch to be performed statically (at compile time) rather than dynamically (runtime). This is similar to what is known as "overloading" in languages such as C++ and Java.
dynamic-mixins
simple, dynamic class combination.
fast-generic-functions
Seal your generic functions for an extra boost in performance.
polymorphic functions
A function type to dispatch on types instead of classes with partial support for dispatching on optional and keyword argument types. Still experimental (May, 2021).
defclass-std
a shortcut macro to write DEFCLASS and PRINT-OBJECT forms quickly.
nclasses
Syntactic sugar for class and generic function declarations. Features type inference, automatic accessors, inline initform syntax, automatic exports, and other conveniences.
slot-extra-options
lets you build a metaclass which in turn lets you specify extra slot options in its classes.
Language extensions / Function extensions
cl-hooks
Hooks extension point mechanism (as known, e.g., from GNU Emacs). LGPL
- method-hooks
When CLOS method combination allow only one hook per method, this library allows an arbitrary number of them. Mozilla Public Licence
cl-advice
an attempt of portable layer advice library for SBCL, CCL, LispWorks and Allegro. Not in Quicklisp
nhooks
an enhanced implementation of hooks (extension points) with crucial improvements
Language extensions / Iteration
- iterate
⭐ - An iteration construct for Common Lisp which is extensible and Lispier.
- for
A concise, lispy and extensible iteration macro. Unlike loop it is extensible and sensible, and unlike iterate it does not require code-walking and is easier to extend.
- series
Functional style without any runtime penalty at all.
trivial-do
Additional dolist style macros for Common Lisp.
doplus
– another extensible iteration library, similar to :for
- cl-transducers
Ergonomic, efficient data processing. . ( )
snakes
Python style generators for Common Lisp. Includes a port of itertools.
picl
An (almost) complete port of Python's itertools package, complete with laziness where applicable, and not relying on cl-cont.
- gtwiwtg
A lazy sequences library. Similar to 'series' but not as complete. However it has a 'modern' API with stuff like , , , , etc. that is easy to use
gmap
A concise and extensible iteration facility that has the advantage of integrating well with FSet (see the Data Structures section), as it was written by the same author. In Quicklisp as part of . Public domain
Language extensions / Lambda shorthands
fn
a couple of lambda shorthand macros. . Public domain
- f-underscore
a tiny library of functional programming utils. . Public domain
cl-punch
Scala-like anonymous lambda literals. .
Language extensions / Non-deterministic, logic programming
cl-prolog2
Common Interface to ISO Prolog implementations from Common Lisp.
Screamer
augment Common Lisp with practically all of the functionality of both Prolog and constraint logic programming languages. solving Project Euler puzzles.
Screamer+
increasing the expressiveness of SCREAMER.
- AP5
allows users to program in a model of first order logic or a relational database. 1989, updated 2024. Public domain
Temperance
logic programming. . A focus on performance, with General Game Playing in mind
Language extensions / Reactive programming
Language extensions / Contract programming
quid-pro-quo
a contract programming library in the style of Eiffel’s Design by Contract ™. Public domain
Language extensions / Typing
Coalton
👍 - an efficient, statically typed functional programming language that supercharges Common Lisp.
trivial-types
👍 - provides missing but important type definitions such as , , and .
- defstar
a collection of macros for easy inclusion of type declarations for arguments in lambda lists
algebraic-data-types
defining algebraic data types in a similar spirit to Haskell or Standard ML, as well as for operating on them.
typo
A portable type inference library for Common Lisp.
- PELTADOT
experimental: - PELTADOT Extends Lisp’s Types And Dispatches Over Them
Language extensions / Theorem provers
- ACL2
a logic and programming language in which you can model computer systems, together with a tool to help you prove properties of those models
Language extensions / Theorem provers / ACL2
- source
"Companies that have used ACL2 regularly include AMD, Centaur Technology, IBM, Intel, Kestrel Institute, Motorola/Freescale, Oracle and Rockwell Collins." ( )
Proofpad
, an online IDE for ACL2
ACL2-kernel
, a Jupyter Kernel for ACL2
- ACL2 Sedan
, an Eclipse plugin that provides a modern IDE for ACL2, used with students at universities
Language extensions / Theorem provers / ACL2 / ACL2 Sedan
Language extensions / Theorem provers
- PVS
NASA's , the Prototype Verification System, and , a collection of formal development libraries
Learning and Tutorials / Beginner
- Learn X in Y minutes - Where X = Common Lisp
Small Common Lisp tutorial covering the essentials
Lisp Koans
The project guides the learner progressively through many Common Lisp language features
- Practical Common Lisp
A good introductory text to Common Lisp, with practical examples
Learning and Tutorials / Beginner / Practical Common Lisp
a Firefox add-on: Practical-cl beautified
better read with
- Chinese simplified
translated in
Learning and Tutorials / Beginner
- Common LISP: A Gentle Introduction to Symbolic Computation
A nice introduction into the language
- Successful Lisp
A good book for beginners with some programming background
- Lisp Quickstart
A good tutorial to get up and code Common Lisp quickly
- Casting SPELs in LISP
A fun way to learn LISP while reading a comic book
- Common Lisp Programming: from novice to effective developer
📹 - A learning video series on the Udemy platform ( ). By an active lisper and community contributor (@vindarel).
- Loving Common Lisp, or the Savvy Programmer's Secret Weapon
Quick introduction to Common Lisp with many examples. A particular focus is on how to use Large Language Models (LLMs)
Learning and Tutorials / Intermediate
Lisp Tips
A blog with useful tips and tricks
- Lisp project of the day
A blog showcasing many Lisp libraries
- Part 1
A gentle introduction to Compile-Time Computing - , ,
Learning and Tutorials / Advanced
- Let Over Lambda
A book on advanced macro techniques. The first six chapters are available online
- On Lisp
Paul Graham's amazing book on Lisp macros (and other interesting things)
- Programming Algorithms in Lisp
Updated version of " "; A comprehensive guide to writing efficient programs with data structures and algorithms in Lisp
sbcl-wiki
an open wiki to document SBCL's internals
Learning and Tutorials / Coding platforms
- Codewars
a code training platform, with Common Lisp support (SBCL)
Learning and Tutorials / Web Development
- Section on Web Development in The Common Lisp Cookbook
An introductory tutorial covering web server setup, routing, weblocks, templating, error handling, packaging, hot reloading, database connection, and deployment, amongst other topics in the current lisp web development ecosystem
- Lisp for the Web
A book that walks you through building a voting web application in three tiers
- Lisp Web Tales
Simple tutorials using , , , , , and more
Learning and Tutorials / Reference
dpans2texi
also - the standard draft converted to Texinfo and published as a well formatted PDF
- Zenodo
the Common Lisp Document Repository is hosted at
Learning and Tutorials / Beginner
- Land of Lisp
A fun, game-oriented introduction to Common Lisp
- Practical Common Lisp
A good introductory text to Common Lisp, with practical examples
Learning and Tutorials / Intermediate
- ANSI Common Lisp
A thorough, practical covering of the entire language, with exercises. Not recommended as a starter text, due to
- Common Lisp Recipes
is a collection of solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. Published in 2015
Learning and Tutorials / Advanced
- Let Over Lambda
A book on advanced macro techniques. All eight chapters are available in the print copy
- Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS
An old, but very thorough book on CLOS
- Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
A book on programming AI that covers some advanced Lisp
Learning and Tutorials / Advanced / Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
- https://norvig.github.io/paip-lisp/
with a web version:
PAIP-lisp
Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
Learning and Tutorials / Advanced
Learning and Tutorials / Advanced / Norvig's Lisp style
Learning and Tutorials / Other books
- Building Problem Solvers
( ) by Ken Forbus and Johan de Kleer, made available for free by MIT Press - a unique book among standard artificial intelligence texts in combining science and engineering, theory and craft to describe the construction of AI reasoning systems, and including code illustrating the ideas
Learning and Tutorials / Community
- /r/Common_Lisp
subreddit about Common Lisp
- /r/learnlisp
a subreddit to ask questions and get help about Lisp
- #commonlisp
on Libera Chat - main Common Lisp IRC channel
- #lisp
on Libera Chat - IRC channel for all Lisp dialects
- Planet Lisp
A meta blog that collects the contents of various Lisp-related blogs
- Common Lisp chat
Keybase team with well-defined rules and retention policies
Library Manager
- Quicklisp
⭐ - A library manager containing many libraries, with easy depencency management.
Library Manager / Quicklisp
ql-https
shell out to cURL and use HTTPS by default
- Quicklisp bundles
self-contained sets of systems that are exported from Quicklisp and loadable without involving Quicklisp
Library Manager
ocicl
👍 (NEW! as of May, 2023) - a new and experimental alternative to Quicklisp, built on tools from the world of containers.
- Ultralisp
A Quicklisp distribution which updates every 5 minutes and to which one can add his project in one click.
Roswell
a Lisp implementation installer, script launcher and more.
Qlot
A project-local library installer, similar to Bundler or Virtualenv.
Library Manager / Qlot
use it from the Lisp REPL
how to without Roswell
Library Manager
- Quicksys
install systems from multiple Quicklisp distributions.
Quickutil
A utility manager, similar to Quicklisp, but for small utilities rather than whole libraries.
- CLPM
A package manager for Common Lisp that strives to cleanly separate the package manager process itself from the client image that uses it.
trivial-system-loader
A system installation/loading abstraction for Common Lisp
redist
facilities to produce Quicklisp distributions
quick-patch
easily override quicklisp projects without using git submodules. MPL-2.0
print-licenses
print licenses used by a project and its dependencies.
asdf-dependency-graph
A minimal wrapper around to generate an image of the dependencies graph
Library Manager / Interfaces to other package managers
- linux-packaging
build .deb, .rpm or .pkg packages for your application with a single ASDF declaration. Uses fpm under the hood.
qldeb
Quicklisp systems to debian packages, along with (simply create a debian package by defining an s-expression) and an introductory . Both
ql-to-deb
Update cl-* debian packages from Quicklisp releases. WTFPL
dh-quicklisp-buildapp
debhelper utility to let you compile your quicklisp-based Common Lisp code into a buildapp binary in a .deb with almost no effort.
cl-brewer
Homebrew formula builder for (command line) common lisp applications. Public domain
- flatpack-common-lisp
A BuildStream project for building Flatpak based runtime environments for Common Lisp applications
alien-works-delivery
WIP system for delivering Common Lisp applications as executable bundles. For now it only supports AppImage format for Linux and MSIX for Windows, but .APK for Android and later MacOSX and iOS bundle formats are planned too
cl-nix-lite
Common Lisp module for Nix, without Quicklisp
asdf-sbcl
, a plugin for the universal package manager
- this Youtube video
📹 (by 40ants, 2023) on how to use alien-works-delivery and linux-packaging
Machine Learning
MGL
a machine learning library for backpropagation neural networks, boltzmann machines, gaussian processes and more.
Machine Learning / MGL
- author
used by its to the Higgs Boson Machine Learning Challenge
- AI Challenge
more about the author: he also won the Google in 2010 using Common Lisp, but without MGL, as no machine learning was needed. A (59', 2013)
Machine Learning
Natural Language Processing
HTTP clients
HTTP Servers
- Hunchentoot
⭐ - A web server
Clack
👍 - A web application environment inspired by Rack and WSGI. . Provides a unified interface to a webserver of choice (default is Hunchentoot). With more
zaserve
A portable fork of AllegroServe, by Franz Inc.
wookie
Asynchronous HTTP server.
woo
A fast non-blocking HTTP server on top of libev.
cl-http2-protocol
a pure Common Lisp transport agnostic implementation of the HTTP/2 protocol at draft-14.
HTTP Servers / Hunchentoot plugins
easy-routes
👍 - a routes handling system on top of Hunchentoot. It supports dispatch based on HTTP method, arguments extraction from the url path, decorators, url generation from route name, etc.
hunchentoot-cgi
a library for executing CGI scripts from the hunchentoot webserver.
hunchentoot-multi-acceptor
Route multiple domains (virtual hosts) on a single hunchentoot acceptor using a single port.
hunchentoot-errors
Augments Hunchentoot error pages and logs with request and session information.
hunchentoot-stuck-connection-monitor
Monitors hunchentoot connections and logs the connections stuck in the same state for a long time
HTTP Servers / Hunchentoot plugins / hunchentoot-stuck-connection-monitor
- BSD_2Clause
offers an option to shutdown the stuck connections sockets manually or automatically, thus unblocking the connection threads and preventing thread and socket leakage.
HTTP Servers / Hunchentoot plugins
cl-tbnl-gserver-tmgr
Hunchentoot Gserver-based taskmanager. cl-gserver is an actor-like message-passing library (see below in "Actors pattern"). Experimental
HTTP Servers / Clack plugins
tiny-routes
A tiny routing library for Common Lisp targeting Clack.
clack-errors
Error page middleware for Clack.
clath
a single sign-on middleware for Clack. It allows basic login with OAuth1.0a, OAuth2 and OpenID. At the time of writing, it supports authentication from Google, Twitter, LinkedIn, StackExchange, Reddit and Github.
clack-pretend
a testing and debugging tool for clack.
hermetic
Security for Clack-based web applications.
live-reload
Live reload prototype for clack.
clack-static-asset-middleware
a cache-busting static asset middleware for the clack.
lack-expression-cache
lack middleware for compressing and caching static resources. MIT
lack-rerouter
lack middleware to reroute URIs of requests. MIT
- clack-cors
A Clack middleware to set CORS related HTTP headers. — Unlicense
- clack-promotheus
Clack middleware to serve stats in Prometheus format. Unlicense
Web frameworks
Web frameworks / ningle
jingle
based on ningle, adds bells and whistles, such as middlewares
Web frameworks
radiance
A web application environment and framework .
Snooze
👍 - A RESTful web framework. Web server agnostic. Currently has support for Hunchentoot and Clack. Routes are just functions and HTTP conditions are just Lisp conditions.
cl-rest-server
a library for writing REST web APIs. Features validation with schemas, annotations for logging, caching, permissions or authentication, documentation via Swagger, etc.
Web frameworks / Isomorphic web frameworks
CLOG
The Common Lisp Omnificent GUI. Uses web technology to produce graphical user interfaces for applications locally or remotely.
Weblocks (Reblocks)
A widgets-based framework with a built-in ajax update mechanism that "solves the JavaScript problem".
Web frameworks / Isomorphic web frameworks / Weblocks (Reblocks)
Ultralisp
example code bases: , , a dashboard made for a hackaton (2024) ( )
Web frameworks / Isomorphic web frameworks
Interactive SSR
ISSR allows you to make interactive web pages without writing client scripting. No knowledge about Javascript or DOM is necessary
- mold-desktop
a programmable desktop
- clog-moldable-inspector
[WIP] - A moldable Common Lisp object inspector based on CLOG. The inspector is thus shown in a Web browser
Parsing html
Plump
👍 - A lenient HTML/XML parser, tolerant on malformed markup. . Best used with and
cl-html5-parser
HTML5 parser for Common Lisp. GPL3.0
Parsing html / cl-html5-parser
example
compared to Plump: Plump is a mix of an XML and an HTML parser and breaks on some HTML rules ( ), while cl-html5-parser is a fully compliant HTML parser
Querying HTML/DOM, web scraping
HTML generators and templates
HTML generators and templates / Djula
cl-djula-tailwind
use TailwindCSS classe in your Djula templates without any JavaScript or Node.js tooling
djula-template-designer
a template designer tool
HTML generators and templates
TEN
the completness of Djula meets the usability of Eco.
eco
Fast, flexible, designer-friendly template engine.
cl-closure-template
Implementation of Google's Closure templates, where compiling a template creates a function that generates the result.
hsx
An easily composable HTML5 generation library with the most simplistic syntax.
- clip
An HTML template processor where the templates are written in HTML.
lsx
and - Two JSX-like templating engines, where HTML tags are Common Lisp code. comes with an Emacs package
URI and IP handling
quri
Another URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,…
cl-slug
a small library to make slugs, mainly for URIs, transform in CamelCase, remove accentuation and punctuation, for english and beyound.
netaddr
A network address manipulation library for Common Lisp. MIT
Javascript
- Parenscript
⭐ - A translator from Common Lisp to Javascript. . See , an Emacs mode that provides live interaction with the browser.
Javascript / Parenscript
paren6
a set of ES6 macros for Parenscript
paren-async
async/await for Parenscript
paren-jquery
Jquery-style macros for Parenscript. MIT
Javascript
JSCL
A CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop
- CL-JavaScript
A translator from Javascript to Common Lisp. Not available on Quicklisp.
- parse-js
A package for parsing ECMAScript 3.
remote-js
send JavaScript from Common Lisp to a browser.
sigil
A Parenscript to Javascript command line compiler and REPL.
Valtan
Common Lisp to JavaScript compiler
- JACL
an experimental Lisp system for the Web browser platform to explore new techniques for developing large Single Page Applications with Lisp
cl-react
Common Lisp (Parenscript) utilities for building web apps in ReactJs. MIT
Panic
, a Parenscript library for React. Not in Quicklisp. . Its
Parenscriptx
Parenscript Macros to aid generating react code.
jscl-react
A web framework for writing react components in common lisp using jscl. No license specified
trident-mode
, an Emacs minor mode for live Parenscript interaction
Deployment
- deploy
👍 - A toolkit for binary deployment of Lisp applications, with extra support for foreign shared libraries.
common-lisp-heroku-example
Example of Common Lisp server on Heroku using Docker
cube
Kubernetes client library for Common LISP generated from the Swagger specification.
s2i-lisp
Source-to-Image builder image based on CentOS or alternatively RHEL7 for building Common LISP images for OpenShift (and also Docker). It features an up-to-date SBCL with Quicklisp installation, SLIME or SLY integration and allows customization via environment variables
cl-aws-runtime-test
An example of using Common Lisp (SBCL) as a custom runtime on AWS lambda. WTFPL
40ants/ci
Highly opionated Github Actions workflow builder for Common Lisp projects
make-common-lisp-program
GitHub action to build an executable Common Lisp program on Ubuntu, MacOS and Windows. MIT
- Platform.sh
has Common Lisp support, so has through their Web PaaS partnership
- Heliohost
for a free hosting solution
- Cloud Init file for SBCL
an init file for providers supporting the cloudinit format (DigitalOcean etc)
Monitoring
prometheus.cl
Prometheus.io client. Grafana dashboard for SBCL and Hunchentoot metrics (memory, threads, requests per second,…).
Monitoring / prometheus.cl
prometheus-g
Extension for prometheus.cl which collects metrics about garbage collector state
Monitoring
cl-sentry-client
a Sentry client for Common Lisp, the cloud-based error monitoring system.
rollbar.lisp
interface to , an error tracking software
Websockets
usocket
👍 - A portable TCP and UDP socket interface.
Portal
Portable websockets for Common Lisp, using usocket.
clws
websockets server in CL, built on IOlib and libfixposix. No licence specified
Hunchensocket
RFC6455 compliant WebSockets for Common Lisp, as an extension to Hunchentoot.
websocket-driver
based on Clack
iolib
I/O library.
Web development utilities / Assets management
Rock
an asset manager for Common Lisp. It's basically a combination of Bower and webassets.
Web development utilities / Browser tests
cl-webdriver-client
a binding library to WebDriver (supports Selenium 4.0)
Web development utilities / Form handling
cl-forms
👍 - Web forms handling library for Common lisp.
Web development utilities / User login and password management
cas-middleware
CAS authenticaton middleware for Caveman
cas-demo
a demo project
Web development utilities / Web project skeletons and generators
make-like
an application template builder for LIKE (Lisp In Kubernetes + Emacs) applications.
cl-webapp-seed
a simple web application boilerplate. Uses Hunchentoot, cl-who, deploys easily to Heroku.
Others
css-lite
A CSS grammar.
find-port
Programmatically find open ports.
- cl-wget
Makes retrieving large files or mirroring entire websites easy.
trivial-download
Download files.
dns-client
DNS record client. See .
mobiledetect
System for detecting mobile devices (including tablets) in User-Agent strings. MIT
random-ua
Random User-Agent generator for Common Lisp. BSD_2Clause
Others / Email
trivial-imap
tries to make easy some common cases of working with IMAP servers, like reading emails from the server. A thin wrapper over post-office library (which is a fork of Franz's cl-imap).
Postmaster
A simple, easy-to-use SMTP/IMAP library.
- cl-smtp
CL-SMTP is a simple lisp smtp client
sendgrid
send emails with Sendgrid's API.
mailgun
A thin wrapper to post HTML emails through mailgun.com.
cl-ses
Library for AWS SES.
Others / OpenAPI, OData, OpenRPC
- openapi-generator
NEW! - OpenAPI client code generator.
apispec
A Common Lisp library for handling Web API requests and responses.
cl-odata-client
Common Lisp client library for accessing .
OpenRPC
OpenRPC implementation for Common Lisp.
jsonrpc
JSON-RPC 2.0 server/client for Common Lisp.
Others / Static site generators
coleslaw
and its - Flexible Lisp Blogware similar to Frog, Jekyll, or Hakyll.
Others / Third-party APIs
Aws-sign4
Common Lisp library for Amazon Web Services signing version 4.
aws-sdk-lisp
Provides interfaces for each AWS services as individual systems.
zs3
A library for working with Amazon's Simple Storage Service (S3) and CloudFront service.
- north
The successor to the South (Simple OaUTH) library, implementing the full oAuth 1.0a protocol, both client and server sides. Using North you can easily become an oAuth provider or consumer.
Ciao
an easy-to-use Common Lisp OAuth 2.0 client library. It is a port of the Racket OAuth 2.0 Client to Common Lisp.
avatar-api
Get avatars from Google+, Gravatar and others.
chirp
A Twitter client library.
tooter
a client library implementing the full v1 REST API protocol for Mastodon.
- cl-irc
An IRC client library.
cl-mediawiki
a wrapper around the MediaWiki api.
cl-openid
An implementation of OpenID.
cl-pushover
Common Lisp bindings to Pushover.
humbler
A Tumblr API interface.
multiposter
post to multiple services simultaneously.
stripe
a client for the Stripe payment system.
lisp-pay
Wrappers around various payment processors: Paypal, Stripe, Coinpayments and BTCPayServer.
lunamech-matrix-api
A complete wrapper over the Client -> Server Matrix API.
- cl-telegram-bot
Telegram bot API.
Others / Third-party APIs / cl-telegram-bot
cl-telegram-bot-auto-api
Alternative Telegram Bot API bindings, auto-generated from Telegram website.
Numerical and Scientific
- maxima
⭐ - Computer Algebra System.
Numerical and Scientific / maxima
- wxMaxima
: a graphical frontend
- Maxima on Android
, built with ECL
- SageMath
it can be used via and . Of course, with Emacs: ( ) and to ease the interface between Maxima and Common Lisp
- from a Lisp REPL
it can be used
Numerical and Scientific
numcl
Numpy clone in Common Lisp.
numericals
SIMD powered simple-math numerical operations on arrays for Common Lisp through CFFI [still experimental]. MIT
Numerical and Scientific / numericals
- https://digikar99.github.io/numericals/
documentation:
Numerical and Scientific
dense-arrays
Numpy like array object for common lisp. MIT
- GSLL
GNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp.
Xecto
A library for regular array parallelism.
Petalisp
an attempt to generate high performance code for parallel computers by JIT-compiling array definitions. It works on a more fundamental level than NumPy, by providing even more powerful N-dimensional arrays, but just a few building blocks for working on them.
cl-ana
Common Lisp data analysis library with emphasis on modularity and conceptual clarity. It aims to be a general purpose framework for analyzing small and large scale datasets, including binned data analysis and visualization.
avm
Efficient and expressive arrayed vector math library with multi-threading and CUDA support.
array-operations
a collection of functions and macros for manipulating Common Lisp arrays and performing numerical calculations with them.
cl-geometry
a system for two dimensional computational geometry for Common Lisp.
Vellum
Data Frames for Common Lisp. BSD_2Clause
rtg-math
a selection of the math routines most commonly needed for making realtime graphics in lisp (2, 3 and 4 component vectors, 3x3 and 4x4 matrices, quaternions, spherical and polar coordinates). BSD_2Clause
- linear-programming
– a library for solving linear programming problems.
shop3
a Hierarchical Task Network (HTN) AI planner. Mozilla Public License
Numerical and Scientific / Matrix libraries
magicl
Matrix Algebra proGrams In Common Lisp based on BLAS/LAPACK and Expokit, by Rigetti Computing.
lisp-matrix
A matrix package.
- 3d-matrices
A library implementing common matrix calculations, with an emphasis on 2x2,3x3, and 4x4 matrices as commonly used in graphics. It provides some numerical functions as well, but those are not the focus. The library is heavily optimised, so it is not made of pretty code.
clem
a matrix library.
Numerical and Scientific / Statistics
- lisp-stat
👍 - an environment for statistical computing, conceptually similar to R, that is also suitable for front-line production deployments. "It grew out of a desire to have an environment for rapidly prototyping analytical and A.I. solutions, and move directly to production environments with minimal friction."
Numerical and Scientific / Statistics / lisp-stat
- XLisp-Stat
inspired by Luke Tierney's (a predecessor of R), ships a compatibility library for it, otherwise builds on other and newer libraries
Numerical and Scientific / Units
physical-quantities
a library that provides a numeric type with optional unit and/or uncertainty for computations with automatic error propagation. GPL2
Numerical and Scientific / Utils
cmu-infix
A library for writing infix mathematical notation in Common Lisp. See also
Parallelism and Concurrency
- BordeauxThreads
⭐ - Portable, shared-state concurrency.
lfarm
distributing work across machines (on top of lparallel and usocket)
calispel
-like channels for common lisp. With blocking, optionally buffered channels and a "CSP select" statement. ISC-style
Parallelism and Concurrency / calispel
discussion
"It is complete, flexible and easy to use. I would recommend Calispel over Lparallel and ChanL." @Ambrevar
Parallelism and Concurrency
chanl
Portable, channel-based concurrency. , with parts under
cl-async
A library for general-purpose, non-blocking programming.
Moira
Monitor and restart background threads. In-lisp process supervisor.
- trivial-monitored-thread
- a Common Lisp library offering a way of spawning threads and being informed when one any of them crash and die.
cl-gearman
a library for the distributed job system.
swank-crew
distributed computation framework implemented using Swank Client.
cl-coroutine
a coroutine library. It uses the CL-CONT continuations library in its implementation.
STMX
High performance Transactional Memory for Common Lisp.
- Blackbird
a Promise implementation for Common Lisp
Parallelism and Concurrency / Blackbird
promise
see also - a basic promise datastructure, with timeouts. ZLIB
Parallelism and Concurrency
cl-etcd
Run etcd as an asynchronous inferior process. is a strongly consistent, distributed key-value store.
Parallelism and Concurrency / Actors pattern
Sento
👍 - Sento (formerly cl-gserver) is a 'message passing' library/framework with actors similar to Erlang or Akka. It supports creating systems that should work reactive, require parallel computing and event based message handling.
Actors
package for LispWorks ( )
lisp-actors
, an "ongoing investigation into the use of the Actor model in Common Lisp, which has had the benefit of real-world application"
Parallelism and Concurrency / Actors pattern / lisp-actors
Emotiq blockchain
it was part of the (a discontinued project)
Parallelism and Concurrency / Event processing
simple-tasks
A very simple task scheduling framework.
deeds
Deeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system.
cl-flow
Data-flowish computation tree library for non-blocking concurrent Common Lisp.
event-glue
simple eventing abstraction. No dependencies. It can be used anywhere you need a generic event handling system.
Parallelism and Concurrency / Job processing
- SBCL's timers
, system-wide event schedulers
psychiq
redis-based background job processing for Common Lisp applications. Inspired by Ruby's Sidekiq and compatible with its web UI.
cl-cron
A simple tool that provides cron like facilities.
clerk
a cron-like scheduler with sane DSL.
Regular expressions and string parsing
- cl-ppcre
⭐ - Portable, Perl-compatible regular expressions.
one-more-re-nightmare
a fast-ish regular expression compiler in Common Lisp.
rexxparse
A string parsing tool inspired by the REXX PARSE construct. MIT
Scripting / Running scripts
Scripting / Running scripts / ScriptL
- lserver
similar and maybe simpler:
Scripting / Running scripts
Scripting / Command-line options parsers
Scripting / Readline, ncurses and other graphical helpers
cl-readline
a set of functions to edit lines as they are typed in, to maintain a list of previously-entered command lines, to recall and reedit them and perform csh-like history expansion. Emacs and vi editing modes.
- Linedit
Readline-style library that provides customizable line-editing features.
cl-charms
an interface to in Common Lisp. It provides both a raw, low-level interface to libcurses via CFFI, and a more higher-level lispier interface.
replic
helpers to turn existing code into a readline application, with a focus on defining the completion of the commands' arguments. Also comes as a ready to use executable, that transforms a user's lispy init file into readline commands.
cl-ansi-term
print colorized text, horizontal lines, progress bars, (un)ordered lists and tables on ANSI-compliant terminals.
cl-progress-bar
progress bars, just like in Quicklisp !
Scripting / Readline, ncurses and other graphical helpers / cl-progress-bar
progressons
and , a progress bar on one line, for real an dumb terminals. MIT
Scripting / Shells, shells interfaces
Lish
may someday be a lisp shell.
shcl
a POSIX-like shell in Common Lisp.
Shelly
execute Common Lisp functions like a shell command, without the need to write a command line arguments parser. And it also can be used as a Make-like build-tool.
unix-in-lisp
Mount Unix system into Common Lisp image
cmd
utility for running external programs. Protects against shell interpolation, built with multi-threaded programs in mind, Windows support.
Scripting / Shells, shells interfaces / cmd
- CL Cookbook: running external programs
(synchronous) and (async) are shipped with ASDF and available on all modern implementations. See the
Scripting / Shells, shells interfaces
Clesh
extends Common Lisp to embed shell code in a manner similar to perl's backtick.
Scripting / System administration
- Consfigurator
Lisp declarative configuration management system. You can use it to configure hosts as root, deploy services as unprivileged users, build and deploy containers, and produce disc images.
cl-unix-cybernetics
(previously Adams) - UNIX system administration in Common Lisp. Not unlike Ansible, Chef or Puppet.
Scripting / Other scripting utilities
lqn
query language and terminal utility for querying and transforming Lisp, JSON and other text files. written in Common Lisp.
WCL
[stalled] - allow hundreds of Lisp applications to be realistically available at once, while allowing several of them to run concurrently. WCL accomplishes this by providing Common Lisp as a Unix shared library that can be linked with Lisp and C code to produce efficient applications. For example, the executable for a Lisp version of the canonical program requires only 20k bytes on 32 bit x86 Linux. WCL also supports a full development environment, including dynamic file loading and debugging. A modified version of GDB is used to debug WCL programs, providing support for mixed language debugging
Scripting / Other scripting utilities / WCL
- paper
a : "Delivering efficient Common Lisp applications under Unix"
Text Editor Resources
- Parinfer
Parinfer is a way to edit lisp code that helps to keep both the indentation and the parenthesis balanced. It is easy to start with and yet it offers advanced features à la Paredit. It is available on many editors (Emacs, Vim, Neovim, Atom, Sublime Text, Visual Studio Code, LightTable, CodeMirror,…)
Text Editor Resources / Emacs
Slime
⭐ - Superior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain
Sly
👍 - SLY is a fork of SLIME and contains multiple improvements upon it, such as Sly stickers
- Portacle
👍 - A portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git
Emacs4CL
A tiny Emacs initialization file to quickly set up vanilla Emacs for Common Lisp programming. Comes with a line-by-line explanation of every line of code in the initialization file
plain-common-lisp
A trivial way to get a native Common Lisp environment on Windows
- cl-devel2
a Docker container for Common Lisp development environment. Ships SBCL, CCL, Roswell and Emacs25 with Slime
Quicksearch
search for projects on GitHub, Quicklisp, Cliki and Bitbucket. MIT
slime-star
a SLIME configuration with extensions pre-installed, with also some custom utilities and menus:
Text Editor Resources / Emacs / slime-star
SLIME doc contrib
enhance the default help buffer
Quicklisp systems
Search, browse and load Quicklisp systems from Emacs
Slite
a test runner for FiveAM
Quicklisp-apropos
Perform queries across libraries in Quicklisp (full-text search on symbol names, classes, documentation…)
slime-critic
the lisp critic gently critiques your code for bad patterns
Text Editor Resources / Emacs
- sly-overlay
an extension for Sly that enables the overlay of Common Lisp evaluation results directly into the buffer in the spirit of CIDER (Clojure), Eros (Emacs Lisp) and the Lem editor
Text Editor Resources / Vim & Neovim
SLIMV
Superior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified
Vlime
VLIME: Vim plus Lisp Is Mostly Evil. A Common Lisp dev environment for Vim (and Neovim).
- quicklisp.nvim
A Quicklisp frontend for Neovim
Slimv_box
slimv in a Docker container
Text Editor Resources / Eclipse
Dandelion
a Common Lisp plugin for the Eclipse IDE
Text Editor Resources / Lem
Lem 2.0
, released on May, 2023, added the SDL2 frontend, thus mouse support, graphic capabilities and Windows support, among other new features
opengl frontend
see also: an , ,
Text Editor Resources / Atom, Pulsar
SLIMA
allows you to interactively develop Common Lisp code, turning Atom (or now Pulsar) into a pretty good, and actively developped, Lisp IDE.
Text Editor Resources / Sublime Text
- Sublime Text
(proprietary) has Common Lisp support with its SublimeREPL and packages. Slyblime is an implementation of SLY and it uses the same backend (SLYNK). It ships advanced features including a debugger with stack frame inspection
Text Editor Resources / VSCode
- commonlisp-vscode
an extension to support syntax highlight, auto completion, documentation on hover, go to definition, compile & load file, REPL. It is
alive
Common Lisp Extension for VSCode. Public domain
Text Editor Resources / VSCode / alive
- using VSCode with Alive
see the Cookbook:
Text Editor Resources / VSCode
- strict-paredit-vscode
structural editing and navigation like Emacs
Text Editor Resources / JetBrains
SLT
an IDE Plugin for Itellij/Jetbrains IDE lineup implementing support for Common Lisp via SBCL and Slime/Swank
Text Editor Resources / Geany (experimental)
Geany-lisp
is an experimental lisp mode for the editor
Text Editor Resources / Notebooks
common-lisp-jupyter
A Common Lisp kernel for Jupyter along with a library for building Jupyter kernels, based on Maxima-Jupyter by Robert Dodier which was based on cl-jupyter by Frederic Peschanski.
Text Editor Resources / Notebooks / common-lisp-jupyter
jupyterlab-debugger-restarts
restart functionality for the JupyterLab debugger
Cytoscape widget
Cytoscape.js widget for common-lisp-jupyter
Kekule widget
Kekule.js widget for common-lisp-jupyter
molecule viewer
A molecule viewer for JupyterLab using ngl
ngl widget
A ngl widget (protein viewer) for common-lisp-jupyter
sheet widget
Data grid widget for common-lisp-jupyter
Text Editor Resources / Notebooks
cl-jupyter
A Common Lisp kernel for Jupyter notebooks
Darkmatter
A notebook-style Common Lisp environment.
Text Editor Resources / REPLs
cl-repl
an ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. . With
sbcli
a readline REPL for SBCL. With completion, quick commands, optional syntax highlighting (with pygments), and no interactive debugger.
magic-ed
a tiny editing facility, where you can directly load, edit, manipulate and evaluate file or file content from the REPL, when going to a full IDE is too much.
Text Editor Resources / Online editors
- Judge0 IDE
is an online editor which supports Common Lisp (SBCL).
- Riju
, a "fast online playground for every programming language", supports Common Lisp (SBCL)
Text Editor Resources / Apps
- CodePlayground
an iPhone and iPad app with Lisp support via CCL
Text and binary parsers
esrap
⭐ - Packrat parser.
alexa
A Lexical Analyzer Generator.
cl-yacc
a LALR(1) parser generator.
cl-shlex
simple lexical analyzer for shell-like syntaxes.
smug
parser combinators for Common Lisp. SMUG makes it simple to create quick extensible recursive descent parsers without funky syntax or impenetrable macrology.
parseq
a library for parsing sequences such as strings and lists using Parsing Expression Grammars (PEGs). Inspired by Esrap. GPL2
uclp
An experimental implementation of parsing expression grammars (PEGs, a la Janet) in Common Lisp. MIT
lisp-binary
A library to easily read and write complex binary formats.
texp
A DSL to generate TeX.
Text Processing
mk-string-metrics
- Calculate various string metrics efficiently in Common Lisp (Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Levenshtein, etc).
wiki-lang-detect
- Text language identification using Wikipedia data. No license specified
cl-phonetic
Phonetic pattern matching library for Common Lisp (intended to replace the Sylvia library for Python).
cl-string-generator
Generate string from regular expression.
- trivial-sanitize
clean html strings: → .
Resolve
A software for AST-based diff calculation, display, and automated resolution. Written in C++ and CL, you'll find Lisp utilities
Tools
quicksearch
Look up online libraries from the REPL.
lake
a GNU make like build utility.
Unit Testing
FiveAM
⭐ - Simple regression testing framework.
Unit Testing / FiveAM
fiveam-matchers
an extensible, composable matchers library for fiveam.
Unit Testing
Parachute
An extensible and cross-compatible testing framework. With test dependencies, conditions, fixtures and restarts.
- CLUnit2
A unit testing library.
- Mockingbird
A small stubbing and mocking library for Common Lisp. Can also check wether a stubbed function was called, how many times and with which arguments.
cl-mock
Another mocking library. It has more features than Mockingbird, like pattern matching on the mocked call, etc
Check-it
A QuickCheck-style randomized property-based testing.
cl-coveralls
a helper library to post test coverage to Coveralls. See .
CheckL
Why write programs in Common Lisp but tests like Java? Meet CheckL!
- testieren
a testing utility where tests are included at the top of a form. They are run when you recompile your functions interactively. With mocking and stubbing support.
cl-hamcrest
a set of matchers that can be combined to create flexible expressions of intent. Helps make your unittests more readable by using assertions such as , , , , , …
Slite
a SLIme-based TEst runner for FiveAM Tests
Utilities / Caching
clache
General caching facility. Cache any Lisp object on disk or in memory. A cache can be persistent or have an expiration time.
function-cache
A Common Lisp function caching / memoization library.
Utilities / Compression / decompression
Utilities / Compression / decompression / archive
- cl-tar
see its recent fork (2021).
Utilities / Configuration
- py-configparser
👍 - reads and writes Python's ConfigParser-like configuration files.
envy
Configuration switcher.
chameleon
a configuration management library shipped with profile support.
Utilities / CSV
cl-csv
⭐ - A library for parsing CSV files.
cl-decimals
Decimal number parser and formatter. Public domain
auto-text
automatic (encoding, end of line, column width, csv delimiter etc) detection for text files. . See also for detection of asian and far eastern languages
csv-validator
Validates tabular CSV data using predefined validations, inspired from its Python homologue "Great Expectations".
Utilities / Date and time
- local-time
⭐ - A development library for manipulating date and time information in a semi-standard manner.
fuzzy-dates
A library to fuzzily parse date and time strings. Zlib
cl-date-time-parser
Parse date-time-string, liberally. Hides the difference between date-time formats, and enables to manage date and time as the one date-time format.
chronicity
A natural language date and time parse, to parse strings like "3 days from now".
local-time-duration
- Duration processing library built on top of local-time.
Utilities / Date and time / local-time-duration
humanize-duration
see this fork: , that outputs only significant parts of a duration object. Has localization suport
Utilities / Date and time
- iso-8601-date
Miscellaneous date routines in Common Lisp, based around the ISO 8601 string representation.
calendar-times
a calendar time library implemented on top of the LOCAL-TIME library. It features zoned calendar times and calculations
Utilities / Date and time / calendar-times
calendar-date
see also: - a Gregorian calendar date library.
Utilities / Date and time
periods
manipulating date/time objects at a higher level. With series-compatible data structure.
Utilities / Date and time / periods
Utilities / Date and time
stopclock
a library for measuring time using (stop)clocks. It allows you to create a clock, pause it, resume it and change its speed.
Utilities / Data validation
ratify
A collection of utilities to ratify, validate and parse inputs.
clavier
General purpose validation library for Common Lisp.
json-schema
A library for validating data against schemas of drafts 4, 6, 7, and 2019-09 of the standard.
sanity-clause
a data serialization/contract library for Common Lisp. Schemas can be property lists or class-based, allowing to check slots' types during .
cl-semver
Implementation of the Specification
Utilities / Developer utilities
repl-utilities
Ease common tasks at the REPL (print documentation, print external symbols, call hooks when loading a package,…).
flight-recorder
a robust REPL history facility
tracer
tracing profiler for Common Lisp, with output suitable for display in Chrome’s/Chromium’s Tracing Viewer.
cl-flamegraph
A wrapper around SBCL's statistical profiler, to generate FlameGraph charts for Common Lisp programs.
supertrace
Superior Common Lisp functionality for debugging/profiling. Trace many functions at once, use before and after hooks.
printv
A batteries-included tracing and debug-logging macro.
journal
a library for logging, tracing, record-and-replay testing and persistence. MIT
brake
An extended breakpoint facility for Common Lisp.
- GTFL
A graphical terminal for Lisp, meant for Lisp programmers who want to debug or visualize their own algorithms. A graphical trace in the browser. BSD-style
trivial-benchmark
Tiny benchmarking library.
Utilities / Developer utilities / trivial-benchmark
trivial-time
a similar macro ( ) is part of , providing support for more implementations (ABCL, Allegro, CCL, CLISP, ECL)
Utilities / Developer utilities
glyphs
A library for cutting down the verboseness of Common Lisp in places.
- Lisp REPL core dumper
- A portable wrapper to generate Lisp cores on demand to start REPL blazing fast. It can preload provided systems to help build a collection of specialized Lisp cores
Utilities / Documentation builders
Staple
a tool to generate documentation pages using an HTML template. Uses the existing README, adds docstrings, crossreferences and links to the CLHS.
mgl-pax
Exploratory programming environment and documentation generator. one may accomplish similar effects as with Literate Programming, but documentation is generated from code, not vice versa. Code is first, code must look pretty, documentation is code.
Utilities / Documentation builders / mgl-pax
40ants/doc
see this fork: a lighter core system, a JavaScript search index, multiple format output, HTML themes, RSS and Atom feed for the Changelog and more
Utilities / Documentation builders
- sphinxcontrib-cldomain
- Extending Sphinx to cover Common Lisp. To build documentation with the same ease as sphinx would a Python project
Codex
A beautiful documentation system for Common Lisp.
QBook
generates HTML (or LaTeX) formatted code listings of Common Lisp source files.
Declt
Reference manual generator for Common Lisp libraries. Builds a texinfo document that can be further processed into various formats, such as HTML or PDF. BSD
cl-bibtex
A compatible re-implementation of the BibTeX program in Common Lisp, with a BST-to-CL compiler.
docbrowser
a server that generates documentation for the loaded systems on the fly
cl-livedocs
similar and newer, based on Webinfo, with full text search enabled by default
Utilities / Files and directories
- uiop
⭐ and its package (replaces ). uiop is part of ASDF3 and as thus is shipped in many implementations.
pathname-utils
A collection of utilities to help with pathname operations.
Utilities / Files and directories / pathname-utils
filesystem-utils
deal with common problems with filesystems, such as listing files, probing file types, determining default directories, etc
file-attributes
access to common file attributes (uid, gid, permissions, ctime, mtime, atime)
Utilities / Files and directories
filepaths
Modern and consistent filepath manipulation for Common Lisp.
- osicat
A lightweight operating system interface on POSIX-like systems, including Windows (directory iteration and deletion, file permissions, file-type identification, etc)
- ppath
Common Lisp's implementation of the Python's os.path module.
mmap
Portable mmap file memory mapping utility library.
- fof
File-object finder Common Lisp library. Enable rapid file search, inspection and manipulation.
nfiles
File persistence, watching, data synchronization, (per user profile) path resolution, and structured data retrieval. Has pre-defined classes for configuration files, remote fetched files, data files, Lisp-readable files and many others.
file-notify
a cross-platform library for file change detection.
Utilities / Git
Utilities / i18n
- cl-i18n
an i18n library. Load translations from GNU gettext text or binary files or from its native format. Localisation helpers of plural forms.
gettext
a port of the gettext runtime to Common Lisp.
translate
seamless language localization. LLGPL
enchant
bindings for the Enchant spell-checker library. Public domain
oxenfurt
A client library for the Oxford dictionary API.
- language-codes
A database library for ISO language codes
- system-locale
A library to retrieve the user's preferred language, so that your application may choose a sensible default.
- multilang-documentation
Allows writing docstrings in multiple languages, for truly internationally documented libraries.
Utilities / Linting, code formatting
sblint
a linter for Common Lisp source code using SBCL, suited for Reviewdog ( ).
trivial-formatter
code formatter for Common Lisp.
Utilities / Literate programming
literate-lisp
Load Common Lisp code blocks from Emacs' Org files.
erudite
Literate Programming System built with interactive development in mind.
papyrus
Papyrus makes your markdown executable with the reader macro of Common Lisp
Utilities / Logging
Utilities / Logging / log4cl
log4cl-json
JSON appender extension.
Utilities / Logging
- verbose
A fast and highly configurable logging framework.
a-cl-logger
Logging library providing context sensitive logging of more than just strings to more than just local files or output streams. Features logstash support, json support, logger hierarchies, context sensitive logging, objects printed as an inspectable presentation,…
cl-fluent-logger
A Common Lisp structured logger for
Utilities / Macro helpers
easy-macros
an easy way to write 90% of your macros.
trivial-with-current-source-from
Helps macro writers produce better errors for macro users.
Utilities / Markdown
3bmd
a markdown -> html converter.
Utilities / PDF
cl-typesetting
and - cross-platform Common Lisp libraries for generating PDF files.
- cl-pslib
a (thin) wrapper around the library for generating PostScript files. Also .
Utilities / Plotting
vgplot
an interface to the gnuplot plotting utility with the intention to resemble some of the plot commands of octave or matlab.
eazy-gnuplot
a lispy, structure-less Gnuplot library. With its
kai
A high-level plotter library for Common Lisp. A wrapper around the JS library.
- ADW-Charting
A simple chart drawing library written completely in Common Lisp. Also includes a backend to Google's chart service. BSD-like
cl-text-plot
Plot with text in Common Lisp. No licence specified
cl-spark
sparkline strings for the console: => "▁▁▂▃▅▇".
Utilities / Project skeletons
cl-project
General modern project skeletons.
cl-project-with-docs
uses Sphinx and reStructured text to render nice and readable HTML documentation.
Utilities / Security
cl-isolated
A restricted environment for Common Lisp code evaluation
secret-values
A Common Lisp library to reduce the risk of accidentally revealing secret values such as passwords
Utilities / Security / secret-values
privacy-output-stream
an output stream that masks secret strings with , based on secret-values. MIT
Utilities / System interface
machine-state
Retrieve machine state information about CPU time, memory usage, thread processing time, etc
Utilities / XML
- CXML
XML parser and serializer, with a range of extension libraries.
Utilities / XML / CXML
FXML
see the fork, with fixes and new features. You should use it if your are parsing potentially ill-formed or malicious XML, or if you need to use Klacks with namespaces
Utilities / XML
Plump
A lenient XML parser.
- s-xml
A basic parser.
xmls
A small, simple, non-validating XML parser.
cl-feedparser
A Common Lisp (RSS, Atom) feed parser
Buildnode
A common lisp library to ease interaction with CXML-dom, such as building Excel spreadsheets.
lisp-xl
Common Lisp Microsoft XLSX (Microsoft Excel) loader for arbitrarily-sized / big-size files. MIT
- xlsx
a basic reader for Excel files
Utilities / Other
babel
A charset encoding/decoding library.
corona
Create and manage virtual machines from Common Lisp
fast-io
Fast octet-vector/stream I/O.
named-readtables
Provides a readtable namespace, akin to package namespaces.
simple-currency
A currency conversion library using daily information published by the ECB.
trivial-garbage
A portable finalizer, weak hash-table and weak pointer API. Public domain
- trivial-utf8
A small library for doing UTF-8-based I/O. BSD
Nothing in this list matches your filter.
Featured in 14 awesome lists
Each link jumps to the spot where the list mentions awesome-cl.
sindresorhus/awesome
bayandin/awesome-awesomeness
jnv/lists
emijrp/awesome-awesome
codyreichert/awesome-cl
azzamsa/awesome-lisp-companies
fleveque/awesome-awesomes
azzamsa/awesome-cl-software
erichs/awesome-awesome
bradoyler/awesome-all
gustavbertram/awesome-common-lisp-learning
oyvindrobertsen/awesome-awesome
coopermaa/awesome-awesome
0ex/more-awesome