curated-awesome-cl

Lisp toolkit

A curated list of Common Lisp libraries and resources, focusing on beginner-friendly tools.

A curated and non exhaustive list of Common Lisp libraries and resources.

GitHub

35 stars
6 watching
2 forks
last commit: about 4 years ago
Linked from 1 awesome list


Community

Common Lisp Cookbook
Reddit
QuickdocsReady and up to date documentation for all Common Lisp projects

Text Editor Resources / Emacs

PortacleA portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git
SLIME1,918almost 2 years agoSuperior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain

Text Editor Resources / Vim

SLIMV456almost 2 years agoSuperior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified

Text Editor Resources / Atom

SLIMA62about 3 years agoallows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE.

Text Editor Resources / VSCode

alive211almost 2 years agoCommon Lisp Extension for VSCode. Public domain

Text Editor Resources / VSCode / alive

using VSCode with Alivesee the Cookbook:

Text Editor Resources / Notebooks

cl-jupyter199almost 7 years agoA Common Lisp kernel for Jupyter notebooks

Text Editor Resources / REPLs

cl-repl153about 5 years agoan ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. . With
sbcli95over 2 years agoa simple readline REPL that doesn't get in your way. It doesn't have a debugger, it just prints the error. With optional syntax highlighting and useful shortcuts

Implementations

SBCLA 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

ASDFit's the de-facto build system shipped with the implementations

Library Manager

Quicklisplibrary manager
UltralispA 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)
Roswell1,797almost 2 years agoA Lisp implementation installer, script launcher and more
qlot473almost 2 years agoA project-local library installer, similar to Bundler or Carton

Tools

cl-cookieproject77about 2 years agomy project skeleton, more complete than the others
quicksearch50over 12 years agoLook up online libraries from the REPL.

Web / HTTP clients

Dexador379almost 2 years agoAn HTTP client:

Web / Web frameworks

https://common-lisp-libraries.readthedocs.io/hunchentoot/Hunchentoot documentation on a "read the docs" style:
easy-routes58almost 2 years ago👍 - 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
Caveman784over 2 years agoA powerful web framework
Wookie190over 3 years agoAsynchronous HTTP server.
Snooze210about 2 years agoA RESTful web framework, built on Clack, where routes are just functions and HTTP conditions are just Lisp conditions.
radiance326almost 2 years agoAn extensible framework library and multi-application CMS
cl-rest-server67about 3 years agoa library for writing REST web APIs. Features validation with schemas, annotations for logging, caching, permissions or authentication, documentation via Swagger, etc.
Weblocks80over 2 years agoA widgets-based framework with a built-in ajax update mechanism that "solves the JavaScript problem".

Web / HTTP Servers

Hunchentootthe CL web server
Clack1,058almost 2 years agoA web application environment inspired by Rack and WSGI
wookie190over 3 years agoAsynchronous HTTP server.
woo1,291about 2 years agoA fast non-blocking HTTP server on top of libev.
clack-errors27about 7 years agoError page middleware for Clack.
hermetic43about 7 years agoSecurity for Clack-based web applications.

Web / Parsing html

Plump120over 2 years agoA lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and

Web / Querying HTML/DOM

lquery87about 3 years agoA jQuery-like HTML/DOM manipulation library.

Web / HTML generators and templates

Djula153almost 2 years agoA port of Django's template engine to Common Lisp
Ten34about 2 years agoby Djula's maintainer, a more flexible framework, where we can write lisp expressions in templates
spinneret371almost 2 years agoCommon Lisp HTML5 generator
cl-markup65over 5 years agoModern markup generation library.

Web / URI handling

quri112about 2 years agoAnother URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,…
cl-slug25over 9 years agoa small library to make slugs, mainly for URIs, transform in CamelCase, remove accentuation and punctuation, for english and beyound

Web / Javascript

Parenscript245over 7 years agoA translator from Common Lisp to Javascript.
parse-jsA package for parsing ECMAScript 3.
JSCL888over 2 years agoA CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop
sigil26about 9 years agoA Parenscript to Javascript command line compiler and REPL.
JACL
Valtan243over 2 years ago

Web / Third-party APIs

Aws-sign418over 2 years agoCommon Lisp library for Amazon Web Services signing version 4.
northThe 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-api9over 11 years agoGet avatars from Google+, Gravatar and others.
chirp68about 3 years agoA Twitter client library.
cl-ircAn IRC client library.
cl-openidAn implementation of OpenID.
cl-pushover2about 10 years agoCommon Lisp bindings to Pushover.
cl-ses15about 8 years agoLibrary for AWS SES.
humbler11about 3 years agoA Tumblr API interface.

XML

CXMLXML parser, with a range of extension libraries.
Plump120over 2 years agoA lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and
s-xmlA basic parser.
xmlsA small, simple, non-validating XML parser.

JSON

jonathan164over 2 years agoA JSON encoder and decoder.

CSV

cl-csv116over 2 years agoA library for parsing CSV files

Database and ORMs

mito296almost 2 years agoAn ORM for Common Lisp with migrations, schema versioning, relationships, PostgreSQL support
postmodernA library for interacting with PostgreSQL

Interaction with other languages / Python

py4cl235almost 3 years agoA library that allows Common Lisp code to access Python libraries. It is basically the inverse of cl4py.
cl4py98almost 2 years agoThe library cl4py (pronounce as clappy) allows Python programs to call Common Lisp libraries.

Graphics

cl-cairo262over 9 years agoCairo bindings
cl-gdA library providing an interface to the GD graphics library.
cl-opengl280about 2 years agoCFFI bindings to OpenGL, GLU and GLUT APIs.
cl-sdl2309about 2 years agoBindings for SDL2 using C2FFI.
cl-svgA basic library for producing SVG files.
FreeBSD[CLinch][63] - Common Lisp 2D/3D graphics engine for OpenGL.
donuts26over 3 years agoGraph drawing DSL for Common Lisp.
lispbuilder-sdl192about 5 years agoA set of bindings for SDL.
VectoSimple vector drawing library.
zpngA library for creating PNG files.

GUI

ltkA binding for the Tk toolkit. or
nodguiBindings for the Tk toolkit, based on Ltk, with syntax sugar and additional widgets
IUP138over 3 years agoCFFI 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
Qtools210over 3 years agoA Qt4 toolkit, based on CommonQt
ceramicDesktop web apps with Common Lisp.

GUI / ceramic

Electron-lisp-boilerplate10over 3 years agoA rudimentary boilerplate for building Electron apps with embedded Lisp helper processes
electron-sbcl-sqlite29almost 6 years agoElectron app skeleton:

GUI

LispWork's CAPIA portable GUI toolkit, with mobile runtime. Proprietary, but comes with a free version

Numerical and Scientific

cl-spark96over 11 years agoGenerates sparkline strings for lists of numbers.
GSLLGNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp.
lisp-statan 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

https://lisp-stat.dev/
XLisp-Statships Luke Tierney's (a predecessor of R) as well as newer libraries

Numerical and Scientific

common-lisp-stat170almost 7 years agoCommon Lisp statistics library.
lisp-matrix71almost 9 years agoA matrix package.
maximaComputer algebra system. Not available on Quicklisp.

Parallelism and Concurrency

BordeauxThreadsPortable, shared-state concurrency.
lparallel246almost 4 years agoA library for parallel programming.
lfarm106over 11 years agodistributing work across machines (on top of lparallel and usocket)
cl-async276almost 2 years agoA library for general-purpose, non-blocking programming, built on (the library that powers Nodejs).
chanl169almost 2 years agoPortable, channel-based concurrency. , with parts under
Moira29almost 3 years agoMonitor 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-gearman22about 5 years agoa library for the distributed job system.
swank-crew43over 2 years agodistributed computation framework implemented using Swank Client.
cl-coroutine65about 10 years agoa coroutine library. It uses the CL-CONT continuations library in its implementation.
STMX244over 2 years agoHigh performance Transactional Memory for Common Lisp.

Parallelism and Concurrency / Actors pattern

cl-gserver200almost 2 years agoan 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-tasks20about 3 years agoA very simple task scheduling framework.
deeds23about 3 years agoDeeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system.
cl-flow50almost 5 years agoData-flowish computation tree library for non-blocking concurrent Common Lisp.
event-glue20over 11 years agosimple 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-cron16about 3 years agoA simple tool that provides cron like facilities
clerk18almost 5 years agoa cron-like scheduler with sane DSL.

Regex

cl-ppcrePortable, Perl-compatible regular expressions.
one-more-re-nightmare141almost 2 years agoa fast-ish regular expression compiler in Common Lisp.

Unit Testing

FiveAM187almost 2 years agoSimple regression testing framework
MockingbirdA 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-it51about 6 years agoA QuickCheck-style randomized property-based testing.
cl-coveralls29almost 2 years agoa helper library to post test coverage to Coveralls. See and .

Continuous Integration

a tutorial1,797almost 2 years agoTravis CI: we can use Roswell on Travis CI: see (cl-travis doesn't work with Travi's Docker based architecture)
cl-coveralls29almost 2 years ago
https://lispcookbook.github.io/cl-cookbook/testing.html#gitlab-ciGitlab CI:

Utilities / Language extensions

alexandriaA general-purpose utility library
serapeum438almost 2 years agoAnother general-purpose utility library
rutils252over 2 years agoradical yet reasonable syntactic utilities for Common Lisp
trivia336about 2 years agoOptimized pattern-matching library.
generic-cl143almost 2 years agoGeneric function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…). . See also the more lightweight .
FSetA functional, set-theoretic collections data structure library.
trivial-types66over 8 years agoTrivial type definitions.
cl-algebraic-data-typeA library for defining algebraic data types in a similar spirit to Haskell or ML.

Utilities / Changing the syntax

pythonic-string-reader19over 8 years agoA simple and unobtrusive read table modification inspired by Python's three quote strings.
cl-reader13over 3 years agoA utility library intended at providing reader macros for lambdas, mapping, accessors, hash-tables and hash-sets.

Utilities / Iteration

iterateAn iteration construct for Common Lisp which is extensible and Lispier.

Utilities / Iteration / iterate

https://lispcookbook.github.io/cl-cookbook/iteration.html

Utilities / Iteration

forA 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-do18over 4 years agoAdditional dolist style macros for Common Lisp.
doplus– another extensible iteration library, similar to :for
picl17about 2 years agoAn (almost) complete port of Python's itertools package, complete with laziness where applicable, and not relying on cl-cont.
gtwiwtgA 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

fn25over 2 years agoa couple of lambda shorthand macros. . Public domain
f-underscorea tiny library of functional programming utils. . Public domain
cl-punch24almost 3 years agoScala-like anonymous lambda literals. .

Utilities / I/O

iolib141over 2 years agoI/O library.
fast-io147about 4 years agoFast octet-vector/stream I/O.
trivial-utf8A small library for doing UTF-8-based I/O. Not available on Quicklisp. No license specified

Utilities / Data validation

ratify29about 3 years agoA collection of utilities to ratify, validate and parse inputs.
clavier19over 2 years agoGeneral purpose validation library for Common Lisp.
json-schema17about 2 years agoA library for validating data against schemas of drafts 4, 6, 7, and 2019-09 of the standard.
sanity-clause51about 5 years agoa 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

localtimeA development library for manipulating date and time information in a semi-standard manner.
cl-date-time-parser18about 12 years agoParse date-time-string, liberally. Hides the difference between date-time formats, and enables to manage date and time as the one date-time format.
chronicity67over 7 years agoA natural language date and time parse, to parse strings like "3 days from now".
local-time-duration17over 7 years ago- Duration processing library built on top of local-time.
iso-8601-dateMiscellaneous date routines in Common Lisp, based around the ISO 8601 string representation.
calendar-date8almost 6 years agoa Gregorian calendar date library.
periods30almost 3 years agomanipulating date/time objects at a higher level. With series-compatible data structure.

Utilities / Logging

log4cl103almost 9 years agoLogging framework modelled after Log4J

Crypto

IroncladA library of crypto functions for Common Lisp. Not considered secure, but is still useful for the message digest functions.
crypto-shortcuts25almost 2 years agoCollection of common crypto shortcuts.

Learning and Tutorials

Common Lisp programming: from novice to effective developer📹 ⭐
How to create a full-featured Common Lisp project from scratch
Web requests in Common Lisp: how to fetch the Github API

Learning and Tutorials / Beginner

Learn X in Y minutes | Where X = Common LispSmall Common Lisp tutorial covering the essentials
Practical Common LispA good introductory text to Common Lisp, with practical examples
Common LISP: A Gentle Introduction to Symbolic ComputationA nice introduction into the language
Learn LISP: Simply Easy LearningA good set of introductory tutorials; includes interactive examples
Common Lisp Koans3,134over 3 years agoThe project guides the learner progressively through many Common Lisp language features

Learning and Tutorials / Intermediate

CL Cookbook
Common Lisp tips122about 7 years agoA 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 LambdaA book on advanced macro techniques. The first six chapters are available online
On LispPaul Graham's amazing book on Lisp macros (and other interesting things)

Learning and Tutorials / Reference

Common Lisp Quick ReferenceA distilled, pocket-size version of the ANSI CL spec. Available for download as a PDF
CLHSThe Common Lisp HyperSpec; the ANSI CL standard, in hypertext form
Common Lisp the LangaugeThe original standard for Common Lisp before the ANSI spec
MinispecA friendlier, but less-complete, version of CLHS. Also contains documentation for some commonly-used CL libraries (such as Alexandria)
QuickdocsA reference for the libraries provided by Quicklisp

Learning and Tutorials / Beginner

Land of LispA fun, game-oriented introduction to Common Lisp
Practical Common LispA good introductory text to Common Lisp, with practical examples
Common Lisp Koans3,134over 3 years agoThe project guides the learner progressively through many Common Lisp language features

Learning and Tutorials / Intermediate

ANSI Common LispA thorough, practical covering of the entire language, with exercises. Not recommended as a starter text, due to

Learning and Tutorials / Advanced

Let Over LambdaA 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 CLOSAn old, but very thorough book on CLOS
Paradigms of Artificial Intelligence Programming: Case Studies in Common LispA book on programming AI that covers some advanced Lisp

Backlinks from these awesome lists:

More related projects: