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.
35 stars
6 watching
2 forks
last commit: over 2 years ago
Linked from 1 awesome list
Community | |||
Common Lisp Cookbook | |||
Quickdocs | Ready and up to date documentation for all Common Lisp projects | ||
Text Editor Resources / Emacs | |||
Portacle | A portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git | ||
SLIME | 1,918 | 3 days ago | Superior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain |
Text Editor Resources / Vim | |||
SLIMV | 456 | 3 days ago | Superior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified |
Text Editor Resources / Atom | |||
SLIMA | 62 | over 1 year ago | allows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE. |
Text Editor Resources / VSCode | |||
alive | 211 | 2 months ago | 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 | 199 | about 5 years ago | A Common Lisp kernel for Jupyter notebooks |
Text Editor Resources / REPLs | |||
cl-repl | 153 | over 3 years ago | an ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. . With |
sbcli | 95 | 6 months ago | a 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 | |||
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 | 1,797 | 29 days ago | A Lisp implementation installer, script launcher and more |
qlot | 473 | 25 days ago | A project-local library installer, similar to Bundler or Carton |
Tools | |||
cl-cookieproject | 77 | 3 months ago | my project skeleton, more complete than the others |
quicksearch | 50 | over 10 years ago | Look up online libraries from the REPL. |
Web / HTTP clients | |||
Dexador | 379 | 3 months ago | An HTTP client: |
Web / Web frameworks | |||
https://common-lisp-libraries.readthedocs.io/hunchentoot/ | Hunchentoot documentation on a "read the docs" style: | ||
easy-routes | 58 | 28 days 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 |
Caveman | 784 | 7 months ago | A powerful web framework |
Wookie | 190 | almost 2 years ago | Asynchronous HTTP server. |
Snooze | 210 | 6 months ago | A RESTful web framework, built on Clack, where routes are just functions and HTTP conditions are just Lisp conditions. |
radiance | 326 | about 1 month ago | An extensible framework library and multi-application CMS |
cl-rest-server | 67 | over 1 year ago | a library for writing REST web APIs. Features validation with schemas, annotations for logging, caching, permissions or authentication, documentation via Swagger, etc. |
Weblocks | 80 | 9 months ago | A widgets-based framework with a built-in ajax update mechanism that "solves the JavaScript problem". |
Web / HTTP Servers | |||
Hunchentoot | the CL web server | ||
Clack | 1,058 | about 2 months ago | A web application environment inspired by Rack and WSGI |
wookie | 190 | almost 2 years ago | Asynchronous HTTP server. |
woo | 1,291 | 3 months ago | A fast non-blocking HTTP server on top of libev. |
clack-errors | 27 | over 5 years ago | Error page middleware for Clack. |
hermetic | 43 | over 5 years ago | Security for Clack-based web applications. |
Web / Parsing html | |||
Plump | 120 | 7 months ago | A lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and |
Web / Querying HTML/DOM | |||
lquery | 87 | over 1 year ago | A jQuery-like HTML/DOM manipulation library. |
Web / HTML generators and templates | |||
Djula | 153 | 3 days ago | A port of Django's template engine to Common Lisp |
Ten | 34 | 5 months ago | by Djula's maintainer, a more flexible framework, where we can write lisp expressions in templates |
spinneret | 371 | 5 days ago | Common Lisp HTML5 generator |
cl-markup | 65 | over 3 years ago | Modern markup generation library. |
Web / URI handling | |||
quri | 112 | 4 months ago | Another URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,… |
cl-slug | 25 | over 7 years ago | a small library to make slugs, mainly for URIs, transform in CamelCase, remove accentuation and punctuation, for english and beyound |
Web / Javascript | |||
Parenscript | 245 | almost 6 years ago | A translator from Common Lisp to Javascript. |
parse-js | A package for parsing ECMAScript 3. | ||
JSCL | 888 | 8 months ago | A CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop |
sigil | 26 | over 7 years ago | A Parenscript to Javascript command line compiler and REPL. |
JACL | |||
Valtan | 243 | 7 months ago | |
Web / Third-party APIs | |||
Aws-sign4 | 18 | 11 months ago | 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 | 9 | over 9 years ago | Get avatars from Google+, Gravatar and others. |
chirp | 68 | over 1 year ago | A Twitter client library. |
cl-irc | An IRC client library. | ||
cl-openid | An implementation of OpenID. | ||
cl-pushover | 2 | over 8 years ago | Common Lisp bindings to Pushover. |
cl-ses | 15 | over 6 years ago | Library for AWS SES. |
humbler | 11 | over 1 year ago | A Tumblr API interface. |
XML | |||
CXML | XML parser, with a range of extension libraries. | ||
Plump | 120 | 7 months ago | A lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and |
s-xml | A basic parser. | ||
xmls | A small, simple, non-validating XML parser. | ||
JSON | |||
jonathan | 164 | 7 months ago | A JSON encoder and decoder. |
CSV | |||
cl-csv | 116 | 11 months ago | A library for parsing CSV files |
Database and ORMs | |||
mito | 296 | about 1 month ago | An ORM for Common Lisp with migrations, schema versioning, relationships, PostgreSQL support |
postmodern | A library for interacting with PostgreSQL | ||
Interaction with other languages / Python | |||
py4cl | 235 | about 1 year ago | A library that allows Common Lisp code to access Python libraries. It is basically the inverse of cl4py. |
cl4py | 98 | 1 day ago | The library cl4py (pronounce as clappy) allows Python programs to call Common Lisp libraries. |
Graphics | |||
cl-cairo2 | 62 | over 7 years ago | Cairo bindings |
cl-gd | A library providing an interface to the GD graphics library. | ||
cl-opengl | 280 | 4 months ago | CFFI bindings to OpenGL, GLU and GLUT APIs. |
cl-sdl2 | 309 | 4 months ago | 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 | 26 | over 1 year ago | Graph drawing DSL for Common Lisp. |
lispbuilder-sdl | 192 | over 3 years ago | 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 | 138 | almost 2 years ago | 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 | 210 | almost 2 years ago | A Qt4 toolkit, based on CommonQt |
ceramic | Desktop web apps with Common Lisp. | ||
GUI / ceramic | |||
Electron-lisp-boilerplate | 10 | almost 2 years ago | A rudimentary boilerplate for building Electron apps with embedded Lisp helper processes |
electron-sbcl-sqlite | 29 | almost 4 years ago | 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 | 96 | over 9 years ago | 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 | |||
https://lisp-stat.dev/ | |||
XLisp-Stat | ships Luke Tierney's (a predecessor of R) as well as newer libraries | ||
Numerical and Scientific | |||
common-lisp-stat | 170 | about 5 years ago | Common Lisp statistics library. |
lisp-matrix | 71 | about 7 years ago | A matrix package. |
maxima | Computer algebra system. Not available on Quicklisp. | ||
Parallelism and Concurrency | |||
BordeauxThreads | Portable, shared-state concurrency. | ||
lparallel | 246 | about 2 years ago | A library for parallel programming. |
lfarm | 106 | over 9 years ago | distributing work across machines (on top of lparallel and usocket) |
cl-async | 276 | about 1 month ago | A library for general-purpose, non-blocking programming, built on (the library that powers Nodejs). |
chanl | 169 | 16 days ago | Portable, channel-based concurrency. , with parts under |
Moira | 29 | about 1 year ago | 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 | 22 | about 3 years ago | a library for the distributed job system. |
swank-crew | 43 | 10 months ago | distributed computation framework implemented using Swank Client. |
cl-coroutine | 65 | about 8 years ago | a coroutine library. It uses the CL-CONT continuations library in its implementation. |
STMX | 244 | 10 months ago | High performance Transactional Memory for Common Lisp. |
Parallelism and Concurrency / Actors pattern | |||
cl-gserver | 200 | 15 days ago | 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 | 20 | over 1 year ago | A very simple task scheduling framework. |
deeds | 23 | over 1 year ago | Deeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system. |
cl-flow | 50 | about 3 years ago | Data-flowish computation tree library for non-blocking concurrent Common Lisp. |
event-glue | 20 | over 9 years ago | 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 | 16 | about 1 year ago | A simple tool that provides cron like facilities |
clerk | 18 | about 3 years ago | a cron-like scheduler with sane DSL. |
Regex | |||
cl-ppcre | Portable, Perl-compatible regular expressions. | ||
one-more-re-nightmare | 141 | 2 months ago | a fast-ish regular expression compiler in Common Lisp. |
Unit Testing | |||
FiveAM | 187 | 3 months ago | 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 | 51 | over 4 years ago | A QuickCheck-style randomized property-based testing. |
cl-coveralls | 29 | 23 days ago | a helper library to post test coverage to Coveralls. See and . |
Continuous Integration | |||
a tutorial | 1,797 | 29 days ago | Travis CI: we can use Roswell on Travis CI: see (cl-travis doesn't work with Travi's Docker based architecture) |
cl-coveralls | 29 | 23 days ago | |
https://lispcookbook.github.io/cl-cookbook/testing.html#gitlab-ci | Gitlab CI: | ||
Utilities / Language extensions | |||
alexandria | A general-purpose utility library | ||
serapeum | 438 | 19 days ago | Another general-purpose utility library |
rutils | 252 | 8 months ago | radical yet reasonable syntactic utilities for Common Lisp |
trivia | 336 | 4 months ago | Optimized pattern-matching library. |
generic-cl | 143 | about 1 month ago | 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 | 66 | over 6 years ago | 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 | 19 | over 6 years ago | A simple and unobtrusive read table modification inspired by Python's three quote strings. |
cl-reader | 13 | almost 2 years ago | 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 | |||
https://lispcookbook.github.io/cl-cookbook/iteration.html | |||
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 | 18 | almost 3 years ago | Additional dolist style macros for Common Lisp. |
doplus | – another extensible iteration library, similar to :for | ||
picl | 17 | 5 months ago | 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 | 25 | 8 months ago | a couple of lambda shorthand macros. . Public domain |
f-underscore | a tiny library of functional programming utils. . Public domain | ||
cl-punch | 24 | about 1 year ago | Scala-like anonymous lambda literals. . |
Utilities / I/O | |||
iolib | 141 | 6 months ago | I/O library. |
fast-io | 147 | over 2 years ago | 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 | 29 | over 1 year ago | A collection of utilities to ratify, validate and parse inputs. |
clavier | 19 | 10 months ago | General purpose validation library for Common Lisp. |
json-schema | 17 | 6 months ago | A library for validating data against schemas of drafts 4, 6, 7, and 2019-09 of the standard. |
sanity-clause | 51 | over 3 years ago | 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 | 18 | over 10 years ago | 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 | 67 | almost 6 years ago | A natural language date and time parse, to parse strings like "3 days from now". |
local-time-duration | 17 | over 5 years ago | - 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 | 8 | about 4 years ago | a Gregorian calendar date library. |
periods | 30 | about 1 year ago | manipulating date/time objects at a higher level. With series-compatible data structure. |
Utilities / Logging | |||
log4cl | 103 | about 7 years ago | 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 | 25 | 15 days ago | Collection 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 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 | 3,134 | over 1 year ago | The project guides the learner progressively through many Common Lisp language features |
Learning and Tutorials / Intermediate | |||
CL Cookbook | |||
Common Lisp tips | 122 | over 5 years ago | 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 | 3,134 | over 1 year ago | 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 |