curated-awesome-cl
by vindarel
A curated and non exhaustive list of Common Lisp libraries and resources.
AI summary
Lisp toolkit
A curated list of Common Lisp libraries and resources, focusing on beginner-friendly tools.
- stars
- 35
- forks
- 2
- watching
- 6
- awesome list
- 1
- entries
- 185
What's in the list
185 links in 59 sections, with live GitHub stats.activeno commit in 2y
Community
- Quickdocs
Ready and up to date documentation for all Common Lisp projects
Text Editor Resources / Emacs
Text Editor Resources / Vim
SLIMV
Superior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified
Text Editor Resources / Atom
SLIMA
allows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE.
Text Editor Resources / VSCode
alive
Common Lisp Extension for VSCode. Public domain
Text Editor Resources / VSCode / alive
- using VSCode with Alive
see the Cookbook:
Text Editor Resources / Notebooks
cl-jupyter
A Common Lisp kernel for Jupyter notebooks
Text Editor Resources / REPLs
Implementations
- SBCL
A fork of CMUCL; compiles to machine code. . Public domain, with some parts under and
- Clozure Common Lisp
, for its fast compilation time, and to use on 32bits Raspberry Pi
Build Systems
- ASDF
it's the de-facto build system shipped with the implementations
Library Manager
- Quicklisp
library manager
- Ultralisp
A quicklisp distribution that builds every five minutes (instead of one month for Quicklisp), and requires 3 clicks to add your project to it (instead of opening an issue and waiting for Quicklisp)
Roswell
A Lisp implementation installer, script launcher and more
qlot
A project-local library installer, similar to Bundler or Carton
Tools
quicksearch
Look up online libraries from the REPL.
HTTP clients
Dexador
An HTTP client:
Web frameworks
- https://common-lisp-libraries.readthedocs.io/hunchentoot/
Hunchentoot documentation on a "read the docs" style:
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
Caveman
A powerful web framework
Wookie
Asynchronous HTTP server.
Snooze
A RESTful web framework, built on Clack, where routes are just functions and HTTP conditions are just Lisp conditions.
radiance
An extensible framework library and multi-application CMS
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.
Weblocks
A widgets-based framework with a built-in ajax update mechanism that "solves the JavaScript problem".
HTTP Servers
- Hunchentoot
the CL web server
Clack
A web application environment inspired by Rack and WSGI
wookie
Asynchronous HTTP server.
woo
A fast non-blocking HTTP server on top of libev.
clack-errors
Error page middleware for Clack.
hermetic
Security for Clack-based web applications.
Parsing html
Plump
A lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and
Querying HTML/DOM
lquery
A jQuery-like HTML/DOM manipulation library.
HTML generators and templates
URI handling
Javascript
Parenscript
A translator from Common Lisp to Javascript.
- parse-js
A package for parsing ECMAScript 3.
JSCL
A CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop
sigil
A Parenscript to Javascript command line compiler and REPL.
Third-party APIs
Aws-sign4
Common Lisp library for Amazon Web Services signing version 4.
- 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.
avatar-api
Get avatars from Google+, Gravatar and others.
chirp
A Twitter client library.
- cl-irc
An IRC client library.
- cl-openid
An implementation of OpenID.
cl-pushover
Common Lisp bindings to Pushover.
cl-ses
Library for AWS SES.
humbler
A Tumblr API interface.
XML
JSON
jonathan
A JSON encoder and decoder.
CSV
cl-csv
A library for parsing CSV files
Database and ORMs
mito
An ORM for Common Lisp with migrations, schema versioning, relationships, PostgreSQL support
- postmodern
A library for interacting with PostgreSQL
Interaction with other languages / Python
Graphics
cl-cairo2
Cairo bindings
- cl-gd
A library providing an interface to the GD graphics library.
cl-opengl
CFFI bindings to OpenGL, GLU and GLUT APIs.
cl-sdl2
Bindings for SDL2 using C2FFI.
- cl-svg
A basic library for producing SVG files.
- FreeBSD
[CLinch][63] - Common Lisp 2D/3D graphics engine for OpenGL.
donuts
Graph drawing DSL for Common Lisp.
lispbuilder-sdl
A set of bindings for SDL.
- Vecto
Simple vector drawing library.
- zpng
A library for creating PNG files.
GUI
- ltk
A binding for the Tk toolkit. or
- nodgui
Bindings for the Tk toolkit, based on Ltk, with syntax sugar and additional widgets
IUP
CFFI bindings to the Portable User Interface library (pre-ALPHA). 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
Qtools
A Qt4 toolkit, based on CommonQt
- ceramic
Desktop web apps with Common Lisp.
GUI / ceramic
Electron-lisp-boilerplate
A rudimentary boilerplate for building Electron apps with embedded Lisp helper processes
electron-sbcl-sqlite
Electron app skeleton:
GUI
- LispWork's CAPI
A portable GUI toolkit, with mobile runtime. Proprietary, but comes with a free version
Numerical and Scientific
cl-spark
Generates sparkline strings for lists of numbers.
- GSLL
GNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp.
- 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 / lisp-stat
- XLisp-Stat
ships Luke Tierney's (a predecessor of R) as well as newer libraries
Numerical and Scientific
common-lisp-stat
Common Lisp statistics library.
lisp-matrix
A matrix package.
- maxima
Computer algebra system. Not available on Quicklisp.
Parallelism and Concurrency
- BordeauxThreads
Portable, shared-state concurrency.
lparallel
A library for parallel programming.
lfarm
distributing work across machines (on top of lparallel and usocket)
cl-async
A library for general-purpose, non-blocking programming, built on (the library that powers Nodejs).
chanl
Portable, channel-based concurrency. , with parts under
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.
Parallelism and Concurrency / Actors pattern
cl-gserver
an Erlang inspired GenServer. It is meant to encapsulate state, but also to execute async operations. Also with actors. Functionality regarding state is not unsimilar to Clojure's Agent or cl-actors.
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
cl-cron
A simple tool that provides cron like facilities
clerk
a cron-like scheduler with sane DSL.
Regex
- cl-ppcre
Portable, Perl-compatible regular expressions.
one-more-re-nightmare
a fast-ish regular expression compiler in Common Lisp.
Unit Testing
FiveAM
Simple regression testing framework
- 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.
Check-it
A QuickCheck-style randomized property-based testing.
cl-coveralls
a helper library to post test coverage to Coveralls. See and .
Continuous Integration
a tutorial
Travis CI: we can use Roswell on Travis CI: see (cl-travis doesn't work with Travi's Docker based architecture)
Utilities / Language extensions
- alexandria
A general-purpose utility library
serapeum
Another general-purpose utility library
rutils
radical yet reasonable syntactic utilities for Common Lisp
trivia
Optimized pattern-matching library.
generic-cl
Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…). . See also the more lightweight .
- FSet
A functional, set-theoretic collections data structure library.
trivial-types
Trivial type definitions.
- cl-algebraic-data-type
A library for defining algebraic data types in a similar spirit to Haskell or ML.
Utilities / Changing the syntax
pythonic-string-reader
A simple and unobtrusive read table modification inspired by Python's three quote strings.
cl-reader
A utility library intended at providing reader macros for lambdas, mapping, accessors, hash-tables and hash-sets.
Utilities / Iteration
- iterate
An iteration construct for Common Lisp which is extensible and Lispier.
Utilities / Iteration / iterate
Utilities / Iteration
- 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
trivial-do
Additional dolist style macros for Common Lisp.
- doplus
– another extensible iteration library, similar to :for
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
Utilities / 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. .
Utilities / I/O
iolib
I/O library.
fast-io
Fast octet-vector/stream I/O.
- trivial-utf8
A small library for doing UTF-8-based I/O. Not available on Quicklisp. No license specified
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 .
Utilities / Date and time
- localtime
A development library for manipulating date and time information in a semi-standard manner.
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.
- iso-8601-date
Miscellaneous date routines in Common Lisp, based around the ISO 8601 string representation.
calendar-date
a Gregorian calendar date library.
periods
manipulating date/time objects at a higher level. With series-compatible data structure.
Utilities / Logging
log4cl
Logging framework modelled after Log4J
Crypto
- Ironclad
A library of crypto functions for Common Lisp. Not considered secure, but is still useful for the message digest functions.
crypto-shortcuts
Collection of common crypto shortcuts.
Learning and Tutorials
Learning and Tutorials / Beginner
- Learn X in Y minutes | Where X = Common Lisp
Small Common Lisp tutorial covering the essentials
- Practical Common Lisp
A good introductory text to Common Lisp, with practical examples
- Common LISP: A Gentle Introduction to Symbolic Computation
A nice introduction into the language
- Learn LISP: Simply Easy Learning
A good set of introductory tutorials; includes interactive examples
Common Lisp Koans
The project guides the learner progressively through many Common Lisp language features
Learning and Tutorials / Intermediate
Common Lisp tips
A collaborative resource with useful tips and tricks
- Common Lisp programming: from novice to effective developer
📹 , a video course tutorial on the Udemy platform, by me (@vindarel) (CL Cookbook, lisp-journey) ( , some free videos)
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)
Learning and Tutorials / Reference
- Common Lisp Quick Reference
A distilled, pocket-size version of the ANSI CL spec. Available for download as a PDF
- CLHS
The Common Lisp HyperSpec; the ANSI CL standard, in hypertext form
- Common Lisp the Langauge
The original standard for Common Lisp before the ANSI spec
- Minispec
A friendlier, but less-complete, version of CLHS. Also contains documentation for some commonly-used CL libraries (such as Alexandria)
- Quickdocs
A reference for the libraries provided by Quicklisp
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
Common Lisp Koans
The project guides the learner progressively through many Common Lisp language features
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
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
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions curated-awesome-cl.