Files
awesome-awesomeness/html/cl.html
2025-07-18 22:22:32 +02:00

4900 lines
225 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div data-align="center">
<p><a href="https://awesome-cl.com" target="_blank">
<img src="https://i.imgur.com/jLVXhpc.png"> </a></p>
</div>
<h1 id="awesome-common-lisp-awesome-assertible-status">Awesome Common
Lisp <a href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a> <a
href="https://assertible.com/docs/guide/deployments"><img
src="https://assertible.com/apis/102e334d-f9a8-4565-9353-7572de775cae/status?api_token=8b55a286830323effb"
alt="Assertible status" /></a></h1>
<p>A curated list of <em>awesome</em> Common Lisp libraries.</p>
<p>For awesome <em>software</em>, see <a
href="http://lisp-lang.org/success/">lisp-lang.orgs success stories</a>
and the <a
href="https://github.com/azzamsa/awesome-cl-software">awesome-cl-software</a>
list.</p>
<p>All libraries listed here are available from <a
href="https://www.quicklisp.org/beta/">Quicklisp</a> unless stated
otherwise. The ones marked with a ⭐ are so widespread and solid that
they became community standards. You cant be wrong with them. This is
the case for Quicklisp, BordeauxThreads and such. Libraries denoted with
a 👍 are the ones we like and want to promote here at the Awesome-cl
list. They proved solid, they may solve a problem better than a
community standard but they arent as widespread, or not considered as
stable. For example, we prefer Spinneret over Cl-Who.</p>
<p>Add something new! See the <a href="#contributing">contributing</a>
section for adding something to the list.</p>
<p>This is released under the GNU Free Documentation License - its text
is provided in the LICENSE file. This repository is also mirrored on <a
href="https://notabug.org/CodyReichert/awesome-cl">NotABug</a> - a
<strong>fully-free</strong> (as in libre) alternative to Github.
Preference is given to <a
href="http://www.sbcl.org/manual/index.html#ANSI-Conformance">free
software</a> and sellers who arent evil for physical resources.</p>
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
<p><strong>Table of Contents</strong></p>
<ul>
<li><a href="#artificial-intelligence-ai-llms">Artificial Intelligence
(AI, LLMs)</a>
<ul>
<li><a href="#machine-learning">Machine Learning</a></li>
<li><a href="#natural-language-processing">Natural Language
Processing</a></li>
</ul></li>
<li><a href="#audio">Audio</a></li>
<li><a href="#build-systems">Build Systems</a></li>
<li><a href="#compilers-code-generators">Compilers, code generators</a>
<ul>
<li><a href="#apl">APL</a></li>
<li><a href="#c-c">C, C++</a></li>
</ul></li>
<li><a href="#cryptography">Cryptography</a></li>
<li><a href="#cryptocurrencies">Cryptocurrencies</a></li>
<li><a href="#database">Database</a>
<ul>
<li><a href="#orms">ORMs</a></li>
<li><a href="#persistent-object-databases">Persistent object
databases</a></li>
<li><a href="#graph-databases">Graph databases</a></li>
<li><a href="#other-db-wrappers">Other DB wrappers</a></li>
<li><a href="#migration-tools">Migration tools</a></li>
<li><a href="#to-third-parties">To third parties</a></li>
<li><a href="#tools">Tools</a></li>
</ul></li>
<li><a href="#data-formats">Data Formats</a>
<ul>
<li><a href="#csv">CSV</a></li>
<li><a href="#json">JSON</a></li>
<li><a href="#toml">TOML</a></li>
<li><a href="#xml">XML</a></li>
<li><a href="#yaml">YAML</a></li>
</ul></li>
<li><a href="#data-structures">Data Structures</a></li>
<li><a href="#docker-images">Docker images</a></li>
<li><a href="#foreign-function-interface-languages-interop">Foreign
Function Interface, languages interop</a>
<ul>
<li><a href="#c">C</a></li>
<li><a href="#clojure">Clojure</a></li>
<li><a href="#erlang">Erlang</a></li>
<li><a href="#java">Java</a></li>
<li><a href="#objective-c">Objective-C</a></li>
<li><a href="#python">Python</a></li>
<li><a href="#net-core">.Net Core</a></li>
<li><a href="#miscellaneous">Miscellaneous</a></li>
</ul></li>
<li><a href="#game-development">Game Development</a></li>
<li><a href="#graphics">Graphics</a></li>
<li><a href="#gui">GUI</a>
<ul>
<li><a href="#web-views">Web views</a></li>
<li><a href="#mobile">Mobile</a></li>
</ul></li>
<li><a href="#implementations">Implementations</a></li>
<li><a href="#language-extensions">Language extensions</a>
<ul>
<li><a href="#pattern-matching">Pattern matching</a></li>
<li><a href="#portability-layers">Portability layers</a></li>
<li><a href="#changing-the-syntax">Changing the syntax</a></li>
<li><a href="#clos-extensions">CLOS extensions</a></li>
<li><a href="#function-extensions">Function extensions</a></li>
<li><a href="#iteration">Iteration</a></li>
<li><a href="#lambda-shorthands">Lambda shorthands</a></li>
<li><a href="#non-deterministic-logic-programming">Non-deterministic,
logic programming</a></li>
<li><a href="#reactive-programming">Reactive programming</a></li>
<li><a href="#contract-programming">Contract programming</a></li>
<li><a href="#typing">Typing</a></li>
<li><a href="#theorem-provers">Theorem provers</a></li>
</ul></li>
<li><a href="#learning-and-tutorials">Learning and Tutorials</a>
<ul>
<li><a href="#online">Online</a></li>
<li><a href="#beginner">Beginner</a></li>
<li><a href="#intermediate">Intermediate</a></li>
<li><a href="#advanced">Advanced</a></li>
<li><a href="#coding-platforms">Coding platforms</a></li>
<li><a href="#web-development">Web Development</a></li>
<li><a href="#reference">Reference</a></li>
<li><a href="#offline">Offline</a></li>
<li><a href="#beginner-1">Beginner</a></li>
<li><a href="#intermediate-1">Intermediate</a></li>
<li><a href="#advanced-1">Advanced</a></li>
<li><a href="#other-books">Other books</a></li>
<li><a href="#community">Community</a></li>
</ul></li>
<li><a href="#library-manager">Library Manager</a>
<ul>
<li><a href="#interfaces-to-other-package-managers">Interfaces to other
package managers</a></li>
</ul></li>
<li><a href="#network-and-internet">Network and Internet</a>
<ul>
<li><a href="#http-clients">HTTP clients</a></li>
<li><a href="#http-servers">HTTP Servers</a>
<ul>
<li><a href="#hunchentoot-plugins">Hunchentoot plugins</a></li>
<li><a href="#clack-plugins">Clack plugins</a></li>
</ul></li>
<li><a href="#web-frameworks">Web frameworks</a>
<ul>
<li><a href="#isomorphic-web-frameworks">Isomorphic web
frameworks</a></li>
</ul></li>
<li><a href="#parsing-html">Parsing html</a></li>
<li><a href="#querying-htmldom-web-scraping">Querying HTML/DOM, web
scraping</a></li>
<li><a href="#html-generators-and-templates">HTML generators and
templates</a></li>
<li><a href="#uri-and-ip-handling">URI and IP handling</a></li>
<li><a href="#javascript">Javascript</a></li>
<li><a href="#deployment">Deployment</a></li>
<li><a href="#monitoring">Monitoring</a></li>
<li><a href="#websockets">Websockets</a></li>
<li><a href="#web-development-utilities">Web development utilities</a>
<ul>
<li><a href="#assets-management">Assets management</a></li>
<li><a href="#browser-tests">Browser tests</a></li>
<li><a href="#form-handling">Form handling</a></li>
<li><a href="#user-login-and-password-management">User login and
password management</a></li>
<li><a href="#web-project-skeletons-and-generators">Web project
skeletons and generators</a></li>
</ul></li>
<li><a href="#others">Others</a>
<ul>
<li><a href="#email">Email</a></li>
<li><a href="#openapi-odata-openrpc">OpenAPI, OData, OpenRPC</a></li>
<li><a href="#static-site-generators">Static site generators</a></li>
<li><a href="#third-party-apis">Third-party APIs</a></li>
</ul></li>
</ul></li>
<li><a href="#numerical-and-scientific">Numerical and Scientific</a>
<ul>
<li><a href="#matrix-libraries">Matrix libraries</a></li>
<li><a href="#statistics">Statistics</a></li>
<li><a href="#units">Units</a></li>
<li><a href="#utils">Utils</a></li>
</ul></li>
<li><a href="#parallelism-and-concurrency">Parallelism and
Concurrency</a>
<ul>
<li><a href="#actors-pattern">Actors pattern</a></li>
<li><a href="#event-processing">Event processing</a></li>
<li><a href="#job-processing">Job processing</a></li>
</ul></li>
<li><a href="#regular-expressions-and-string-parsing">Regular
expressions and string parsing</a></li>
<li><a href="#scripting">Scripting</a>
<ul>
<li><a href="#running-scripts">Running scripts</a></li>
<li><a href="#command-line-options-parsers">Command-line options
parsers</a></li>
<li><a href="#readline-ncurses-and-other-graphical-helpers">Readline,
ncurses and other graphical helpers</a></li>
<li><a href="#shells-shells-interfaces">Shells, shells
interfaces</a></li>
<li><a href="#system-administration">System administration</a></li>
<li><a href="#other-scripting-utilities">Other scripting
utilities</a></li>
</ul></li>
<li><a href="#text-editor-resources">Text Editor Resources</a>
<ul>
<li><a href="#emacs">Emacs</a></li>
<li><a href="#vim--neovim">Vim &amp; Neovim</a></li>
<li><a href="#eclipse">Eclipse</a></li>
<li><a href="#lem">Lem</a></li>
<li><a href="#lispworks">LispWorks</a></li>
<li><a href="#atom-pulsar">Atom, Pulsar</a></li>
<li><a href="#sublime-text">Sublime Text</a></li>
<li><a href="#vscode">VSCode</a></li>
<li><a href="#jetbrains">JetBrains</a></li>
<li><a href="#geany-experimental">Geany (experimental)</a></li>
<li><a href="#notebooks">Notebooks</a></li>
<li><a href="#repls">REPLs</a></li>
<li><a href="#online-editors">Online editors</a></li>
<li><a href="#apps">Apps</a></li>
</ul></li>
<li><a href="#text-and-binary-parsers">Text and binary parsers</a></li>
<li><a href="#text-processing">Text Processing</a></li>
<li><a href="#tools-1">Tools</a></li>
<li><a href="#unit-testing">Unit Testing</a></li>
<li><a href="#utilities">Utilities</a>
<ul>
<li><a href="#caching-serialization">Caching (serialization)</a></li>
<li><a href="#caching-memoization">Caching (memoization)</a></li>
<li><a href="#compression--decompression">Compression /
decompression</a></li>
<li><a href="#configuration">Configuration</a></li>
<li><a href="#date-and-time">Date and time</a></li>
<li><a href="#data-validation">Data validation</a></li>
<li><a href="#developer-utilities">Developer utilities</a></li>
<li><a href="#documentation-builders">Documentation builders</a></li>
<li><a href="#files-and-directories">Files and directories</a></li>
<li><a href="#git">Git</a></li>
<li><a href="#i18n">i18n</a></li>
<li><a href="#linting-code-formatting">Linting, code formatting</a></li>
<li><a href="#literate-programming">Literate programming</a></li>
<li><a href="#logging">Logging</a></li>
<li><a href="#macro-helpers">Macro helpers</a></li>
<li><a href="#markdown">Markdown</a></li>
<li><a href="#package-declarations">Package declarations</a></li>
<li><a href="#pdf">PDF</a></li>
<li><a href="#plotting">Plotting</a></li>
<li><a href="#project-skeletons">Project skeletons</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#system-interface">System interface</a></li>
<li><a href="#other">Other</a></li>
</ul></li>
<li><a href="#contributing">Contributing</a></li>
</ul>
<!-- markdown-toc end -->
<h1 id="artificial-intelligence-ai-llms">Artificial Intelligence (AI,
LLMs)</h1>
<p>Educational:</p>
<ul>
<li><a href="https://github.com/norvig/paip-lisp">PAIP-lisp</a> - Lisp
code for the textbook <a
href="https://norvig.github.io/paip-lisp/#/">“Paradigms of Artificial
Intelligence Programming”</a>.</li>
<li><a href="https://github.com/aimacode/aima-lisp">AIMA-lisp</a> -
Common Lisp implementation of algorithms from Russell and Norvigs
“Artificial Intelligence - A Modern Approach”.</li>
<li>the book <a
href="http://www.incompleteideas.net/book/the-book.html">Reinforcement
Learning: An Introduction</a>, by Richard S. Sutton and Andrew G. Barto,
with code in Lisp.
<ul>
<li>the authors are the recipients of the <a
href="https://awards.acm.org/about/2024-turing">2024 ACM A.M. Turing
Award</a> for developing the conceptual and algorithmic foundations of
reinforcement learning.</li>
</ul></li>
</ul>
<h2 id="machine-learning">Machine Learning</h2>
<ul>
<li><a href="https://github.com/melisgl/mgl">MGL</a> - a machine
learning library for backpropagation neural networks, boltzmann
machines, gaussian processes and more. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>some parts originally contributed by Ravenpack International.</li>
<li>used by its <a href="https://github.com/melisgl">author</a> to <a
href="https://github.com/melisgl/higgsml">win</a> the Higgs Boson
Machine Learning Challenge.</li>
<li>more about the author: he also won the Google <a
href="https://en.wikipedia.org/wiki/AI_Challenge">AI Challenge</a> in
2010 using Common Lisp, but without MGL, as no machine learning was
needed. A <a href="https://www.youtube.com/watch?v=7sgERtZkycU">related
talk</a> (59, 2013).</li>
</ul></li>
<li><a href="https://github.com/mmaul/clml">clml</a> - originally
developed by Mathematicl Systems Inc., a Japanese company. With a <a
href="https://mmaul.github.io/clml.tutorials//2015/08/08/CLML-Time-Series-Part-1.html">tutorial</a>.
<a href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://www.common-lisp.net/project/antik/">antik</a> - a
foundation for scientific and engineering computation in Common Lisp.
GPL. Also <a href="https://github.com/melisgl/mgl-mat">mgl-mat</a> and
<a href="https://github.com/tpapp/lla">LLA</a>.</li>
</ul>
<p>Credit: borretti.mes <a
href="http://borretti.me/article/common-lisp-sotu-2015#machine-learning">State
of CL Ecosystem 2015</a>.</p>
<ul>
<li><a href="https://github.com/snunez1/llama.cl">llama.cl</a> - a
Common Lisp port of Karpathys llama2.c to idiomatic Common Lisp.
MIT.</li>
</ul>
<p>Around the OpenAI API:</p>
<ul>
<li><a
href="https://codeberg.org/kilianmh/openai-openapi-client">openai-openapi-client</a>
- semi-automatically generated Openapi client updated frequently from
the <a
href="https://github.com/openai/openai-openapi/blob/master/openapi.yaml">official
Openapi specification</a>. AGPL-3.
<ul>
<li>available on Ultralisp.</li>
</ul></li>
<li><a
href="https://github.com/atgreen/cl-completions">cl-completions</a> -
LLM completions.
<ul>
<li>makes it easy to create GPT functions in Common Lisp.</li>
<li>Ollama support.</li>
</ul></li>
<li><a href="https://github.com/atgreen/cl-embeddings">cl-embeddings</a>
- LLM embeddings.</li>
<li><a href="https://github.com/atgreen/cl-chroma">cl-chroma</a> - the
vector DB interface.</li>
</ul>
<p>demos: <a
href="https://github.com/atgreen/cl-rag-example">cl-rag-example</a> and
<a href="https://github.com/atgreen/cl-chat">cl-chat</a>, a LLM chat
library and web UI.</p>
<p>Work In Progress:</p>
<ul>
<li><a href="https://github.com/hikettei/Caten">Caten</a> - Deep
Learning Compiler based on Polyhedral Compiler and Light-weight IRs, and
Optimizing Pattern Matcher, written in Common Lisp</li>
</ul>
<h2 id="mcp-servers">MCP servers</h2>
<ul>
<li><a href="https://github.com/40ants/mcp">40ants-MCP</a> - a framework
for building Model Context Protocol servers in Common Lisp.</li>
<li><a href="https://github.com/gornskew/lisply-mcp">Lisply MCP</a> - a
generic Node.js wrapper meant to work with pretty much any language
backend which can support “eval” and http .
<ul>
<li>By default, it comes configured to work with an existing
reference-implementation backend CL-based container image which it will
pull and run on-demand.</li>
</ul></li>
</ul>
<h2 id="natural-language-processing">Natural Language Processing</h2>
<ul>
<li>🚀 <a href="https://github.com/ddmcdonald/sparser">sparser</a> - A
natural language understanding system for English. <a
href="http://www.eclipse.org/legal/epl-v10.html">Eclipse</a>.
<ul>
<li><blockquote>
<p>a model-driven, rule-based language text analysis system for large
volume, high-precision information extraction. At its heart, Sparser is
a bottom-up, phrase-structure-based chart parser, optimized for semantic
grammars and partial parsing.</p>
</blockquote></li>
</ul></li>
<li><a href="https://github.com/vseloved/cl-nlp">cl-nlp</a> - Natural
language processing toolset. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a href="https://github.com/lucas8/Babel2/">babel2</a> - A Fluid
Construction Grammar implementation, computational framework, and
unification-based grammar formalism <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
</ul>
<h1 id="audio">Audio</h1>
<p>Music composition:</p>
<ul>
<li><a
href="https://github.com/openmusic-project/openmusic/">OpenMusic</a>
visual programming / computer-aided composition environment. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>. Developped at <a
href="https://www.stms-lab.fr/team/representations-musicales/">IRCAM</a>,
France.</li>
<li><a href="https://github.com/openmusic-project/om7">OM7</a> - 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. <a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
<ul>
<li>an extension: <a
href="https://github.com/openmusic-project/RQ">rq</a> - a library for
rhythm transcription in OpenMusic (version 6.10 and later). <a
href="https://www.youtube.com/watch?v=XVEllB0TtVs">demo video</a>. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
</ul></li>
<li><a href="http://incudine.sourceforge.net/">Incudine</a> - 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.</li>
<li><a href="https://ccrma.stanford.edu/software/clm/">CLM</a> - 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
CLMs case anyway).
<ul>
<li><a
href="https://github.com/theraphonics/common-tones">common-tones</a> - a
fork of CLM5 with modern Lisp (ASDF, cffi…). <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul></li>
<li><a href="https://github.com/mdedwards/slippery-chicken/">Slippery
Chicken</a> - Algorithmic composition library which outputs Midi, Common
Music Notation, pdf-score via Lilypond and sound via Common Lisp Music.
<a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
<ul>
<li>with documentation: https://michael-edwards.org/sc/</li>
</ul></li>
<li><a href="https://github.com/ormf/cm">Common Music</a> - 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.
<ul>
<li>note: old project but working.</li>
<li><a href="https://github.com/ormf/cm-incudine">cm-incudine</a> -
extends Common Music 2 with realtime capabilities. GPL2.</li>
</ul></li>
<li><a href="https://github.com/defaultxr/cl-patterns">cl-patterns</a> -
a system for composing music via Lisp code, heavily inspired by
SuperColliders 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.</li>
<li><a href="https://github.com/MegaLoler/Music">Music</a> - A framework
for musical expression in Lisp with a focus on music theory (built from
scratch, unrelated to Common Music).</li>
</ul>
<p>Decoders, sound processing:</p>
<ul>
<li><a href="https://shirakumo.github.io/harmony">Harmony</a> - A
real-time sound processing and playback system. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li>“provides you with audio processing tools as well as an audio server
to play back music, sfx, and so forth.”</li>
<li>using <a href="https://github.com/Shirakumo/cl-mixed">cl-mixed</a>
for the mixing and sound processing library.</li>
</ul></li>
<li><a href="https://github.com/shamazmazum/easy-audio">easy-audio</a> -
a collection of audio decoders and metadata readers.</li>
</ul>
<p>others:</p>
<ul>
<li><a href="https://github.com/byulparan/scheduler">scheduler</a> - The
time based musical event scheduler for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a href="https://ccrma.stanford.edu/software/cmn/">Common Music
Notation</a> - Common Music Notation (CMN) provides a package of
functions to hierarchically describe a musical score. Public
domain.</li>
<li><a href="https://github.com/zzkt/osc">osc</a> - an implementation of
the Open Sound Protocol. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPL2.1</a>.</li>
</ul>
<p>bindings and clients to other software and libraries:</p>
<ul>
<li><a href="https://github.com/Shirakumo/cl-mpg123">cl-mpg123</a>, <a
href="https://github.com/Shirakumo/cl-opus">cl-opus</a> (OGG/Opus), <a
href="https://github.com/Shirakumo/cl-vorbis">cl-vorbis</a>
(OGG/Vorbis), <a
href="https://github.com/Shirakumo/cl-soloud">cl-SoLoud</a>, <a
href="https://github.com/Shirakumo/cl-out123">cl-out123</a> (libout123),
<a href="https://github.com/Shirakumo/cl-flac">cl-flac</a></li>
<li><a href="https://github.com/csound/csound">csound</a> - A sound and
music computing system. Includes CFFI and FFI interfaces for Common
Lisp.</li>
<li><a href="https://github.com/byulparan/cl-collider">cl-collider</a> -
A <a href="http://supercollider.github.io/">SuperCollider</a> client for
CommonLisp. With a <a
href="https://github.com/defaultxr/cl-collider-tutorial">tutorial</a>
and <a href="https://www.youtube.com/watch?v=xzTH_ZqaFKI">live coding
demos</a>. Public domain.</li>
<li><a href="https://github.com/zkat/cl-openal">cl-openal</a> - bindings
for the OpenAL audio library. Public domain.</li>
</ul>
<p>and more audio software targetting musicians on <a
href="https://github.com/CodyReichert/awesome-cl#audio">awesome-cl-software#audio</a>
(Opus Modus, OpenMusic…).</p>
<h1 id="build-systems">Build Systems</h1>
<ul>
<li><a href="https://common-lisp.net/project/asdf/">ASDF</a> - Another
System Definition Facility; a build system for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>. Quicklisp
(see <a href="#library-manager">library manager</a>) uses ASDF under the
hood.
<ul>
<li><a href="https://common-lisp.net/project/asdf/#extensions">known
ASDF extensions</a>, such as <code>asdf-system-connections</code>, that
lets you specify systems that are automatically loaded when two other
systems are loaded, to connect them.</li>
</ul></li>
<li><a
href="https://github.com/eudoxia0/asdf-linguist">asdf-linguist</a> -
Extensions for ASDF. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/guicho271828/asdf-viz">asdf-viz</a> - a
tool to visualize the library dependencies of ASDF systems, the call
graph of a function and the class inheritances. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/Shinmera/modularize">modularize</a> - A
modularization framework for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li>provides a common interface to segregate major application
components.</li>
<li>for instance, by adding module definition options you can introduce
mechanisms to tie modules together in functionality, hook into each
other and so on.</li>
<li>acts as a wrapper around <code>defpackage</code> and integrates into
ASDF.</li>
</ul></li>
</ul>
<h1 id="compilers-code-generators">Compilers, code generators</h1>
<h2 id="apl">APL</h2>
<ul>
<li><a href="https://github.com/phantomics/april">April</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.</li>
</ul>
<h2 id="c-c">C, C++</h2>
<ul>
<li><a href="https://github.com/kiselgra/c-mera">C-mera</a> - a
source-to-source compiler that utilizes Lisps macro system for meta
programming of C-like languages. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/eudoxia0/cmacro">cmacro</a> - Lisp
macros for C. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/eratosthenesia/lispc">lispc</a> - a
powerful “lispsy” macrolanguage for C. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/y2q-actionman/with-c-syntax">with-c-syntax</a>
- a fun package which introduces the C language syntax into Common Lisp.
(Yes, this package is not for practical coding, I think.) WTFPL
Licence.</li>
<li><a href="https://gitlab.common-lisp.net/ecl/ecrepl">ecrepl</a> - an
interactive REPL for the C language. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a
href="https://github.com/GrammaTech/sel">Software-Evolution-Library</a>
- The SEL enables the programmatic modification and evaluation of
software (C/C++ support using Clang, compiled assembler, and linked ELF
binaries). <a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/vsedach/Vacietis">vacietis</a> - C to
Common Lisp compiler. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
</ul>
<h1 id="cryptography">Cryptography</h1>
<ul>
<li><a href="https://github.com/sharplispers/ironclad">Ironclad</a> -
A library of crypto functions for Common Lisp. Not considered secure,
but is still useful for the message digest functions. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/Shinmera/crypto-shortcuts">crypto-shortcuts</a>
- Collection of common crypto shortcuts. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/eudoxia0/trivial-ssh">trivial-ssh</a> -
An SSH client library. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/dnaeon/cl-ssh-keys">cl-ssh-keys</a> -
Common Lisp system for generating and parsing of OpenSSH keys. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/dnaeon/cl-bcrypt">cl-bcrypt</a> - Common
Lisp system for parsing and generating bcrypt password hashes. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a
href="https://www.gnupg.org/download/index.en.html#gpgme">gpgme</a>
(GnuPG Made Easy) is the standard library to access GnuPG functions from
programming languages. It provides an official Common Lisp system.
<ul>
<li><a
href="https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=tree;f=lang/cl;h=05151bdf839e513f534a1b423d59332a2e46fd5d;hb=HEAD">gpgme
lisp sources</a> (not in Quicklisp). GPL2.</li>
</ul></li>
<li><a
href="https://github.com/ak-coram/cl-frugal-uuid/">cl-frugal-uuid</a> -
Common Lisp UUID library with zero dependencies. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h1 id="cryptocurrencies">Cryptocurrencies</h1>
<ul>
<li><a
href="https://codeberg.org/kilianmh/bitcoin-core-rpc/">bitcoin-core-rpc</a>
- a (hopefully) complete Bitcoin Core RPC client. <a
href="https://directory.fsf.org/wiki/License:AGPL-3.0">AGPL-3.0+</a></li>
<li><a href="https://github.com/rodentrabies/bp">bp</a> - Bitcoin
Protocol components in Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/glv2/cl-monero-tools">cl-monero-tools</a> -
Common Lisp toolbox to work with the Monero cryptocurrency. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>. Not in
Quicklisp.</li>
<li><a
href="https://github.com/glv2/peercoin-blockchain-parser">peercoin-blockchain-parser</a>
- 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.</li>
<li><a
href="https://github.com/glv2/peercoin-calculator">peercoin-calculator</a>
- 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. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>. Not in
Quicklisp.</li>
<li><a href="https://github.com/glv2/peercoin-vote">peercoin-vote</a> -
A voting system based on data from the blockchain (addresses and
balances). <a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>. Not
in Quicklisp.</li>
<li><a href="https://github.com/kilianmh/stacks-api">stacks-api</a> - a
Stacks API client. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">AGPL-3.0</a></li>
</ul>
<p>See also <a
href="https://github.com/defunkydrummer/legochain">legochain</a>, a
simple educational blockchain; <a
href="https://github.com/emotiq/emotiq">emotiq</a>, a next-generation
blockchain with an innovative natural-language approach to smart
contracts built in Common Lisp (stopped).</p>
<h1 id="database">Database</h1>
<ul>
<li><a href="http://marijnhaverbeke.nl/postmodern/">postmodern</a> -
A library for interacting with PostgreSQL. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/dmitryvk/cl-sqlite">cl-sqlite</a> -
Bindings for SQLite. Public domain.</li>
<li><a href="https://github.com/fukamachi/cl-dbi">cl-dbi</a> - A
database-independent interface for Common Lisp. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/fukamachi/sxql">sxql</a> - A DSL for
generating SQL. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/ruricolist/cl-yesql">cl-yesql</a> - SQL
statements live in their own files, in SQL syntax, and are imported into
Lisp as functions. You are not limited to the features a DSL supports.
Based on Clojures Yesql. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/endatabas/endb">endatabas</a> -
Schemaless SQL document database with full history. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">AGPL-3.0</a>.
<ul>
<li>built in Common Lisp and Rust.</li>
<li>in development, alpha product scheduled for Q2 of 2024. <a
href="https://docs.endatabas.com/appendix/roadmap.html">roadmap</a>.</li>
</ul></li>
</ul>
<h2 id="orms">ORMs</h2>
<ul>
<li>👍 <a href="https://github.com/fukamachi/mito">mito</a> - An ORM for
Common Lisp with migrations, relationships and PostgreSQL support <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li><a href="https://github.com/fukamachi/mito-auth">mitho-auth</a>, a
mixin class for use authorization</li>
<li><a
href="https://github.com/fukamachi/mito-attachment">mito-attachment</a>,
a mixin class for file management outside of RDBMS.</li>
</ul></li>
<li><a href="http://www.cliki.net/CLSQL">clsql</a> - An SQL database
with a Common Lisp interface. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li><a href="https://github.com/sergadin/dbd-oracle">dbd-oracle</a> - an
Oracle database driver for CL-DBI. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul></li>
<li><a href="https://github.com/fukamachi/datafly">datafly</a> - A
lightweight database library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
</ul>
<h2 id="persistent-object-databases">Persistent object databases</h2>
<ul>
<li><a
href="https://github.com/hanshuebner/bknr-datastore">bknr.datastore</a>
- a CLOS-based lisp-only database in RAM with transaction logging
persistence. <a
href="https://www.common-lisp.net/project/bknr/html/documentation.html">Manual</a>.
<a
href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">licence</a>.
<ul>
<li>see also this <a
href="https://ashok-khanna.medium.com/persistent-in-memory-data-storage-in-common-lisp-b-k-n-r-37f8ae76042f">good
introductory blog post</a></li>
<li>an example web application using bknr.datastore: <a
href="https://github.com/screenshotbot/screenshotbot-oss">screenshotbot-oss</a>.</li>
<li>See also <a
href="https://github.com/tdrhq/bknr.cluster">bknr.cluster</a>, if you
want a highly-available replicated version of bknr.datastore.</li>
</ul></li>
<li><a href="https://github.com/Shinmera/ubiquitous">ubiquitous</a> - A
library providing easy-to-use persistent configuration storage. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a
href="https://common-lisp.net/project/cl-prevalence/">cl-prevalence</a>
- in-memory database system. Implementation of Object Prevalence, in
which business objects are kept live in memory and transactions are
journaled for system recovery. <a
href="https://github.com/40ants/cl-prevalence">github fork</a>. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>See also <a
href="https://github.com/40ants/cl-prevalence-multimaster">cl-prevalence-multimaster</a>,
to syncronize multiple cl-prevalence systems state.</li>
</ul></li>
</ul>
<p>See also the <a href="#caching-serialization">Caching
(serialization)</a> section.</p>
<h2 id="graph-databases">Graph databases</h2>
<ul>
<li><a href="https://allegrograph.com/">AllegroGraph</a> - a
high-performance, multi-model (document and graph), entity-event
knowledge graph technology.
<ul>
<li>Proprietary, with a free version of a limit of 5 million RDF
triples.</li>
<li>with a <a href="https://allegrograph.cloud/">hosted version</a></li>
<li>AllegroGraph 8.0 (released December, 2023) “incorporates Large
Language Model (LLM) components directly into SPARQL along with vector
generation and vector storage for a comprehensive AI Knowledge Graph
solution.”</li>
</ul></li>
<li><a href="https://github.com/vseloved/cl-agraph">cl-agraph</a>, a
minimal client for AllegroGraph.</li>
<li><a href="https://codeberg.org/Equill/neo4cl">neo4cl</a> - a library
for interacting with Neo4J. Sends Cypher queries to a Neo4J server, and
decodes the responses into something useful for processing in CL. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.
<ul>
<li>and maybe: <a
href="https://github.com/kraison/cl-neo4j">cl-neo4j</a> - a thin neo4j
RESTFUL client interface.</li>
</ul></li>
<li><a
href="https://github.com/kraison/vivace-graph-v3">vivace-graph</a> -
graph database &amp; 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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>“I have used Vivace Graph as an online catalog for millions of
products, as the back end for a complex, adaptable VoIP-based IVR, as
well as data store for several complex big data analysis systems, and
finally as the engine for two recommender systems.” (issue #23)</li>
<li>“Why is vivace graph so fast? I have been comparing it with
SQL-based approach and Neo4j, and vivace graph is much, much
faster.”</li>
</ul></li>
</ul>
<p>and also:</p>
<ul>
<li><a href="https://codeberg.org/Equill/restagraph">restagraph</a> - an
app that dynamically generates REST APIs for a Neo4j database, using a
schema defined within the database. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
</ul>
<!-- lost in translation: (it was slow anyways) -->
<!-- * [facts](https://github.com/cl-facts/facts) - an in-memory graph database with transactions and rollbacks, logging/replay and dumping/loading to/from disk. BSD-style license (ISC). -->
<h2 id="other-db-wrappers">Other DB wrappers</h2>
<ul>
<li><a href="https://github.com/quasi/cl-memcached">cl-memcached</a> -
Fast, thread-safe interface to the Memcached object caching system. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/vseloved/cl-redis">cl-redis</a> - Redis
client. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/CodyReichert/cl-disque">cl-disque</a> -
Disque client. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a
href="https://github.com/orthecreedence/cl-rethinkdb">cl-rethinkdb</a> -
RethinkDB client. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/cmoore/cl-mango/">cl-mango</a> - A
minimalist CouchDB 2.x database client. BSD_3Clause.
<ul>
<li>See also <a
href="https://common-lisp.net/project/clouchdb/">clouchdb</a> - Library
for interacting with CouchDB. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
</ul></li>
<li><a href="https://github.com/antimer/lmdb">lmdb</a> - Bindings to <a
href="http://www.lmdb.tech/doc/">LMDB</a>, the Lightning Memory-mapped
Database, an ACID key-value database with MultiVersion Concurrency
Control.</li>
<li><a href="https://github.com/datagraph/cl-ndbapi">cl-ndbapi</a> -
bindings to the C++ NDB API of <a
href="https://www.rondb.com/">RonDB</a>, “the worlds fastest key value
store”, by <a href="https://dydra.com/home">Dydra</a>. GPLv2.</li>
<li><a href="https://github.com/ak-coram/cl-duckdb">cl-duckdb</a> -
Common Lisp CFFI wrapper around the DuckDB C API. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/cl-rabbit/cl-bunny">cl-bunny</a> -
Common Lisp RabbitMQ client based on IOLib. MIT.</li>
</ul>
<h2 id="migration-tools">Migration tools</h2>
<p>(recall that Mito handles migrations)</p>
<ul>
<li><a href="https://github.com/dnaeon/cl-migratum">cl-migratum</a> - a
system which provides facilities for performing database schema
migrations, designed to work with various databases. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a
href="https://github.com/fisxoj/postmodern-passenger-pigeon/">postmodern-passenger-pigeon</a>
- a migration manager for postmodern. No licence specified.</li>
</ul>
<h2 id="to-third-parties">To third parties</h2>
<ul>
<li><a href="https://github.com/Rudolph-Miller/dyna">dyna</a> - an AWS
DynamoDB ORM. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/mmaul/cl-influxdb/">cl-influxdb</a> - an
interface to the Time Series Database InfluxDB. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/orivej/pzmq">pzmq</a> - ZeroMQ 4.0+
Common Lisp bindings. Unlicense.</li>
</ul>
<h2 id="tools">Tools</h2>
<ul>
<li><a href="https://github.com/dimitri/pgloader">pgloader</a> - a
data loading tool for PostgreSQL. <a
href="https://www.postgresql.org/about/licence/">PostgreSQL Licence</a>.
<ul>
<li>obligatory blog post: <a
href="https://tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster/">Why
is pgloader so much faster?</a> (hint: it was re-written from Python to
Common Lisp)</li>
</ul></li>
</ul>
<h1 id="data-formats">Data Formats</h1>
<h2 id="csv">CSV</h2>
<ul>
<li><a href="https://github.com/AccelerationNet/cl-csv">cl-csv</a> -
A library for parsing CSV files. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.
<ul>
<li><a
href="https://github.com/AccelerationNet/cl-csv/blob/master/DOCUMENTATION.md">documentation</a></li>
<li><a
href="https://dev.to/vindarel/read-csv-files-in-common-lisp-cl-csv-data-table-3c9n">example
blog post</a>.</li>
</ul></li>
<li><a href="https://github.com/tlikonen/cl-decimals">cl-decimals</a> -
Decimal number parser and formatter. Public domain.</li>
<li><a href="https://github.com/defunkydrummer/auto-text">auto-text</a>
- automatic (encoding, end of line, column width, csv delimiter etc)
detection for text files. <a
href="https://opensource.org/licenses/MIT">MIT</a>. See also <a
href="https://github.com/t-sin/inquisitor">inquisitor</a> for detection
of asian and far eastern languages.</li>
<li><a
href="https://github.com/KoenvdBerg/csv-validator">csv-validator</a> -
Validates tabular CSV data using predefined validations, inspired from
its Python homologue “Great Expectations”. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul>
<p>See also: cl-duckdb for fast parsing, <a
href="https://lisp-stat.dev/docs/manuals/data-frame/">lisp-stats
data-frames <code>read-csv</code></a>, <a
href="https://github.com/sirherrbatka/vellum-csv/">vellum-csv</a> (data
frames library), vellum-duckdb.</p>
<h2 id="json">JSON</h2>
<ul>
<li>👍 <a href="https://github.com/Zulu-Inuoe/jzon/">jzon</a> - a
correct, safe and fast JSON parser. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>jzon is the only CL JSON library which correctly declines all
invalid inputs per the official JSON test suite and accepts all valid
inputs per that suite.</li>
<li>it doesnt crash on invalid input (jsown), doesnt choke on large
datasets (Jonathan), and more.</li>
<li>v1.0 released in the Quicklisp dist of February, 2023.</li>
<li>“I believe jzon to be the superior choice and hope for it to become
the new, true de-facto library in the world of JSON-in-CL once and for
all.”</li>
</ul></li>
<li><a href="https://github.com/yitzchak/shasht">shasht</a> - Common
Lisp JSON reading and writing for the Kzinti. <a
href="https://directory.fsf.org/wiki/License:Expat">MIT</a>.
<ul>
<li>“Shasht is one of the two new libraries that I particularly like and
is already in quicklisp. It is fast, it handles null correctly, it
encodes CLOS objects, structures and hash-tables. It can also do
incremental encoding.” Sabra Crolleton.</li>
</ul></li>
<li><a href="https://github.com/sharplispers/cl-json">cl-json</a> - A
highly customizable JSON encoder and decoder. <a
href="https://directory.fsf.org/wiki/License:Expat">MIT</a>.
<ul>
<li>“cl-json and yason are still the work horses if you need fine
control, but speed is not their forte.” <span class="citation"
data-cites="sabracrolleton">@sabracrolleton</span></li>
</ul></li>
<li><a href="https://github.com/fosskers/parcom">parcom/json</a> - An
extension to <code>parcom</code> for simple, fast, no-dependency JSON
parsing.</li>
</ul>
<p>See this <a
href="https://sabracrolleton.github.io/json-review">extensive
comparison</a> of many more JSON libraries, as well as <a
href="https://github.com/fosskers/parcom?tab=readme-ov-file#json-benchmarks">these
benchmarks</a>.</p>
<p>JSON tools:</p>
<ul>
<li><a href="https://github.com/atlas-engineer/njson">NJSON</a> -
Parser-agnostic JSON indexing (with JSON Pointer support),
destructuring, and validation framework. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/gschjetne/json-mop">json-mop</a> - A
metaclass for bridging CLOS and JSON objects. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>depends on YASON</li>
<li>for JSON libraries that dont do it natively (jzon, shasht and
cl-json are able to <em>encode</em> CLOS objects to JSON out of the box,
and cl-json has the ability to <em>decode</em> JSON objects into a
“fluid-class” CLOS object.)</li>
</ul></li>
<li><a
href="https://github.com/y2q-actionman/cl-json-pointer">cl-json-pointer</a>
- A JSON Pointer implementation. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/dnaeon/cl-jwk">cl-jwk</a> - Common Lisp
system for decoding public JSON Web Keys (JWK). BSD License.</li>
<li><a href="https://github.com/fukamachi/jose">JOSE</a> - A JSON Object
Signing and Encryption (JOSE) implementation for Common Lisp.
BSD_2Clause.</li>
</ul>
<p>and search for JSON RPC below.</p>
<h2 id="toml">TOML</h2>
<ul>
<li><a href="https://github.com/fosskers/parcom">parcom/toml</a> - An
extension to <code>parcom</code> for simple, no-dependency TOML
parsing.</li>
<li><a href="https://github.com/sheepduke/clop">clop</a> - A
1.0-compliant TOML parser.</li>
</ul>
<h2 id="xml">XML</h2>
<ul>
<li><a href="https://common-lisp.net/project/cxml/">CXML</a> - XML
parser and serializer, with a range of extension libraries. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>👍 has an incremental parser, allowing to parse big files.</li>
<li>see the <a href="https://github.com/ruricolist/FXML">FXML</a> 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.</li>
</ul></li>
<li><a href="https://github.com/Shinmera/plump">Plump</a> - A lenient
XML parser. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/fosskers/parcom">parcom/xml</a> - An
extension to <code>parcom</code> for simple, fast XML parsing.</li>
<li><a href="https://github.com/sharplispers/xpath">xpath</a> (<a
href="https://common-lisp.net/project/plexippus-xpath/atdoc/index.html">homepage</a>
- Implementation of the XML Path Language (XPath) Version 1.0. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a href="http://cliki.net/S-XML">s-xml</a> - A basic parser. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/rpgoldman/xmls">xmls</a> - A small,
simple, non-validating XML parser. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/TBRSS/cl-feedparser">cl-feedparser</a> -
A Common Lisp (RSS, Atom) feed parser. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a></li>
<li><a href="https://github.com/AccelerationNet/buildnode">Buildnode</a>
- A common lisp library to ease interaction with CXML-dom, such as
building Excel spreadsheets. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<p>To read Excel files:</p>
<ul>
<li><a href="https://github.com/defunkydrummer/lisp-xl">lisp-xl</a> -
Common Lisp Microsoft XLSX (Microsoft Excel) loader for
arbitrarily-sized / big-size files. MIT.</li>
<li><a href="https://gitlab.common-lisp.net/cungil/xlsx">xlsx</a> - a
basic reader for Excel files.</li>
</ul>
<h2 id="yaml">YAML</h2>
<ul>
<li>👍 <a href="https://github.com/eudoxia0/cl-yaml.git">cl-yaml</a> - a
YAML parser and emitter built on top of libyaml. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>an active fork: <a
href="https://nanako.mooo.com/fossil/cl-remiyaml/index">cl-RemiYaml</a>
with a few fixes. Not a drop-in replacement.</li>
</ul></li>
<li><a href="https://github.com/jasom/nyaml">nyaml</a> - A lisp native
YAML parser. MIT.</li>
<li><a href="https://github.com/mabragor/cl-yaclyaml">cl-yacclyaml</a> -
a pure lisp YAML processor (loader, but not yet dumper). <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
</ul>
<h1 id="data-structures">Data Structures</h1>
<ul>
<li>👍 <a href="https://github.com/vindarel/cl-str">str</a> - a modern,
simple and consistent string manipulation library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li>👍 <a href="https://common-lisp.net/project/fset">FSet</a> - A
functional, set-theoretic collections data structure library. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>an extension: <a href="https://git.sr.ht/~skin/jfon">jfon</a> - an
attempt at porting JZON (JSON parsing library) to FSet.</li>
</ul></li>
<li><a href="https://github.com/ndantam/sycamore">sycamore</a> - a fast,
purely functional data structure library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>comparison: <a
href="https://scottlburson2.blogspot.com/2024/10/comparison-fset-vs-sycamore.html">FSet
vs. Sycamore</a></li>
</ul></li>
<li><a
href="https://github.com/Shinmera/trivial-extensible-sequences">trivial-extensible-sequences</a>
- Portability library for the extensible sequences protocol (<a
href="http://www.sbcl.org/manual/#Extensible-Sequences">SBCL
documentation</a>). <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/glv2/bst">bst</a> - Binary Search Tree.
<a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="http://nikodemus.github.io/pileup/">pileup</a> - a
portable, performant, and thread-safe binary heap for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/danlentz/cl-ctrie">cl-ctrie</a> -
lock-free, concurrent, key/value index with efficient memory-mapped
persistence and fast transient storage models. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/sirherrbatka/cl-data-structures">cl-data-structures</a>
- a portable collection of data structures and algorithms (mainly dicts
and sequences, with some statistical functions). <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/Dimercel/listopia">listopia</a> - a list
manipulation library inspired by Haskells Data.List. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/samebchase/hash-set/">hash-set</a> - a
convenience library implementing hash sets on top of CL hash tables <a
href="http://unlicense.org/">The Unlicense</a></li>
<li><a href="https://github.com/thephoeron/bit-smasher">bit-smasher</a>
- Common Lisp library for handling bit vectors, bit vector arithmetic,
and type conversions. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://common-lisp.net/project/cl-containers/">cl-containers</a>
- an extensive library of data structures and utilities - queues, trees,
heaps, doubly-linked lists, sets, bags,… <a
href="https://opensource.org/licenses/MIT">MIT</a></li>
<li><a
href="https://github.com/privet-kitty/cl-competitive">cl-competitive</a>
- Common Lisp algorithms collection for competitive programming. Public
domain, CCO or MIT.</li>
<li><a href="https://github.com/fosskers/cl-nonempty">nonempty</a> -
Non-empty collections for Common Lisp. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a
href="https://github.com/orthecreedence/cl-hash-util">cl-hash-util</a> -
Hash-table creation, access, and manipulation utilities. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/stylewarning/cl-permutation">cl-permutation</a>
- Permutations and permutation groups in Common Lisp. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul>
<p>Accessing data structures:</p>
<ul>
<li>👍 <a href="https://github.com/AccelerationNet/access/">access</a> -
Consistent and nested access to most common data structures. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/smithzvk/modf">modf</a> - a setf-like
macro for functional programming.</li>
</ul>
<p>Other data structures:</p>
<ul>
<li><a href="https://github.com/marcoheisig/bitfield">bitfield</a> -
Efficiently represent several finite sets or small integers as a single
non-negative integer. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/garlic0x1/rope">rope</a> - Immutable
Ropes for Common Lisp. MIT.</li>
</ul>
<p>See also:</p>
<ul>
<li><a
href="https://gist.github.com/WetHat/9682b8f70f0241c37cd5d732784d1577">Pretty
printing tree data structures in Common Lisp</a> (as a Jupyter
notebook)</li>
</ul>
<h1 id="docker-images">Docker images</h1>
<ul>
<li><a
href="https://common-lisp.net/project/cl-docker-images/">cl-docker-images</a>
- Docker images for ABCL, CCL, ECL, and SBCL on Windows (amd64) and
Alpine and Debian (amd64, arm64, arm/v7) <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a
href="https://github.com/40ants/base-lisp-image">base-lisp-image</a> -
base Docker image for Common Lisp projects with SBCL or CCL and the
latest ASDF, Qlot and Roswell.</li>
<li><a href="https://github.com/40ants/setup-lisp">40ants/setup-lisp</a>
- GitHub Action to Setup Common Lisp tools.
<ul>
<li>updates ASDF, installs Qlot, installs Roswell</li>
<li>for multiple implementations</li>
<li>for Ubuntu, OSX and Windows.</li>
<li>Example use: <a
href="https://github.com/Shirakumo/trial/blob/master/.github/workflows/examples.yml">Trials
CI</a></li>
</ul></li>
<li><a href="https://github.com/yitzchak/archlinux-cl">archlinux-cl</a>
- Docker Arch Linux image with Common Lisp implementations (7 to this
day). MIT.</li>
<li><a
href="https://gitlab.com/lockie/docker-lisp-gamedev">docker-lisp-gamedev</a>
- A Docker image containing tools necessary for Common Lisp game
development and deployment. Comes in Linux and Windows variety.
Thoroughly tested via CI.</li>
</ul>
<h1 id="foreign-function-interface-languages-interop">Foreign Function
Interface, languages interop</h1>
<h2 id="c">C</h2>
<ul>
<li><a href="https://github.com/cffi/cffi">CFFI</a> - Portable,
easy-to-use C foreign function interface. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li><a href="https://github.com/bohonghuang/cffi-ops">cffi-ops</a> -
helps write concise CFFI-related code.</li>
<li><a
href="https://github.com/bohonghuang/cffi-object">cffi-objects</a> -
enables fast and convenient interoperation with foreign objects.</li>
</ul></li>
<li>👍<a href="https://github.com/rpav/cl-autowrap">cl-autowrap</a> -
Automatically parses header files into CFFI definitions. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/sdilts/cl-bindgen">cl-bindgen</a> - A
command line tool and library for creating Common Lisp language bindings
from C header files. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/andy128k/cl-gobject-introspection">cl-gobject-introspection</a>
- <a href="https://gi.readthedocs.io/en/latest/">Gobject
Introspection</a> FFI. Automatic bindings to call into the C library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.
Generate a lisp interface with <a
href="https://github.com/kat-co/gir2cl">gir2cl</a>. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a href="https://github.com/Islam0mar/CL-CXX-JIT">cl-cxx-jit</a> -
Common Lisp and C++ interoperation with JIT. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="clojure">Clojure</h2>
<ul>
<li><a href="https://github.com/lsevero/abclj">ABCLJ</a> - dead easy
Clojure to Common lisp interop. EPL-2.0.</li>
</ul>
<p>In development:</p>
<ul>
<li><a href="https://github.com/ruricolist/cloture">Cloture</a> -
Clojure in Common Lisp.</li>
</ul>
<blockquote>
<p>Cloture is in very early (pre-alpha) stages, but it has progressed
far enough to load clojure.test, allowing the test suite to actually be
written in Clojure.</p>
</blockquote>
<p>See also those libraries:</p>
<ul>
<li>NEW! in 2025 <a
href="https://github.com/dtenny/clj-coll">clj-coll</a> - Clojure
collection and sequence APIs in Common Lisp, with optional Clojure
collection syntax. <a
href="http://www.eclipse.org/legal/epl-v10.html">Eclipse</a>.
<ul>
<li>provides immutable Cons, Queue, PersistentList, capabilities as well
as Vector, Set, and Map analogues built on FSet (but accessed entirely
via Clojure APIs).</li>
<li>optional read syntax so you can type <code>{:a 1 :b 2}</code>,
<code>#{1 2 3}</code>, and <code>[1 2 3]</code>.</li>
</ul></li>
<li><a href="https://github.com/dtenny/clj-con">clj-con</a> -
Clojure-style concurrency operations in Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/dtenny/clj-re/">clj-re</a> -
Clojure-style regular expression functions.</li>
<li><a href="https://github.com/dtenny/clj-arrows">clj-arrows</a> -
Clojure-compatible threading/transformation/arrow macros for Common
Lisp.</li>
<li><a href="https://github.com/dtenny/with-redefs">with-redefs</a> -
enables rebinding of global functions, inspired by Clojures
with-redefs.</li>
<li><a href="https://github.com/eigenhombre/cl-oju/">cl-oju</a> - a few
idioms, mostly relating to sequences, that I miss when writing Common
Lisp. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="erlang">Erlang</h2>
<ul>
<li><a href="https://github.com/flambard/CLERIC">CLERIC</a> - a Common
Lisp Erlang Interface. An implementation of the Erlang distribution
protocol, comparable with erl_interface and jinterface. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="java">Java</h2>
<ul>
<li><a href="https://common-lisp.net/project/cl-plus-j/">cl+j</a> - A
JNI-based interface to a JVM via CFFI. Not available on Quicklisp. Does
not reliably work with all implementations. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/atgreen/openldk">open-ldk</a> - A Java
JIT Compiler and Runtime in Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">GPL3.0</a>.
(Work In Progress)
<ul>
<li>“bridges the gap between Java and Common Lisp by incrementally
translating Java bytecode into Lisp, which is then compiled into native
machine code for execution. This unique approach allows Java classes to
be seamlessly mapped to Common Lisp Object System (CLOS) classes,
enabling effortless integration between Java and Common Lisp
codebases.”</li>
<li>“provides a practical solution for integrating Java libraries into a
Lisp-based workflow without the need for an out-of-process Java runtime
environment.”</li>
</ul></li>
</ul>
<h2 id="objective-c">Objective-C</h2>
<ul>
<li><a
href="https://github.com/fiddlerwoaroof/objc-lisp-bridge">objc-lisp-bridge</a>
- A portable reader and bridge for interacting with Objective-C and
Cocoa. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/shinmera/cocoas">cocoas</a> - A toolkit
library to help deal with CoreFoundation, Cocoa, and objc. zlib.</li>
</ul>
<h2 id="python">Python</h2>
<ul>
<li><a
href="https://github.com/pinterface/burgled-batteries">burgled-batteries</a>
- A bridge between Python and Common Lisp. The goal is that Lisp
programs can use Python libraries. Not available on Quicklisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/marcoheisig/cl4py">cl4py</a> - The
library cl4py (pronounce as clappy) allows Python programs to call
Common Lisp libraries. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/bendudson/py4cl">py4cl</a> - A library
that allows Common Lisp code to access Python libraries. It is basically
the inverse of cl4py. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>its fork <a href="https://github.com/digikar99/py4cl2">py4cl2</a>,
at first less stable, now more developped and faster.</li>
<li><a href="https://github.com/digikar99/py4cl2-cffi">py4cl2-cffi</a> -
CFFI based alternative to py4cl2.
<ul>
<li>“When capable, the CFFI approach can be a 50 times faster than
py4cl2.”</li>
</ul></li>
</ul></li>
</ul>
<p>See also <a
href="https://github.com/cxxxr/async-process/">async-process</a>.</p>
<ul>
<li><a href="https://github.com/metawilm/cl-python">cl-python</a> - an
implementation of Python in Common Lisp. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>, not under
active development.</li>
</ul>
<h2 id="net-core">.Net Core</h2>
<ul>
<li><a href="https://github.com/Lovesan/bike">Bike</a> - a
cross-platform .Net Core interface. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="miscellaneous">Miscellaneous</h2>
<ul>
<li><a href="http://foil.sourceforge.net/">Foil</a> - A foreign object
interface; works with the JVM and CLI. Not available on Quicklisp. <a
href="https://directory.fsf.org/wiki/License:CPLv1.0">CPL 1.0</a>.</li>
</ul>
<p>For Emacs Lisp:</p>
<ul>
<li><a href="https://gitlab.com/sasanidas/cedar">CEDAR</a> - an advance
interactive development environment aiming to be Emacs compatible with
all the features that come with it. (WIP)</li>
<li><a
href="https://sourceforge.net/p/clocc/hg/ci/default/tree/src/cllib/elisp.lisp">CLOCCs
elisp.lisp</a> - Emacs Lisp in Common Lisp.
<ul>
<li>implementation of the Emacs Lisp language as a Common Lisp package.
[1999]</li>
<li>does not attempt to reimplement the library of functions provided in
Emacs to manipulate buffers and other related objects, so it focuses on
the “pure” Emacs Lisp language; but it was able to run the non-UI parts
of the Emacs Calendar. (S. Monnier, M. Sperber)</li>
</ul></li>
</ul>
<h1 id="game-development">Game Development</h1>
<ul>
<li><a href="https://github.com/shirakumo/trial">Trial</a> - 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. Custom: <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a> with a
political clause added.
<ul>
<li>the <a href="https://kandria.com/">Kandria</a> game is built with
Trial.</li>
</ul></li>
<li><a href="https://github.com/bohonghuang/claw-raylib">claw-raylib</a>
(2023) - Fully auto-generated Common Lisp bindings to Raylib and Raygui
using claw and cffi-object. Apache 2.0.</li>
<li><a href="https://github.com/fosskers/raylib/">raylib</a> (2025) -
Hand-written bindings to Raylib for improved performance and smaller
dependency footprint. <a
href="http://mozilla.org/MPL/2.0/">MPL-2.0</a>.</li>
<li><a
href="https://borodust.org/projects/trivial-gamekit/getting-started/">trivial-gamekit</a>
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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/bufferswap/ViralityEngine">virality</a>
- A component-based game engine written in Common Lisp <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://gitlab.com/dto/xelf/">Xelf</a> - Extensible game
library. Not available on Quicklisp. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.</li>
</ul>
<p>Utilities:</p>
<ul>
<li><a href="https://shirakumo.github.io/cl-gamepad">cl-gamepad</a> -
Access to gamepads and joysticks on Windows, Mac OS, and Linux. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://shirakumo.github.io/cl-mpg123">cl-mpg123</a> and <a
href="https://shirakumo.github.io/cl-out123">cl-out123</a>, bindings
libraries for libmpg123 and libout123 respectively, giving you fast and
easy to use mp3 decoding and cross-platform audio output. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
</ul>
<h1 id="graphics">Graphics</h1>
<p>These are libraries for working with graphics, rather than making
GUIs (i.e. widget toolkits), which have their own section.</p>
<ul>
<li><a href="https://github.com/vydd/sketch">Sketch</a> - A CL
framework for the creation of electronic art, graphics, and lots more.
<a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/wmannis/cl-svg">cl-svg</a> - A basic
library for producing SVG files. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/privet-kitty/dufy">dufy</a> - exact
color manipulation and conversion in various color models. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/slyrus/opticl">opticl</a> - a library
for representing and processing images. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a href="https://github.com/cbaggers/varjo">Varjo</a> - Lisp to GLSL
translator. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a href="http://www.xach.com/lisp/vecto/">Vecto</a> - Simple vector
drawing library. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="http://www.xach.com/lisp/zpng/">zpng</a> - A library for
creating PNG files. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/lisp-mirror/pngload">pngload-fast</a> -
A PNG (Portable Network Graphics) image format decoder in portable
Common Lisp with an emphasis on speed. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/tokenrove/imago">imago</a> - image
manipulation library for Common Lisp.
<ul>
<li>supports images in png, pcx, portable bitmap (.pnm), Truevision TGA
(.tga) and jpeg formats</li>
<li>allows for: resizing, rotation, emboss effect, inverting colors,
adjusting contrast, manipulating color elements, composing pictures,
drawing simple primitives…</li>
<li>is integrated with common-lisp-jupyter.</li>
</ul></li>
</ul>
<p>These are bindings:</p>
<ul>
<li><a href="https://github.com/shirakumo/glfw">glfw</a> NEW in 2023 -
An up-to-date Common Lisp bindings library to the most recent GLFW
OpenGL context management library.</li>
<li><a href="https://github.com/byulparan/common-cv">common-cv</a> - the
OpenCV (Open Source Computer Vision Library) binding library for
CommonLisp. No license specified.</li>
<li><a href="https://github.com/rpav/cl-cairo2">cl-cairo2</a> - Cairo
bindings. <a
href="https://directory.fsf.org/wiki/License:Boost1.0">Boost
1.0</a></li>
<li><a href="http://weitz.de/cl-gd/">cl-gd</a> - A library providing an
interface to the GD graphics library. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/anwyn/cl-horde3d/">cl-horde3d</a> - FFI
bindings to the Horde3D graphics library. Not available on Quicklisp. <a
href="https://directory.fsf.org/wiki/License:EPLv1.0">EPL 1.0</a></li>
<li><a href="https://github.com/sharplispers/cl-jpeg">cl-jpeg</a> -
Baseline JPEG encoder and decoder library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a
href="https://github.com/resttime/cl-liballegro">cl-liballegro</a> -
Interface and bindings to the Allegro 5 game programming library. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/3b/cl-opengl">cl-opengl</a> - CFFI
bindings to OpenGL, GLU and GLUT APIs. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/lispgames/cl-sdl2">cl-sdl2</a> -
Bindings for SDL2 using C2FFI. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/BradWBeer/CLinch">CLinch</a> - Common
Lisp 2D/3D graphics engine for OpenGL. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/tkych/donuts">donuts</a> - Graphviz
interface for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/lispbuilder/lispbuilder">lispbuilder-sdl</a> -
A set of bindings for SDL. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/TBRSS/lisp-magick-wand">lisp-magick-wand</a> -
ImageMagick bindings. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>. Not
in Quicklisp.</li>
<li><a
href="https://www.common-lisp.net/project/okra/manual.html">okra</a> -
CFFI bindings to Ogre. Not available on Quicklisp. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/takagi/cl-cuda">cl-cuda</a> - A library
to use NVIDIA CUDA in Common Lisp programs. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul>
<h1 id="gui">GUI</h1>
<p>For an overview and a tutorial on GUI toolkits, see <a
href="https://lispcookbook.github.io/cl-cookbook/gui.html">the
Cookbook/GUI</a>.</p>
<ul>
<li><a href="http://www.lispworks.com/products/capi.html">LispWorks
CAPI</a> - A portable GUI toolkit, with mobile runtime. Proprietary, but
comes with a free version.</li>
<li><a
href="https://franz.com/products/allegro-common-lisp/acl_gui_tools.lhtml">Allegros
Common Graphics</a>- a library of functions for writing windowized GUIs
for Windows, Mac and Linux. Proprietary with a free version.
<ul>
<li>since Allegro 10.1 (March, 2022), the IDE and the Common Graphics
toolkit <a href="https://franz.com/ftp/pri/acl/cgjs/doc.html">runs in
the browser</a>.</li>
</ul></li>
<li>👍 <a href="https://github.com/Shinmera/qtools/">Qtools</a> - A Qt
toolkit, based on CommonQt. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a> Also <a
href="https://github.com/Shinmera/qtools-ui">Qtools-ui</a> (premade UI
components), with <a
href="https://www.youtube.com/watch?v=KwASFOhYta4&amp;index=7&amp;list=PLkDl6Irujx9Mh3BWdBmt4JtIrwYgihTWp">videos</a>.</li>
<li><a href="https://github.com/commonqt/commonqt">CommonQt</a> - A
Common Lisp binding for Qt4 via QtSmoke. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.
<ul>
<li><a href="https://github.com/commonqt/commonqt5/">CommonQt5</a> -
bindings for Qt5.
<ul>
<li>warn: currently difficult to install. Used in production© by
SISCOG.</li>
</ul></li>
</ul></li>
<li><a href="http://www.peter-herth.de/ltk/">ltk</a> - A binding for
the Tk toolkit. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a> or <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.
<ul>
<li><a href="https://peterlane.netlify.app/ltk-examples/">LTk
Examples</a> - Provides LTk examples for the tkdocs tutorial.</li>
<li><a href="https://peterlane.netlify.app/ltk-plotchart/">LTk
Plotchart</a> - 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…).</li>
</ul></li>
<li><a href="https://codeberg.org/cage/nodgui">nodgui</a> - Bindings for
the Tk toolkit, based on Ltk, with syntax sugar and additional widgets.
<a href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>🎨 supports <a
href="https://wiki.tcl-lang.org/page/List+of+ttk+Themes">tk custom
themes</a>, such as <a
href="https://ttkthemes.readthedocs.io/en/latest/themes.html">ttkthemes</a>
and <a
href="https://github.com/rdbende/Forest-ttk-theme">Forest-ttk-theme</a>.</li>
<li>supports an SDL frame as an alternative to the Tk canvas when fast
rendering is needed. For 2D (pixel-based) and 3D rendering (using
openGL).</li>
</ul></li>
<li><a href="https://github.com/lispnik/iup/">IUP</a> - CFFI bindings to
the <a href="https://www.tecgraf.puc-rio.br/iup/">IUP</a> Portable User
Interface library (pre-ALPHA).
<ul>
<li>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.</li>
<li>has a web view.</li>
</ul></li>
<li>🆕 <a href="https://github.com/bohonghuang/cl-gtk4">cl-gtk4</a> -
GTK4/Libadwaita/WebKit binding for Common Lisp. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a href="https://github.com/crategus/cl-cffi-gtk">cl-cffi-gtk</a> -
Binding for GTK+3. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.
<ul>
<li>a tutorial: <a
href="https://dev.to/goober99/learn-common-lisp-by-example-gtk-gui-with-sbcl-5e5c">Learn
Common Lisp by Example: GTK GUI with SBCL</a></li>
</ul></li>
<li><a href="https://github.com/dmitryvk/cl-gtk2">cl-gtk2</a> - A
binding for GTK+2. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://tomscii.sig7.se/barium/">Barium</a> - an X widget
toolkit, directly accessing the X client library and other platform
libraries (OpenGL, Cairo). <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>not a wrapper of another toolkit. Allows incremental GUI
development.</li>
<li>new as of April, 2025.</li>
</ul></li>
</ul>
<p>But thats not all.</p>
<ul>
<li><a
href="https://github.com/plkrueger/CocoaInterface/">CocoaInterface</a> -
Cocoa interface for Clozure Common Lisp. Build Cocoa user interface
windows dynamically using Lisp code and bypass the typical Xcode
processes. It has <a
href="https://github.com/plkrueger/CocoaInterface/blob/master/Documentation/UserInterfaceTutorial.pdf">good
documentation and a tutorial</a>.</li>
<li><a href="https://common-lisp.net/project/mcclim/">McCLIM</a> - An
implementation of the Common Lisp Interface Manager, version II. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.
<ul>
<li>example project: a Lem editor CLIM interface: <a
href="https://github.com/lem-project/lem/discussions/1311#discussioncomment-10203860">discussion</a>,
<a
href="https://framapiaf.org/@frescosecco@mastodon.social/112909105163460836">screenshot</a>.</li>
<li><a href="https://codeberg.org/contrapunctus/anathema">Anathema</a>,
a theme library for McCLIM applications. Unlicense.</li>
</ul></li>
<li><a href="https://github.com/joachifm/cl-webkit">cl-webkit</a> - A
binding to WebKitGTK+. Also adds web browsing capabilities to an
application, leveraging the full power of the WebKit browsing engine. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fjames86/ftw">ftw</a> - A Win32 GUI
library. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://gitlab.com/eql">eql, eql5, eql5-android</a> -
Embedded Qt4 and Qt5 Lisp, embedded in ECL, embeddable in Qt. Port of
EQL5 to the Android platform. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><a
href="https://play.google.com/store/apps/details?id=org.eql5.android.repl&amp;pcampaignid=web_share">EQL5
on the Android store</a></li>
</ul></li>
<li><a
href="https://github.com/borodust/bodge-nuklear">bodge-nuklear</a> -
Wrapper over the <a
href="https://github.com/Immediate-Mode-UI/Nuklear">Nuklear</a>
immediate mode GUI library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/JolifantoBambla/vk">vk</a> - Common
Lisp/CFFI bindings for the Vulkan API. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>Other utilities:</p>
<ul>
<li><a href="https://github.com/Shinmera/file-select">file-select</a> -
A library to invoke the native system file dialog to select or create
files. Zlib.</li>
</ul>
<p>See also this <a
href="https://github.com/defunkydrummer/abcl-jazz">demo to use Java
Swing from ABCL</a>.</p>
<h2 id="web-views">Web views</h2>
<p>For Electron, see:</p>
<ul>
<li><a
href="https://github.com/mikelevins/electron-lisp-boilerplate">Electron-lisp-boilerplate</a>
- a rudimentary boilerplate for building Electron apps that start a Lisp
process.</li>
<li><a href="https://ceramic.github.io/">ceramic</a> - 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.</li>
<li>NOTE: the main idea in embedding a lisp web app in Electron is to
start the lisp webserver as an async process from Electrons
<code>main.js</code> file, and to point the Electron window to the
localhost URL. Thats it.</li>
</ul>
<p>Read: <a
href="https://lisp-journey.gitlab.io/blog/three-web-views-for-common-lisp--cross-platform-guis/">Three
web views for Common Lisp</a>.</p>
<p>For other web views, see:</p>
<ul>
<li><a href="https://github.com/garlic0x1/cl-webui/">cl-webui</a> -
bindings for <a href="https://webui.me/">webui</a>, that allows to use
any web browser or WebView as GUI.</li>
<li><a
href="https://github.com/rabbibotton/clog/tree/main/clogframe">clogframe</a>
- an executable wrapper for webview.h, allowing to display any web
application served by a Common Lisp server.
<ul>
<li>clogframe does <em>not</em> induce the use of the whole CLOG
framework.</li>
</ul></li>
</ul>
<h2 id="mobile">Mobile</h2>
<ul>
<li><a href="http://www.lispworks.com/products/lw4mr.html">LispWorks
mobile runtime</a> - Android and iOs. Proprietary.</li>
<li><a href="https://gitlab.com/eql/lqml">LQML</a> - a lightweight ECL
binding to QML (both Qt5 and Qt6) derived from EQL5. LGPL and public
domain.</li>
<li><a
href="https://github.com/bohonghuang/sbcl-termux-build/">sbcl-termux-build</a>
- Prebuilt SBCL binary for Android (Termux).</li>
</ul>
<p>Also:</p>
<p><a href="https://github.com/Gleefre/hello-alien/">hello-allien</a>,
SBCL built for an Android application (very new, 2023).</p>
<h1 id="implementations">Implementations</h1>
<ul>
<li><a href="http://www.sbcl.org/index.html">SBCL</a> - Steel Bank
Common Lisp. A fork of CMUCL; compiles to efficient machine code. <a
href="http://www.sbcl.org/manual/index.html#ANSI-Conformance">Standard
compliance</a>. Public domain, with some parts under <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a> and <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.
<ul>
<li>see also: <a
href="https://github.com/quil-lang/sbcl-librarian">sbcl-librarian</a> -
Dynamic library delivery tools for SBCL. Create shared libraries that
can be called from C or Python. MIT. <a
href="https://mstmetent.blogspot.com/2022/04/using-lisp-libraries-from-other.html">Blog
post</a>. <a
href="https://lispcookbook.github.io/cl-cookbook/dynamic-libraries.html">Tutorial</a>.</li>
<li><a href="https://github.com/sionescu/sbcl-goodies">SBCL-GOODIES</a>
- Distributing binaries with Common Lisp and foreign libraries: libssl,
libcrypto and libfixposix are statically baked in. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/olnw/sbcl-builds">Nightly Windows builds
of SBCL</a> - Nightly builds of SBCL using MSYS2 UCRT64. See also <a
href="https://github.com/roswell/sbcl_bin/releases/">Roswells SBCL MSI
builds</a>.</li>
<li><a href="https://community.chocolatey.org/packages/sbcl">SBCL on
Chocolatey for Windows</a> (unofficial)</li>
<li>[WIP, 2021] <a
href="https://www.timmons.dev/posts/static-executables-with-sbcl-v2.html">Static
Executables with SBCL</a>.</li>
<li><a href="https://github.com/lockie/sbcl-w7">SBCL Windows builds
supporting Windows 7+</a>, packaged into NSIS installer and updated
monthly (unofficial)</li>
</ul></li>
<li><a href="//ccl.clozure.com/">CCL</a> - Clozure Common Lisp;
compiler-only implementation, generates native code. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://common-lisp.net/project/ecl/">ECL</a> - Embeddable
Common Lisp; compiles to C. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.
<ul>
<li>WASM support in development (<a
href="https://nlnet.nl/project/ECL/">NLNET grant in 2025</a>)</li>
<li><a href="https://github.com/chee/eclweb">eclweb</a> is <a
href="https://repl.chee.party/">a proof-of-concept REPL inside a
browser</a> using Web Assembly (WASM).</li>
</ul></li>
<li><a href="https://common-lisp.net/project/armedbear/">ABCL</a> -
Armed Bear Common Lisp; targets the JVM, compiles to bytecode. <a
href="https://common-lisp.net/project/armedbear/faq.shtml#qa">Standard
conformance</a>. <a href="http://www.gnu.org/copyleft/gpl.html">GNU
GPL3</a> with <a
href="http://www.gnu.org/software/classpath/license.html">Classpath
exception</a>.
<ul>
<li><a
href="https://gitlab.com/cl-projects/abcl-memory-compiler">abcl-memory-compiler</a>
- a way to compile Java source code to create Java classes at runtime
with ABCL. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.</li>
</ul></li>
<li><a href="https://github.com/drmeister/clasp">CLASP</a> - 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. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPL2.1</a>
(and others).</li>
</ul>
<p>Proprietary:</p>
<ul>
<li><a href="http://www.lispworks.com/">LispWorks</a> - an integrated
cross-platform development tool for Common Lisp.
<ul>
<li>reputed features include: the CAPI cross-platform and native GUI
toolkit, the LispWorks IDE, the mobile platforme runtime (iOs, Android),
its Java interface, the tree shaker to build lighter binaries, its
KnowledgeWorks system for “rule-based, object-oriented, logical,
functional and database programming”, and more.</li>
<li>has a free edition, with limitations (heap size limit, time
limit).</li>
</ul></li>
<li><a href="https://franz.com/products/allegro-common-lisp/">Allegro
CL</a> - provides the full ANSI Common Lisp standard with many
extensions.
<ul>
<li>reputed features include: the AllegroCache object persistence
database system, the KnowledgeGraph system, its concurrent garbage
collector, its web-based IDE, and more.</li>
<li>has a free edition. It includes AllegroCache, with a size
limit.</li>
</ul></li>
</ul>
<p>Other implementations, mainly for historical purposes:</p>
<ul>
<li><a href="//www.cons.org/cmucl/">CMUCL</a> - An implementation from
Carnegie Mellon University. Public domain. SBCL is a fork of CMUCL.</li>
<li><a href="http://www.clisp.org/">GNU CLISP</a> - A GNU
implementation; contains a compiler and an interpreter. <a
href="http://www.gnu.org/software/clisp/impnotes.html">Standard
conformance</a>. <a href="http://www.gnu.org/copyleft/gpl.html">GNU
GPL3</a>. They develop <a href="https://gitlab.com/gnu-clisp/clisp">on
Gitlab</a>.
<ul>
<li>compiles to bytecode, its default REPL is more user friendly than
SBCLs (with symbol completion and readline integration).</li>
<li>however, it is not actively developed, it doesnt comply entirely to
the ANSI standard, it is less performant than SBCL and it is lacking
compatibility features.</li>
</ul></li>
<li><a href="https://github.com/sharplispers/cormanlisp">Corman Lisp</a>
- a Common Lisp development environment for Microsoft Windows running on
Intel platforms. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>You can check the implementations compatibility to common extensions
here: <a href="https://portability.cl">portability.cl</a>.</p>
<p>See also:</p>
<ul>
<li><a href="https://github.com/shinmera/cl-all">cl-all</a> - A script
to run Lisp snippets in multiple implementations. This allows you to
quickly compare implementation behaviour and differences. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
</ul>
<h1 id="language-extensions">Language extensions</h1>
<ul>
<li><a
href="https://common-lisp.net/project/alexandria/">alexandria</a> - A
general-purpose utility library. Public domain.</li>
<li>👍 <a href="https://github.com/TBRSS/serapeum/">serapeum</a> -
Another general-purpose utility library. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/vseloved/rutils">rutils</a> - radical
yet reasonable syntactic utilities for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/alex-gutev/generic-cl/">generic-cl</a> -
Generic function interface to standard Common Lisp functions (equality,
comparison, arithmetic, objects, iterator, sequences,…). <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>see also the more lightweight <a
href="https://github.com/karlosz/equals/">equals</a> <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul></li>
<li><a href="https://common-lisp.net/project/anaphora/">anaphora</a> - A
collection of anaphoric macros. Public domain.</li>
<li><a href="https://github.com/hipeta/arrow-macros">arrow-macros</a> -
Clojure-like threading macros. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/hu-dwim/hu.dwim.walker">hu.dwim.walker</a> - a
code walker and unwalker (aka AST parser and unparser). <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>. See
also <a
href="http://40ants.com/lisp-project-of-the-day/2020/04/0044-hu.dwim.walker.html">this
blog post</a>.</li>
</ul>
<h2 id="pattern-matching">Pattern matching</h2>
<ul>
<li><a href="https://github.com/guicho271828/trivia/">trivia</a> -
Optimized pattern-matching library. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul>
<h2 id="portability-layers">Portability layers</h2>
<p>A large list of portability layers is collected here: <a
href="https://portability.cl/">portability.cl/</a>. Here are some of
them:</p>
<ul>
<li><a
href="https://github.com/Shinmera/trivial-arguments">trivial-arguments</a>
- A portable library to retrieve the arguments list of a function. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/Shinmera/definitions">definitions</a> -
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. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://shinmera.github.io/dissect">dissect</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li><a href="https://github.com/atlas-engineer/ndebug">ndebug</a> -
Framework for portable GUI (or any non-standard) debuggers, based on <a
href="https://shinmera.github.io/dissect">dissect</a> and <a
href="https://github.com/phoe/trivial-custom-debugger">trivial-custom-debugger</a>.
<a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul></li>
</ul>
<h2 id="changing-the-syntax">Changing the syntax</h2>
<ul>
<li><a href="https://github.com/m2ym/cl-annot">cl-annot</a> -
Python-like annotations for Common Lisp. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li><a
href="https://github.com/y2q-actionman/cl-annot-revisit/">cl-annot-revisit</a>
- re-implementation of cl-annot. WTFPL.</li>
</ul></li>
<li><a href="https://github.com/m2ym/cl-syntax">cl-syntax</a> - Reader
syntax conventions. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/digikar99/reader">cl-reader</a> - A
utility library intended at providing reader macros for lambdas,
mapping, accessors, hash-tables and hash-sets. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/malisper/Clamp">clamp</a> - Arc
languages brevity and conciseness to Common Lisp. <a
href="https://directory.fsf.org/wiki/License:ArtisticLicense2.0">Artistic
License 2.0</a>.
<ul>
<li>also <a href="https://github.com/g000001/arc-compat">arc-compat</a>
- Arc compatible package. Perl Foundations Artistic Licence 2.0.</li>
</ul></li>
</ul>
<p>For strings:</p>
<ul>
<li><a href="https://github.com/edicl/cl-interpol/">cl-interpol</a> -
A set of reader modifications to allow string interpolation. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://git.sr.ht/~shunter/mstrings">mstrings</a> - a
reader macro to provide visually appealing multiline blocks. An M-string
trims leading whitespace, concatenates lines together, etc. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a
href="https://github.com/smithzvk/pythonic-string-reader">pythonic-string-reader</a>
- A simple and unobtrusive read table modification inspired by Pythons
three quote strings. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/outergod/cl-heredoc">cl-heredoc</a> - a
<a href="https://github.com/outergod/cl-heredoc">“heredocs”</a>
dispatcher. <a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
Allows to write:
<code>#&gt;eof&gt;Write whatever (you) "want", no matter what characters, until the magic end sequence has been reached.eof</code></li>
</ul>
<h2 id="clos-extensions">CLOS extensions</h2>
<ul>
<li><a href="https://github.com/pcostanza/closer-mop">closer-mop</a>
- A compatibility layer that rectifies many absent or incorrect MOP
features. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/markcox80/specialization-store/">specialization-store</a>
- generic functions based on types. Simplified BSD License variant.</li>
<li><a
href="https://github.com/pcostanza/filtered-functions">filtered-functions</a>
- enable the use of arbitrary predicates for selecting and applying
methods. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/guicho271828/inlined-generic-function">inlined-generic-function</a>
- Bringing the speed of Static Dispatch to CLOS. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://github.com/alex-gutev/static-dispatch">static-dispatch</a>
- 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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/rpav/dynamic-mixins">dynamic-mixins</a>
- simple, dynamic class combination. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a
href="https://github.com/marcoheisig/fast-generic-functions">fast-generic-functions</a>
- Seal your generic functions for an extra boost in performance. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/digikar99/polymorphic-functions">polymorphic
functions</a> - 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). <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>polymorphic-functions dispatch on the types of the arguments
supplied to it. This helps dispatching on specialized arrays as well as
user-defined types.</li>
<li>for differences with specialization-store and
fast-generic-functions, see its README.</li>
</ul></li>
</ul>
<p>Writing terser defclass forms:</p>
<ul>
<li><a
href="https://github.com/lisp-maintainers/defclass-std">defclass-std</a>
- a shortcut macro to write DEFCLASS and PRINT-OBJECT forms quickly. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/atlas-engineer/nclasses">nclasses</a> -
Syntactic sugar for class and generic function declarations. Features
type inference, automatic accessors, inline initform syntax, automatic
exports, and other conveniences. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<p>And also:</p>
<ul>
<li><a
href="https://github.com/some-mthfka/slot-extra-options">slot-extra-options</a>
- lets you build a metaclass which in turn lets you specify extra slot
options in its classes. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
</ul>
<h2 id="function-extensions">Function extensions</h2>
<ul>
<li><a
href="https://github.com/scymtym/architecture.hooks/">cl-hooks</a> -
Hooks extension point mechanism (as known, e.g., from GNU Emacs).
LGPL.</li>
<li><a href="https://gitlab.com/Gnuxie/method-hooks">method-hooks</a> -
When CLOS method combination allow only one hook per method, this
library allows an arbitrary number of them. Mozilla Public Licence.</li>
<li><a
href="https://github.com/lisp-mirror/budden-tools/blob/213ab2b52a1b0c0b496efd30c3b5143f5c8e1ff2/cl-advice/README.md">cl-advice</a>
- an attempt of portable layer advice library for SBCL, CCL, LispWorks
and Allegro. Not in Quicklisp.</li>
<li><a href="https://github.com/atlas-engineer/nhooks">nhooks</a> - an
enhanced implementation of hooks (extension points) with crucial
improvements.</li>
</ul>
<h2 id="iteration">Iteration</h2>
<ul>
<li><a href="https://common-lisp.net/project/iterate/">iterate</a> -
An iteration construct for Common Lisp which is extensible and Lispier.
<a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://shinmera.github.io/for/">for</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://series.sourceforge.net/">series</a> - Functional
style without any runtime penalty at all. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/yitzchak/trivial-do/">trivial-do</a> -
Additional dolist style macros for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/alessiostalla/doplus">doplus</a>
another extensible iteration library, similar to :for.</li>
<li><a
href="https://github.com/fosskers/cl-transducers/">cl-transducers</a> -
Ergonomic, efficient data processing. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.
<ul>
<li>“Transducers are an ergonomic and extremely memory-efficient way to
process a data source. Here “data source” means simple collections like
Lists or Vectors, but also potentially large files or generators of
infinite data.”</li>
<li>“It is, in general, the most complete implementation of the
Transducer pattern.”</li>
<li>a “modern” API with <code>map</code>, <code>filter</code>,
<code>take</code>, <code>repeat</code>, <code>cycle</code>,
<code>fold</code></li>
</ul></li>
<li><a href="https://github.com/BnMcGn/snakes">snakes</a> - Python style
generators for Common Lisp. Includes a port of itertools. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.</li>
<li><a href="https://github.com/anlsh/picl">picl</a> - An (almost)
complete port of Pythons itertools package, complete with laziness
where applicable, and not relying on cl-cont. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://cicadas.surf/cgit/colin/gtwiwtg.git/about/">gtwiwtg</a> -
A lazy sequences library. Similar to series but not as complete.
However it has a modern API with stuff like <code>take</code>,
<code>filter</code>, <code>for</code>, <code>fold</code>, etc. that is
easy to use.</li>
<li><a
href="https://github.com/slburson/misc-extensions/blob/master/src/gmap.lisp">gmap</a>
- 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
<code>misc-extensions</code>. Public domain.</li>
</ul>
<h2 id="lambda-shorthands">Lambda shorthands</h2>
<ul>
<li><a href="https://github.com/cbaggers/fn">fn</a> - a couple of lambda
shorthand macros.
<code>(fn* (+ _ _)) --&gt; (lambda (_) (+ _ _))</code>. Public
domain.</li>
<li><a
href="https://gitlab.common-lisp.net/bpm/f-underscore">f-underscore</a>
- a tiny library of functional programming utils.
<code>(f_ (+ _ _)) -&gt; (lambda (_) (+ _ _))</code>. Public
domain.</li>
<li><a href="https://github.com/windymelt/cl-punch/">cl-punch</a> -
Scala-like anonymous lambda literals.
<code>(mapcar ^(* 2 _) '(1 2 3 4 5))</code>. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>See also <a href="https://github.com/vseloved/rutils">Rutils</a>.</p>
<h2 id="non-deterministic-logic-programming">Non-deterministic, logic
programming</h2>
<ul>
<li><a href="https://github.com/guicho271828/cl-prolog2">cl-prolog2</a>
- Common Interface to ISO Prolog implementations from Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/nikodemus/screamer">Screamer</a> -
augment Common Lisp with practically all of the functionality of both
Prolog and constraint logic programming languages. <a
href="https://chriskohlhepp.wordpress.com/reasoning-systems/specification-driven-programming-in-common-lisp/">Blog
post</a> solving Project Euler puzzles. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/yakovzaytsev/screamer-plus">Screamer+</a> -
increasing the expressiveness of SCREAMER. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://ap5.com/">AP5</a> - allows users to program in a
model of first order logic or a relational database. 1989, updated 2024.
Public domain.</li>
<li><a href="https://github.com/sjl/temperance">Temperance</a> - logic
programming. <a href="https://opensource.org/licenses/MIT">MIT</a>. A
focus on performance, with General Game Playing in mind.</li>
</ul>
<h2 id="reactive-programming">Reactive programming</h2>
<ul>
<li><a href="https://github.com/kennytilton/cells">Cells</a> - an
implementation of the dataflow programming paradigm, reactive
spreadsheet-like expressiveness for CLOS. Used to build an <a
href="http://tiltontec.com/">algebra learning system</a>. With <a
href="https://github.com/stefano/cells-doc/">documentation</a>. Lisp
LGPL.</li>
<li><a href="https://github.com/kchanqvq/lwcells">lwcells</a> - Light
Weight Cells.
<ul>
<li>LWCELLS is a dataflow extension to Common Lisp. It maintains a
consistent state of cells according to functions specifying their
relation. LWCELLS is designed to be simple, clean, compositional and
flexible.</li>
</ul></li>
</ul>
<h2 id="contract-programming">Contract programming</h2>
<ul>
<li><a href="https://github.com/sellout/quid-pro-quo">quid-pro-quo</a> -
a contract programming library in the style of Eiffels Design by
Contract™. Public domain.</li>
</ul>
<h2 id="typing">Typing</h2>
<ul>
<li>👍 <a href="https://github.com/coalton-lang/coalton/">Coalton</a> -
an efficient, statically typed functional programming language that
supercharges Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>focuses on high-performance, built-in advanced mathematics, a
numerical tower more powerful and extensible than Lisps:
<ul>
<li>arbitrary precision floats, exact computable real arithmetic,
transfinite numbers, <a
href="https://coalton-lang.github.io/reference/#coalton-library/math/dual-package">dual
numbers</a> and <a
href="https://coalton-lang.github.io/reference/#coalton-library/math/hyperdual-package">hyperdual
numbers</a>,</li>
</ul></li>
<li><a href="https://github.com/fukamachi/flime">flime</a> - Real-time,
project-wide Coalton compilation with isolated processes for LSP
integration. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/tojoqk/tokyo.tojo.json">tokyo-tojo-json</a> - a
JSON parser implemented in Coalton.</li>
<li><a
href="https://github.com/garlic0x1/coalton-threads">coalton-threads</a>
- primitive thread and concurrency operations for Coalton.</li>
<li><a href="https://lem-project.github.io/modes/coalton-lang/">Lem
editor mode for Coalton</a> - syntax highlighting, code completion,
autodoc, interactive compilation commands
(<code>coalton-compile-defun</code>, <code>C-c C-c</code>).</li>
</ul></li>
<li>👍 <a href="https://github.com/m2ym/trivial-types">trivial-types</a>
- provides missing but important type definitions such as
<code>proper-list</code>, <code>association-list</code>,
<code>property-list</code> and <code>tuple</code>. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://bitbucket.org/eeeickythump/defstar/src/master/">defstar</a>
- a collection of macros for easy inclusion of type declarations for
arguments in lambda lists. <a
href="http://www.gnu.org/copyleft/gpl.html">GNU GPL3</a></li>
<li><a
href="https://github.com/stylewarning/cl-algebraic-data-type">algebraic-data-types</a>
- defining algebraic data types in a similar spirit to Haskell or
Standard ML, as well as for operating on them. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/marcoheisig/Typo/">typo</a> - A portable
type inference library for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li>experimental: <a
href="https://gitlab.com/digikar/peltadot/">PELTADOT</a> - PELTADOT
Extends Lisps Types And Dispatches Over Them.</li>
</ul>
<h2 id="theorem-provers">Theorem provers</h2>
<ul>
<li><a href="https://www.cs.utexas.edu/users/moore/acl2/">ACL2</a> - a
logic and programming language in which you can model computer systems,
together with a tool to help you prove properties of those models.
<ul>
<li>used in the industry since the 1990s.</li>
<li>it supports a subset of the ANSI standard Common Lisp programming
language.</li>
<li>“Companies that have used ACL2 regularly include AMD, Centaur
Technology, IBM, Intel, Kestrel Institute, Motorola/Freescale, Oracle
and Rockwell Collins.” (<a
href="https://royalsocietypublishing.org/doi/10.1098/rsta.2015.0399">source</a>)</li>
<li><a href="https://github.com/calebegg/proof-pad/">Proofpad</a>, an
online IDE for ACL2.</li>
<li><a href="https://github.com/tani/acl2-kernel">ACL2-kernel</a>, a
Jupyter Kernel for ACL2.</li>
<li><a href="http://acl2s.ccs.neu.edu/acl2s/doc/">ACL2 Sedan</a>, an
Eclipse plugin that provides a modern IDE for ACL2, used with students
at universities.
<ul>
<li>paper: <a
href="https://cgi.cse.unsw.edu.au/~eptcs/content.cgi?ACL22022">Using
ACL2 to teach students about software testing</a>.</li>
</ul></li>
</ul></li>
<li>NASAs <a href="https://pvs.csl.sri.com/">PVS</a>, the Prototype
Verification System, and <a
href="https://github.com/nasa/pvslib">NASAlib</a>, a collection of
formal development libraries.
<ul>
<li>its 63 top-level libraries span the fields of: real analysis,
limits, continuity, derivatives, integrals; complex integration;
directed graphs; exact real arithmetic including trig functions;
interval arithmetic and numerical approximations; linear algebra; 2-D,
3-D, 4-D, and n-dimensional vectors… and more.</li>
</ul></li>
</ul>
<h1 id="learning-and-tutorials">Learning and Tutorials</h1>
<h2 id="online">Online</h2>
<h2 id="beginner">Beginner</h2>
<ul>
<li><a href="https://learnxinyminutes.com/docs/common-lisp/">Learn X in
Y minutes - Where X = Common Lisp</a> - Small Common Lisp tutorial
covering the essentials.</li>
<li><a href="https://github.com/google/lisp-koans">Lisp Koans</a> - The
project guides the learner progressively through many Common Lisp
language features.</li>
<li><a href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a>
- A good introductory text to Common Lisp, with practical examples.
<ul>
<li>better read with <a
href="https://github.com/vale981/practical-cl-beautified">a Firefox
add-on: Practical-cl beautified</a>.</li>
<li>translated in <a href="https://binghe.github.io/pcl-cn/">Chinese
simplified</a></li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/dst/www/LispBook/index.html">Common
LISP: A Gentle Introduction to Symbolic Computation</a> - A nice
introduction into the language.</li>
<li><a href="http://successful-lisp.blogspot.com/">Successful Lisp</a> -
A good book for beginners with some programming background.</li>
<li><a href="https://cs.gmu.edu/~sean/lisp/LispTutorial.html">Lisp
Quickstart</a> - A good tutorial to get up and code Common Lisp
quickly.</li>
<li><a href="http://www.lisperati.com/casting.html">Casting SPELs in
LISP</a> - A fun way to learn LISP while reading a comic book.</li>
<li>📹 <a
href="https://www.udemy.com/course/common-lisp-programming/?referralCode=2F3D698BBC4326F94358">Common
Lisp Programming: from novice to effective developer</a> - A learning
video series on the Udemy platform (<em>full content under paid
access</em>). By an active lisper and community contributor (<span
class="citation" data-cites="vindarel">@vindarel</span>). <a
href="https://github.com/vindarel/common-lisp-course-in-videos/">Github
home</a>. &gt; Thanks for supporting my work on Udemy. I can send a free
link to students, just contact me.</li>
<li><a href="https://leanpub.com/lovinglisp">Loving Common Lisp, or the
Savvy Programmers Secret Weapon</a> - Quick introduction to Common Lisp
with many examples. A particular focus is on how to use Large Language
Models (LLMs).</li>
</ul>
<h2 id="intermediate">Intermediate</h2>
<ul>
<li><a href="https://lispcookbook.github.io/cl-cookbook/">The Common
Lisp Cookbook</a></li>
<li><a href="https://github.com/lisp-tips/lisp-tips/issues/">Lisp
Tips</a> - A blog with useful tips and tricks.</li>
<li><a href="http://40ants.com/lisp-project-of-the-day/">Lisp project of
the day</a> - A blog showcasing many Lisp libraries.</li>
<li>A gentle introduction to Compile-Time Computing - <a
href="https://medium.com/@MartinCracauer/a-gentle-introduction-to-compile-time-computing-part-1-d4d96099cea0">Part
1</a>, <a
href="https://medium.com/@MartinCracauer/a-gentle-introduction-to-compile-time-computing-part-2-cb0a46f6cfe8">Part
2</a>, <a
href="https://medium.com/@MartinCracauer/a-gentle-introduction-to-compile-time-computing-part-3-scientific-units-8e41d8a727ca">Part
3 (Safely dealing with scientific units of variables at compile
time)</a></li>
<li><a
href="https://medium.com/@MartinCracauer/static-type-checking-in-the-programmable-programming-language-lisp-79bb79eb068a">Static
type checking in the programmable programming language</a></li>
</ul>
<h2 id="advanced">Advanced</h2>
<ul>
<li><a href="http://letoverlambda.com/">Let Over Lambda</a> - A book on
advanced macro techniques. The first six chapters are available
online.</li>
<li><a href="http://www.paulgraham.com/onlisp.html">On Lisp</a> - Paul
Grahams amazing book on Lisp macros (and other interesting
things).</li>
<li><a
href="https://link.springer.com/book/10.1007/978-1-4842-6428-7">Programming
Algorithms in Lisp</a> - Updated version of “<a
href="https://leanpub.com/progalgs">Programming Algorithms</a>”; A
comprehensive guide to writing efficient programs with data structures
and algorithms in Lisp.</li>
</ul>
<p>And a couple learning resources for SBCL internals:</p>
<ul>
<li><a href="https://simonsafar.com/2020/sbcl/">SBCL internals</a></li>
<li><a
href="https://github.com/guicho271828/sbcl-wiki/wiki">sbcl-wiki</a> - an
open wiki to document SBCLs internals.</li>
</ul>
<h2 id="coding-platforms">Coding platforms</h2>
<ul>
<li><a
href="https://docs.codewars.com/languages/commonlisp/">Codewars</a> - a
code training platform, with Common Lisp support (SBCL).</li>
</ul>
<h2 id="web-development">Web Development</h2>
<ul>
<li><a
href="https://lispcookbook.github.io/cl-cookbook/web.html">Section on
Web Development in The Common Lisp Cookbook</a> - 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.</li>
<li>NEW <a href="https://web-apps-in-lisp.github.io/">Web Apps in Lisp:
Know-how</a> - tutorial and reference material to build interactive web
apps in Common Lisp. CC-BY.</li>
</ul>
<h2 id="reference">Reference</h2>
<ul>
<li>NEW! <a
href="https://cl-community-spec.github.io/pages/index.html">CL
CommunitySpec</a> - a rendition of the Common Lisp ANSI Specification
draft.
<ul>
<li>with an interactive search, syntax highlighting! And
open-source.</li>
</ul></li>
<li>NEW! <a href="https://novaspec.org/">novaspec</a> - a modern
rendition of the CL ANSI draft.
<ul>
<li>not open-source?</li>
</ul></li>
<li><a href="http://clqr.boundp.org/index.html">Common Lisp Quick
Reference</a> - A distilled, pocket-size version of the ANSI CL spec.
Available for download as a PDF.</li>
<li><a
href="http://www.lispworks.com/documentation/lw50/CLHS/Front/index.htm">CLHS</a>
- The Common Lisp HyperSpec; the ANSI CL standard, in hypertext
form.</li>
<li><a href="https://clos-mop.hexstreamsoft.com/">CLOS MOP
specification</a> - A modern public domain online version of chapters 5
and 6 of The Art of the Metaobject Protocol</li>
<li><a
href="https://franz.com/support/documentation/cl-ansi-standard-draft-w-sidebar.pdf">Common
Lisp Standard Draft (pdf)</a> - The standard draft of the Common Lisp
specifications, in a well formatted PDF with a sidebar.
<ul>
<li>also <a
href="https://github.com/mmontone/dpans2texi/releases/">dpans2texi</a> -
the standard draft converted to Texinfo and published as a well
formatted PDF.</li>
</ul></li>
<li><a
href="http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html">Common Lisp
the Language</a> - The original standard for Common Lisp before the ANSI
spec.
<ul>
<li><a href="https://github.com/mmontone/cltl2-doc">CLtL2, in PDF
format</a></li>
</ul></li>
<li><a href="https://lamberta.github.io/minispec/">Minispec</a> - A
friendlier, but less-complete, version of CLHS. Also contains
documentation for some commonly-used CL libraries (such as
Alexandria).</li>
<li><a href="http://jtra.cz/stuff/lisp/sclr/index.html">Simplified
Common Lisp reference</a> - The simplified version of CLHS.</li>
<li><a href="https://cdr.common-lisp.dev/">CDR</a> - Common Lisp
Document Repository. a repository of documents that are of interest to
the Common Lisp community. The most important property of a CDR document
is that it will never change: if you refer to it, you can be sure that
your reference will always refer to exactly the same document.
<ul>
<li>the Common Lisp Document Repository is hosted at <a
href="https://zenodo.org/communities/cdr/">Zenodo</a>.</li>
</ul></li>
</ul>
<h2 id="offline">Offline</h2>
<p>The CLHS is available offline via an <a
href="ftp://ftp.lispworks.com/pub/software_tools/reference/HyperSpec-7-0.tar.gz">archive</a>
and as doc sets in <a href="https://kapeli.com/dash">Dash</a>, <a
href="https://zealdocs.org/">Zeal</a> and <a
href="https://velocity.silverlakesoftware.com/">Velocity</a>.</p>
<h2 id="beginner-1">Beginner</h2>
<ul>
<li><a href="http://landoflisp.com/">Land of Lisp</a> - A fun,
game-oriented introduction to Common Lisp.</li>
<li><a href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a>
- A good introductory text to Common Lisp, with practical examples.</li>
</ul>
<h2 id="intermediate-1">Intermediate</h2>
<ul>
<li><a href="http://www.paulgraham.com/acl.html">ANSI Common Lisp</a> -
A thorough, practical covering of the entire language, with exercises.
Not recommended as a starter text, due to <a
href="http://www.cs.northwestern.edu/academics/courses/325/readings/graham/graham-notes.html">some
caveats</a>.</li>
<li><a href="http://weitz.de/cl-recipes/">Common Lisp Recipes</a> -
<strong>Common Lisp Recipes</strong> 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.</li>
</ul>
<h2 id="advanced-1">Advanced</h2>
<ul>
<li><a href="http://letoverlambda.com/">Let Over Lambda</a> - A book on
advanced macro techniques. All eight chapters are available in the print
copy.</li>
<li><a
href="http://www.goodreads.com/book/show/1175730.Object_Oriented_Programming_in_Common_LISP">Object-Oriented
Programming in Common Lisp: A Programmers Guide to CLOS</a> - An old,
but very thorough book on CLOS.</li>
<li><a href="http://norvig.com/paip.html">Paradigms of Artificial
Intelligence Programming: Case Studies in Common Lisp</a> - A book on
programming AI that covers some advanced Lisp.
<ul>
<li>with a web version: <a
href="https://norvig.github.io/paip-lisp/#/">https://norvig.github.io/paip-lisp/</a></li>
<li><a href="https://github.com/norvig/paip-lisp">PAIP-lisp</a> - Lisp
code for the textbook “Paradigms of Artificial Intelligence
Programming”.</li>
</ul></li>
<li><a
href="https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf">Norvigs
Lisp style</a>
<ul>
<li>and <a href="https://lisp-lang.org/style-guide/">lisp-lang.orgs
style guide</a></li>
</ul></li>
</ul>
<h2 id="other-books">Other books</h2>
<ul>
<li><a href="https://www.qrg.northwestern.edu/bps/readme.html">Building
Problem Solvers</a> (<a
href="http://www.qrg.northwestern.edu/bps/BPS-Searchable.pdf">PDF</a>)
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.</li>
</ul>
<h2 id="community">Community</h2>
<ul>
<li><a href="https://www.reddit.com/r/Common_Lisp/">/r/Common_Lisp</a> -
subreddit about Common Lisp</li>
<li><a href="https://www.reddit.com/r/learnlisp/">/r/learnlisp</a> - a
subreddit to ask questions and get help about Lisp</li>
<li><a href="https://common-lisp.net">common-lisp.net</a></li>
<li><a href="https://lisp-lang.org/">lisp-lang.org</a></li>
<li><a href="https://discord.gg/hhk46CE">Lisp Discord Server</a></li>
<li><a
href="https://irclog.tymoon.eu/libera/%23commonlisp">#commonlisp</a> on
Libera Chat - main Common Lisp IRC channel.</li>
<li><a href="https://irclog.tymoon.eu/libera/%23lisp">#lisp</a> on
Libera Chat - IRC channel for all Lisp dialects.</li>
<li>#clschool on Libera Chat - IRC channel for learning Common
Lisp.</li>
<li>#lispcafe on Libera Chat - IRC channel for off-topic
discussions.</li>
<li><a href="http://planet.lisp.org/">Planet Lisp</a> - A meta blog that
collects the contents of various Lisp-related blogs.</li>
<li><a href="https://chat.hexstreamsoft.com/">Common Lisp chat</a> -
Keybase team with well-defined rules and retention policies.</li>
<li><a href="https://xmpp.link/#lisp@conference.a3.pm?join">Lisp
Jabber/XMPP channel</a></li>
</ul>
<h1 id="library-manager">Library Manager</h1>
<ul>
<li><a href="https://www.quicklisp.org/beta/">Quicklisp</a> - A
library manager containing many libraries, with easy depencency
management. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li><a href="https://github.com/rudolfochrist/ql-https">ql-https</a> -
shell out to cURL and use HTTPS by default.</li>
<li><a href="https://quicklisp.org/beta/bundles.html">Quicklisp
bundles</a> - self-contained sets of systems that are exported from
Quicklisp and loadable without involving Quicklisp.</li>
</ul></li>
<li><a href="https://github.com/ocicl/ocicl">ocicl</a> - A modern
dependency management tool with novel features. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="http://ultralisp.org/">Ultralisp</a> - A Quicklisp
distribution which updates every 5 minutes and to which one can add his
project in one click. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/roswell/roswell">Roswell</a> - a Lisp
implementation installer, script launcher and more. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fukamachi/qlot">Qlot</a> - A
project-local library installer, similar to Bundler or Virtualenv. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li>how to <a
href="https://github.com/svetlyak40wt/qlot-without-roswell">use it from
the Lisp REPL</a> without Roswell.</li>
</ul></li>
<li><a href="https://github.com/fosskers/vend">vend</a> - Just vendor
your dependencies! <a
href="http://mozilla.org/MPL/2.0/">MPL-2.0</a>.</li>
</ul>
<p>see also:</p>
<ul>
<li><a href="https://www.clpm.dev">CLPM</a> - A package manager for
Common Lisp that strives to cleanly separate the package manager process
itself from the client image that uses it. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.
<ul>
<li>CLPM comes as a pre-built binary, supports HTTPS by default,
supports installing multiple package versions, supports versioned
systems, and more.</li>
</ul></li>
<li><a
href="https://github.com/atgreen/trivial-system-loader">trivial-system-loader</a>
- A system installation/loading abstraction for Common Lisp.
<ul>
<li>play nice with people using another library manager than Quicklisp:
instead of hard-coding <code>(ql:quickload :mysystem)</code>, use
<code>(tsl:load-system :mysystem)</code>. tsl:load-system will first try
to use ocicl if available, then quicklisp, then plain
asdf:load-system.</li>
</ul></li>
<li><a href="https://lisp.com.br/quicksys/">Quicksys</a> - install
systems from multiple Quicklisp distributions. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/stylewarning/quickutil">Quickutil</a> -
A utility manager, similar to Quicklisp, but for small utilities rather
than whole libraries. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
</ul>
<p>might help:</p>
<ul>
<li><a href="https://github.com/shirakumo/redist">redist</a> -
facilities to produce Quicklisp distributions.</li>
<li><a href="https://github.com/tdrhq/quick-patch/">quick-patch</a> -
easily override quicklisp projects without using git submodules. <a
href="http://mozilla.org/MPL/2.0/">MPL-2.0</a>.</li>
<li><a
href="https://github.com/vindarel/print-licenses">print-licenses</a> -
print licenses used by a project and its dependencies. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/digikar99/asdf-dependency-graph/">asdf-dependency-graph</a>
- A minimal wrapper around <code>dot</code> to generate an image of the
dependencies graph.</li>
</ul>
<h2 id="interfaces-to-other-package-managers">Interfaces to other
package managers</h2>
<ul>
<li><a
href="https://gitlab.com/ralt/linux-packaging">linux-packaging</a> -
build .deb, .rpm or .pkg packages for your application with a single
ASDF declaration. Uses fpm under the hood. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/ralt/qldeb">qldeb</a> - Quicklisp
systems to debian packages, along with <a
href="https://github.com/ralt/deb-packager">deb-packager</a> (simply
create a debian package by defining an s-expression) and an introductory
<a
href="http://margaine.com/2015/12/22/quicklisp-packagecloud-debian-packages.html">blog
post</a>. Both <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/dimitri/ql-to-deb">ql-to-deb</a> -
Update cl-* debian packages from Quicklisp releases. WTFPL.</li>
<li><a
href="https://github.com/ralt/dh-quicklisp-buildapp">dh-quicklisp-buildapp</a>
- debhelper utility to let you compile your quicklisp-based Common Lisp
code into a buildapp binary in a .deb with almost no effort. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/can3p/cl-brewer">cl-brewer</a> -
Homebrew formula builder for (command line) common lisp applications.
Public domain.</li>
<li><a
href="https://gitlab.com/ralph-schleicher/flatpak-common-lisp">flatpack-common-lisp</a>
- A BuildStream project for building Flatpak based runtime environments
for Common Lisp applications.</li>
<li><a
href="https://github.com/borodust/alien-works-delivery">alien-works-delivery</a>
- 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.</li>
<li><a href="https://github.com/hraban/cl-nix-lite">cl-nix-lite</a> -
Common Lisp module for Nix, without Quicklisp. <a
href="https://directory.fsf.org/wiki/License:ArtisticLicense2.0">AGPL-3.0</a></li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/smashedtoatoms/asdf-sbcl">asdf-sbcl</a>,
a plugin for the universal package manager.</li>
<li>📹 <a href="https://www.youtube.com/watch?v=lGS4sr6AzKw">this
Youtube video</a> (by 40ants, 2023) on how to use alien-works-delivery
and linux-packaging.</li>
</ul>
<h1 id="network-and-internet">Network and Internet</h1>
<p>See <a href="http://www.cliki.net/Web">Cliki</a> for more.</p>
<h2 id="http-clients">HTTP clients</h2>
<ul>
<li>👍 <a href="https://github.com/fukamachi/dexador">Dexador</a> - An
HTTP client, that aims at replacing Drakma. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/orthecreedence/carrier">Carrier</a> - A
lightweight, async HTTP client built on top of cl-async and fast-http.
<a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fukamachi/fast-http">fast-http</a> - A
fast HTTP request/response parser for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/zellerin/http2/">http2</a> - HTTP/2
implementation in Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="http-servers">HTTP Servers</h2>
<ul>
<li><a href="http://weitz.de/hunchentoot/">Hunchentoot</a> - A web
server. <a
href="https://opensource.org/licenses/bsd-license.php">2-clause
BSD</a></li>
<li>👍<a href="https://github.com/fukamachi/clack">Clack</a> - A web
application environment inspired by Rack and WSGI. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>. Provides a
unified interface to a webserver of choice (default is Hunchentoot).
With more <a
href="https://jasom.github.io/clack-tutorial/posts/getting-started-with-clack/">getting
started guide</a>.</li>
<li><a href="https://github.com/gendl/aserve">zaserve</a> - A portable
fork of AllegroServe, by Franz Inc. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/orthecreedence/wookie">wookie</a> -
Asynchronous HTTP server. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/fukamachi/woo">woo</a> - A fast
non-blocking HTTP server on top of libev. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/akamai/cl-http2-protocol">cl-http2-protocol</a>
- a pure Common Lisp transport agnostic implementation of the HTTP/2
protocol at draft-14. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h3 id="hunchentoot-plugins">Hunchentoot plugins</h3>
<ul>
<li>👍 <a href="https://github.com/mmontone/easy-routes">easy-routes</a>
- 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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/slyrus/hunchentoot-cgi">hunchentoot-cgi</a> - a
library for executing CGI scripts from the hunchentoot webserver. <a
href="https://opensource.org/licenses/bsd-license.php">BSD</a>.</li>
<li><a
href="https://github.com/moderninterpreters/hunchentoot-multi-acceptor/">hunchentoot-multi-acceptor</a>
- Route multiple domains (virtual hosts) on a single hunchentoot
acceptor using a single port. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a
href="https://github.com/mmontone/hunchentoot-errors">hunchentoot-errors</a>
- Augments Hunchentoot error pages and logs with request and session
information. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/avodonosov/hunchentoot-stuck-connection-monitor/">hunchentoot-stuck-connection-monitor</a>
- Monitors hunchentoot connections and logs the connections stuck in the
same state for a long time.
<ul>
<li>offers an option to shutdown the stuck connections sockets manually
or automatically, thus unblocking the connection threads and preventing
thread and socket leakage. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
</ul></li>
</ul>
<p>See also:</p>
<ul>
<li><a
href="https://github.com/mdbergmann/cl-tbnl-gserver-tmgr">cl-tbnl-gserver-tmgr</a>
- Hunchentoot Gserver-based taskmanager. cl-gserver is an actor-like
message-passing library (see below in “Actors pattern”).
Experimental.</li>
</ul>
<h3 id="clack-plugins">Clack plugins</h3>
<ul>
<li><a href="https://github.com/jeko2000/tiny-routes">tiny-routes</a> -
A tiny routing library for Common Lisp targeting Clack. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/eudoxia0/clack-errors">clack-errors</a>
- Error page middleware for Clack. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/BnMcGn/clath">clath</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a href="https://github.com/BnMcGn/clack-pretend">clack-pretend</a>
- a testing and debugging tool for clack. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a
href="https://github.com/dertuxmalwieder/cl-hismetic">hismetic</a> -
Security for Clack-based web applications. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/knobo/live-reload">live-reload</a> -
Live reload prototype for clack. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://github.com/fisxoj/clack-static-asset-middleware">clack-static-asset-middleware</a>
- a cache-busting static asset middleware for the clack. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/daninus14/lack-compression-cache">lack-expression-cache</a>
- lack middleware for compressing and caching static resources.
MIT.</li>
<li><a
href="https://github.com/daninus14/lack-rerouter">lack-rerouter</a> -
lack middleware to reroute URIs of requests. MIT.</li>
<li><a href="https://40ants.com/clack-cors/">clack-cors</a> - A Clack
middleware to set CORS related HTTP headers. — Unlicense.</li>
<li><a href="https://40ants.com/clack-prometheus/">clack-promotheus</a>
- Clack middleware to serve stats in Prometheus format. Unlicense.</li>
</ul>
<h2 id="web-frameworks">Web frameworks</h2>
<ul>
<li><a href="https://github.com/fukamachi/caveman">Caveman</a> - A
powerful web framework. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>. Example
projects: <a href="https://github.com/quickdocs">Quickdocs</a></li>
<li><a href="https://github.com/fukamachi/ningle">ningle</a> - A
super-micro web framework. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li><a href="https://github.com/dnaeon/cl-jingle">jingle</a> - based on
ningle, adds bells and whistles, such as middlewares.
<ul>
<li>includes an OpenAPI and Swagger UI demo.</li>
</ul></li>
</ul></li>
<li><a href="https://github.com/Shirakumo/radiance">radiance</a> - A web
application environment and framework . <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
</ul>
<p>REST-focused frameworks:</p>
<ul>
<li>👍 <a href="https://github.com/joaotavora/snooze">Snooze</a> - 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. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://github.com/mmontone/cl-rest-server">cl-rest-server</a> - a
library for writing REST web APIs. Features validation with schemas,
annotations for logging, caching, permissions or authentication,
documentation via Swagger, etc. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>See OpenAPI, OData and other libraries below.</p>
<h3 id="isomorphic-web-frameworks">Isomorphic web frameworks</h3>
<ul>
<li><a href="https://github.com/rabbibotton/clog">CLOG</a> - The Common
Lisp Omnificent GUI. Uses web technology to produce graphical user
interfaces for applications locally or remotely. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>CLOG is based on the ideas of GNOGA, a framework the author wrote
for Ada and used in commercial production code since 2013.</li>
</ul></li>
<li><a href="https://github.com/40ants/reblocks">Weblocks (Reblocks)</a>
- A widgets-based framework with a built-in ajax update mechanism that
“solves the JavaScript problem”. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>example code bases: <a
href="https://github.com/ultralisp/ultralisp/">Ultralisp</a>, <a
href="https://github.com/lct23/krasnodar">krasnodar</a>, a dashboard
made for a hackaton (2024) (<a
href="https://diode.zone/videos/watch/9e379a86-c530-4e9d-b8be-7437b1f7200b">demo
video</a>).</li>
</ul></li>
<li><a
href="https://github.com/interactive-ssr/client/blob/master/main.org/">Interactive
SSR</a> - ISSR allows you to make interactive web pages without writing
client scripting. No knowledge about Javascript or DOM is necessary.
<ul>
<li>it is not unlike Phoenix LiveView or Hotwire.</li>
</ul></li>
</ul>
<p>CLOG-based frameworks:</p>
<ul>
<li><a
href="https://codeberg.org/mmontone/mold-desktop">mold-desktop</a> - a
programmable desktop.</li>
<li>[WIP] <a
href="https://codeberg.org/khinsen/clog-moldable-inspector">clog-moldable-inspector</a>
- A moldable Common Lisp object inspector based on CLOG. The inspector
is thus shown in a Web browser.</li>
</ul>
<h2 id="parsing-html">Parsing html</h2>
<ul>
<li>👍 <a href="https://github.com/Shinmera/plump">Plump</a> - A lenient
HTML/XML parser, tolerant on malformed markup. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>. Best used
with <a href="https://github.com/Shinmera/lquery">lquery</a> and <a
href="https://github.com/Shinmera/CLSS">clss</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a
href="https://github.com/rotatef/cl-html5-parser">cl-html5-parser</a> -
HTML5 parser for Common Lisp. GPL3.0.
<ul>
<li>a port of the Python library html5lib.</li>
<li>compared to Plump: Plump is a mix of an XML and an HTML parser and
breaks on some HTML rules (<a
href="https://github.com/Shinmera/plump/issues/50">example</a>), while
cl-html5-parser is a fully compliant HTML parser.</li>
</ul></li>
</ul>
<h2 id="querying-htmldom-web-scraping">Querying HTML/DOM, web
scraping</h2>
<ul>
<li>👍 <a href="https://github.com/Shinmera/lquery">lquery</a> - A
jQuery-like HTML/DOM manipulation library. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://40ants.com/scrapycl/">scrapycl</a> - web scraping
framework for writing crawlers in Common Lisp. Unlicense.
<ul>
<li>relying on lquery.</li>
</ul></li>
</ul>
<p>See also the XML section below for xpath libraries and more.</p>
<h2 id="html-generators-and-templates">HTML generators and
templates</h2>
<ul>
<li>👍 <a href="https://github.com/ruricolist/spinneret">spinneret</a> -
Common Lisp HTML5 generator. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="http://weitz.de/cl-who/">cl-who</a> - The venerable HTML
generator. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/mmontone/djula">Djula</a> - A port of
Djangos template engine to Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li><a
href="https://github.com/rajasegar/cl-djula-tailwind">cl-djula-tailwind</a>
- use TailwindCSS classe in your Djula templates without any JavaScript
or Node.js tooling.</li>
<li><a
href="https://github.com/mmontone/djula-template-designer">djula-template-designer</a>
- a template designer tool.</li>
</ul></li>
<li><a href="https://github.com/mmontone/ten">TEN</a> - the completness
of Djula with the full usability of Common Lisp code in templates. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/archimag/cl-closure-template">cl-closure-template</a>
- Implementation of Googles Closure templates, where compiling a
template creates a function that generates the result. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/skyizwhite/hsx/">hsx</a> - An easily
composable HTML5 generation library with the most simplistic syntax. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://shinmera.github.io/clip">clip</a> - An HTML
template processor where the templates are written in HTML. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/fukamachi/lsx/">lsx</a> and <a
href="https://github.com/moderninterpreters/markup">markup</a> - Two
JSX-like templating engines, where HTML tags are Common Lisp code.
<code>markup</code> comes with an Emacs package.</li>
</ul>
<h2 id="uri-and-ip-handling">URI and IP handling</h2>
<ul>
<li><a href="https://github.com/fukamachi/quri">quri</a> - Another URI
library for Common Lisp. Supports userinfo, IPv6 hostname,
encoding/decoding utilities,… <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/EuAndreh/cl-slug">cl-slug</a> - a small
library to make slugs, mainly for URIs, transform in CamelCase, remove
accentuation and punctuation, for english and beyound. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/ynadji/netaddr">netaddr</a> - A network
address manipulation library for Common Lisp. MIT.
<ul>
<li>for manipulating IP addresses, subnets, ranges, and sets. It is
inspired by its namesake library in Python, netaddr.</li>
</ul></li>
</ul>
<h2 id="javascript">Javascript</h2>
<ul>
<li><a
href="https://common-lisp.net/project/parenscript/">Parenscript</a> - A
translator from Common Lisp to Javascript. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>. See <a
href="https://github.com/johnmastro/trident-mode.el">Trident-mode</a>,
an Emacs mode that provides live interaction with the browser.<a
href="http://unlicense.org/">unlicence</a>.
<ul>
<li><a href="https://github.com/BnMcGn/paren6/">paren6</a> - a set of
ES6 macros for Parenscript.</li>
<li><a href="https://github.com/Junker/paren-async">paren-async</a>
async/await for Parenscript.</li>
<li><a href="https://github.com/Junker/paren-jquery">paren-jquery</a> -
Jquery-style macros for Parenscript. MIT.</li>
</ul></li>
<li><a href="https://github.com/jscl-project/jscl">JSCL</a> - A CL-to-JS
compiler designed to be self-hosting from day one. Lacks CLOS, format
and loop.</li>
<li><a href="http://marijnhaverbeke.nl/cl-javascript/">CL-JavaScript</a>
- A translator from Javascript to Common Lisp. Not available on
Quicklisp. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="http://marijnhaverbeke.nl/parse-js/">parse-js</a> - A
package for parsing ECMAScript 3. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/ceramic/remote-js">remote-js</a> - send
JavaScript from Common Lisp to a browser. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/BnMcGn/sigil">sigil</a> - A Parenscript
to Javascript command line compiler and REPL. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>In development:</p>
<ul>
<li><a href="https://github.com/cxxxr/valtan">Valtan</a> - Common Lisp
to JavaScript compiler.</li>
<li><a href="https://tailrecursion.com/JACL/">JACL</a> - an experimental
Lisp system for the Web browser platform to explore new techniques for
developing large Single Page Applications with Lisp.</li>
</ul>
<p>Utilities for <strong>React</strong>:</p>
<ul>
<li><a href="https://github.com/helmutkian/cl-react">cl-react</a> -
Common Lisp (Parenscript) utilities for building web apps in ReactJs.
MIT.</li>
<li><a href="https://github.com/michaeljforster/panic">Panic</a>, a
Parenscript library for React. Not in Quicklisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>. Its <a
href="https://github.com/40ants/todomvc/blob/common-lisp-example/examples/common-lisp-react/src/app.lisp">TodoMVC
example</a>.</li>
<li><a href="https://github.com/jasom/parenscriptx">Parenscriptx</a> -
Parenscript Macros to aid generating react code. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/nilesr/jscl-react">jscl-react</a> - A
web framework for writing react components in common lisp using jscl. No
license specified.</li>
</ul>
<p>See also:</p>
<ul>
<li><a
href="https://github.com/johnmastro/trident-mode.el">trident-mode</a>,
an Emacs minor mode for live Parenscript interaction.</li>
</ul>
<h2 id="deployment">Deployment</h2>
<ul>
<li>👍 <a href="https://shinmera.github.io/deploy">deploy</a> - A
toolkit for binary deployment of Lisp applications, with extra support
for foreign shared libraries. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a
href="https://github.com/fstamour/common-lisp-heroku-example">common-lisp-heroku-example</a>
- Example of Common Lisp server on Heroku using Docker.</li>
<li><a href="https://github.com/xh4/cube">cube</a> - Kubernetes client
library for Common LISP generated from the Swagger specification. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/container-lisp/s2i-lisp">s2i-lisp</a> -
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. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a></li>
<li><a
href="https://github.com/y2q-actionman/cl-aws-custom-runtime-test">cl-aws-runtime-test</a>
- An example of using Common Lisp (SBCL) as a custom runtime on AWS
lambda. WTFPL.</li>
<li><a href="https://github.com/40ants/ci/">40ants/ci</a> - Highly
opionated Github Actions workflow builder for Common Lisp projects.
<ul>
<li>with: a linter, lisp critic, tests runner, test matrix, doc
building, caching…</li>
</ul></li>
<li><a
href="https://github.com/melusina-org/make-common-lisp-program/">make-common-lisp-program</a>
- GitHub action to build an executable Common Lisp program on Ubuntu,
MacOS and Windows. MIT.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://platform.sh/blog/2019/lisp/">Platform.sh</a> has
Common Lisp support, so has <a
href="https://docs.ovh.com/ie/en/web-paas/languages-lisp/">OVH</a>
through their Web PaaS partnership.</li>
<li><a href="https://www.heliohost.org/">Heliohost</a> for a free
hosting solution.</li>
<li><a
href="https://git.sr.ht/%7Emarcuskammer/cloudinit/tree/main/item/sbcl-nginx.yml">Cloud
Init file for SBCL</a> - an init file for providers supporting the
cloudinit format (DigitalOcean etc).</li>
</ul>
<h2 id="monitoring">Monitoring</h2>
<ul>
<li><a
href="https://github.com/deadtrickster/prometheus.cl">prometheus.cl</a>
- Prometheus.io client. Grafana dashboard for SBCL and Hunchentoot
metrics (memory, threads, requests per second,…). <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><a href="https://github.com/40ants/prometheus-gc">prometheus-g</a> -
Extension for prometheus.cl which collects metrics about garbage
collector state.</li>
</ul></li>
<li><a href="https://gitlab.com/lockie/lisp-sentry">lisp-sentry</a> - A
full-featured Common Lisp client library for Sentry application
monitoring software. MIT.
<ul>
<li>light in dependencies, provides Sentry with source code in stack
traces, supports file attachments, event breadcrumbs, automatically
populated execution contexts, threads and user reports, GPU
information.</li>
<li>supports only SBCL</li>
</ul></li>
<li><a
href="https://github.com/mmontone/cl-sentry-client">cl-sentry-client</a>
- a Sentry client for Common Lisp, the cloud-based error monitoring
system. <a href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>based on dexador for HTTP communication and swank for stack traces.
It also features an async HTTP client via the simple-tasks library.</li>
</ul></li>
<li><a
href="https://github.com/adventuring/rollbar.lisp">rollbar.lisp</a> -
interface to <a href="https://rollbar.com/">Rollbar.com</a>, an error
tracking software.</li>
</ul>
<h2 id="websockets">Websockets</h2>
<ul>
<li>👍 <a href="https://github.com/usocket/usocket">usocket</a> - A
portable TCP and UDP socket interface. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/charJe/portal">Portal</a> - Portable
websockets for Common Lisp, using usocket. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/3b/clws">clws</a> - websockets server in
CL, built on IOlib and libfixposix. No licence specified.</li>
<li><a
href="https://github.com/joaotavora/hunchensocket">Hunchensocket</a> -
RFC6455 compliant WebSockets for Common Lisp, as an extension to
Hunchentoot. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/fukamachi/websocket-driver">websocket-driver</a>
- based on Clack.</li>
<li><a href="https://github.com/sionescu/iolib">iolib</a> - I/O library.
<a href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li>“IOlib is to be a better and more modern I/O library than the
standard Common Lisp library. It contains: a socket library, a DNS
resolver, an I/O multiplexer, a pathname library and file-system
utilities.”</li>
</ul></li>
</ul>
<p><em>Editors note: at the time of writing, it seems we dont have a
full-featured websocket implementation for Common Lisp. We can however
recommend Portal, and we invite you to double-check the current issues
of Hunchensocket and websocket-driver.</em></p>
<h2 id="web-development-utilities">Web development utilities</h2>
<h3 id="assets-management">Assets management</h3>
<ul>
<li><a href="https://github.com/eudoxia0/rock">Rock</a> - an asset
manager for Common Lisp. Its basically a combination of Bower and
webassets. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h3 id="browser-tests">Browser tests</h3>
<ul>
<li><a
href="https://github.com/copyleft/cl-webdriver-client/">cl-webdriver-client</a>
- a binding library to WebDriver (supports Selenium 4.0).</li>
</ul>
<h3 id="form-handling">Form handling</h3>
<ul>
<li>👍 <a href="https://github.com/mmontone/cl-forms">cl-forms</a> - Web
forms handling library for Common lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h3 id="user-login-and-password-management">User login and password
management</h3>
<ul>
<li><p><a href="https://github.com/charJe/cl-authentic">cl-authentic</a>
- Password management for Common Lisp (web) applications. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</p>
<ul>
<li>safe password storage: cleartext-free, using your choice of hash
algorithm through ironclad, storage in an SQL database,</li>
<li>password reset mechanism with one-time tokens (suitable for mailing
to users for confirmation),</li>
<li>user creation optionally with confirmation tokens (suitable for
mailing to users),</li>
</ul></li>
<li><p><a
href="https://github.com/40ants/mito-email-auth">mito-email-auth</a> -
Helper to authenticate a websites users by sending them unique code by
email.</p></li>
<li><p><a href="https://github.com/fferrere/cl-cas">cl-cas</a> - A
library to help <a
href="https://apereo.github.io/cas/6.0.x/protocol/CAS-Protocol.html">CAS
authenticaton</a> to Common Lisp web applications. Not in Quicklisp.</p>
<ul>
<li><a
href="https://github.com/fferrere/cas-middleware">cas-middleware</a> -
CAS authenticaton middleware for Caveman.</li>
<li><a href="https://github.com/fferrere/cas-demo">cas-demo</a> - a demo
project.</li>
</ul></li>
</ul>
<p>See also mito-auth and the Hunchentoot and Clack plugins above.</p>
<h3 id="web-project-skeletons-and-generators">Web project skeletons and
generators</h3>
<ul>
<li><a href="https://github.com/vindarel/cl-cookieweb">cl-cookieweb</a>
- a Cookiecutter template to start a web project. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
Not in Quicklisp.
<ul>
<li>Provides a working toy web app with the Hunchentoot web server,
easy-routes, Djula templates, styled with Bulma, based on SQLite, with
migrations, an example table definition and a test suite using
FiveAM.</li>
</ul></li>
<li><a href="https://github.com/container-lisp/make-like">make-like</a>
- an application template builder for LIKE (Lisp In Kubernetes + Emacs)
applications. <a
href="https://directory.fsf.org/wiki/License:ArtisticLicense2.0">Apache2.0</a>.
<ul>
<li>Makefile, podman support, GitHub Actions, Prometheus metrics
support, TOML-style config.ini, easy-route preconfigured with
health-check and more.</li>
</ul></li>
<li><a
href="https://github.com/rajasegar/cl-webapp-seed">cl-webapp-seed</a> -
a simple web application boilerplate. Uses Hunchentoot, cl-who, deploys
easily to Heroku. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="others">Others</h2>
<ul>
<li><a href="https://github.com/Shinmera/LASS">LASS</a> - Lisp Augmented
Style Sheets. Largely inspired by SASS. Zlib.</li>
<li><a href="https://github.com/paddymul/css-lite">css-lite</a> - A CSS
grammar. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/eudoxia0/find-port">find-port</a> -
Programmatically find open ports. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/cl-wget/cl-wget">cl-wget</a> - Makes
retrieving large files or mirroring entire websites easy. <a
href="https://directory.fsf.org/wiki/License:ArtisticLicense2.0">AGPL-3.0</a>.</li>
<li><a
href="https://github.com/eudoxia0/trivial-download">trivial-download</a>
- Download files. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fukamachi/cl-cookie">cl-cookie</a> HTTP
Cookie (jar) manager: parse and write (set-)cookie headers, compare
cookies, optional cookie attribute sanity check. <a
href="https://opensource.org/licenses/MIT">MIT</a></li>
<li><a href="https://github.com/Shinmera/dns-client">dns-client</a> -
DNS record client. See <a
href="https://shinmera.github.io/dns-client/">documentation</a>. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/Junker/mobiledetect">mobiledetect</a> -
System for detecting mobile devices (including tablets) in User-Agent
strings. MIT.</li>
<li><a href="https://github.com/Junker/random-ua">random-ua</a> - Random
User-Agent generator for Common Lisp. BSD_2Clause.</li>
</ul>
<h3 id="email">Email</h3>
<ul>
<li><a href="https://github.com/40ants/trivial-imap">trivial-imap</a> -
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 Franzs cl-imap). <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/eudoxia0/postmaster">Postmaster</a> - A
simple, easy-to-use SMTP/IMAP library. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://gitlab.common-lisp.net/cl-smtp/cl-smtp">cl-smtp</a>
- CL-SMTP is a simple lisp smtp client.</li>
<li><a href="https://github.com/vindarel/cl-sendgrid">sendgrid</a> -
send emails with Sendgrids API. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/40ants/mailgun">mailgun</a> - A thin
wrapper to post HTML emails through mailgun.com. <a
href="http://unlicense.org/">unlicence</a>.</li>
<li><a href="https://github.com/CodyReichert/cl-ses/">cl-ses</a> -
Library for AWS SES. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
</ul>
<h3 id="openapi-odata-openrpc">OpenAPI, OData, OpenRPC</h3>
<ul>
<li>NEW! <a
href="https://codeberg.org/kilianmh/openapi-generator">openapi-generator</a>
- OpenAPI client code generator. <a
href="https://directory.fsf.org/wiki/License:ArtisticLicense2.0">AGPL-3.0</a>.
<ul>
<li>Generation of OpenAPI ASDF/Quicklisp-loadable projects within one
command,</li>
<li>Support for path, (arbitrary) query, (arbitrary) header, (json)
content parameters,</li>
<li>Conversion of an OpenAPI spec into CLOS object -&gt; explore API
within inspector,</li>
<li>Conversion of OpenAPI-2.0 or YAML files to OpenAPI-3.0 JSON with
swagger converter (network connection required),</li>
<li>etc.</li>
</ul></li>
<li><a href="https://github.com/cxxxr/apispec">apispec</a> - A Common
Lisp library for handling Web API requests and responses. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>takes an OpenAPI3 yaml specification and allows to validate and
parse HTTP request headers, parameters and bodies.</li>
</ul></li>
<li><a
href="https://github.com/copyleft/cl-odata-client">cl-odata-client</a> -
Common Lisp client library for accessing <a
href="https://www.odata.org">OData services</a>. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/40ants/openrpc">OpenRPC</a> - OpenRPC
implementation for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.
<ul>
<li>Automatic OpenRPC spec generation</li>
<li>Automatic JSON-RPC client building by OpenRPC spec. This includes
creation of Common Lisp classes and methods for making RPC requests and
returning native CL objects.</li>
<li>all JSON marshalling is done under the hood.</li>
</ul></li>
<li><a href="https://github.com/cxxxr/jsonrpc">jsonrpc</a> - JSON-RPC
2.0 server/client for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<h3 id="static-site-generators">Static site generators</h3>
<ul>
<li><a href="https://github.com/kingcons/coleslaw">coleslaw</a> and its
<a href="https://github.com/40ants/coleslaw-cli">coleslaw-cli</a> -
Flexible Lisp Blogware similar to Frog, Jekyll, or Hakyll. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<h3 id="third-party-apis">Third-party APIs</h3>
<ul>
<li><a href="https://github.com/rotatef/aws-sign4">Aws-sign4</a> -
Common Lisp library for Amazon Web Services signing version 4. <a
href="http://www.gnu.org/copyleft/gpl.html">GNU GPL3</a>.</li>
<li><a href="https://github.com/pokepay/aws-sdk-lisp/">aws-sdk-lisp</a>
- Provides interfaces for each AWS services as individual systems. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.
<ul>
<li>incluse dozens of services: dsn, appstream, athena, cloudfront,
codedeploy, cognito-*, directconnect, dynamodb, dms, elasticache, email,
events, kinesis, machinelearning, monitoring, s3, sms, storagegateway,
workspaces…</li>
</ul></li>
<li><a href="https://github.com/xach/zs3">zs3</a> - A library for
working with Amazons Simple Storage Service (S3) and CloudFront
service. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://shinmera.github.io/north">north</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/kjinho/ciao">Ciao</a> - 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. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a href="https://github.com/eudoxia0/avatar-api">avatar-api</a> -
Get avatars from Google+, Gravatar and others. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/Shinmera/chirp">chirp</a> - A Twitter
client library. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/Shinmera/tooter">tooter</a> - a client
library implementing the full v1 REST API protocol for Mastodon. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://www.common-lisp.net/project/cl-irc/">cl-irc</a> -
An IRC client library. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/AccelerationNet/cl-mediawiki">cl-mediawiki</a>
- a wrapper around the MediaWiki api. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/cl-openid/cl-openid">cl-openid</a> - An
implementation of OpenID. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/TeMPOraL/cl-pushover">cl-pushover</a> -
Common Lisp bindings to Pushover. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/Shinmera/humbler">humbler</a> - A Tumblr
API interface. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/Shinmera/multiposter">multiposter</a> -
post to multiple services simultaneously. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/boogsbunny/stripe">stripe</a> - a client
for the Stripe payment system. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/K1D77A/lisp-pay">lisp-pay</a> - Wrappers
around various payment processors: Paypal, Stripe, Coinpayments and
BTCPayServer. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/K1D77A/lunamech-matrix-api">lunamech-matrix-api</a>
- A complete wrapper over the Client -&gt; Server Matrix API. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://40ants.com/cl-telegram-bot/">cl-telegram-bot</a> -
Telegram bot API. <a href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>includes example bots such as a calculator, payment with invoices,
an actor-based bot…</li>
<li>automatic API spec parser</li>
<li><a
href="https://github.com/aartaka/cl-telegram-bot-auto-api">cl-telegram-bot-auto-api</a>
- Alternative Telegram Bot API bindings, auto-generated from Telegram
website. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
</ul></li>
</ul>
<h1 id="numerical-and-scientific">Numerical and Scientific</h1>
<ul>
<li><a href="http://maxima.sourceforge.net/">maxima</a> - Computer
Algebra System. <a href="http://www.gnu.org/copyleft/gpl.html">GNU
GPL3</a>.
<ul>
<li><a
href="https://wxmaxima-developers.github.io/wxmaxima/">wxMaxima</a>: a
graphical frontend.</li>
<li><a
href="https://play.google.com/store/apps/details?id=jp.yhonda">Maxima on
Android</a>, built with ECL.</li>
<li><a href="https://github.com/robert-dodier/maxima-jupyter">Maxima on
Jupyter</a></li>
<li>[new, POC] <a href="https://maxima-on-wasm.pages.dev/">Maxima in the
browser on WASM</a>, <a
href="https://gitlab.com/spaghettisalat/maxima/-/tree/emscripten-port-deployed">sources</a></li>
<li>it can be used via <a href="https://www.sagemath.org/">SageMath</a>
and <a href="https://apps.kde.org/cantor/">KDE Cantor</a>. Of course,
with Emacs: <a
href="https://gitlab.com/sasanidas/maxima">maxima-mode</a> (<a
href="https://community.linuxmint.com/img/screenshots/maxima-emacs.png">screenshot</a>)
and <a
href="https://github.com/jmbr/maxima-interface">maxima-interface</a> to
ease the interface between Maxima and Common Lisp.</li>
<li>it can be used <a
href="https://mahmoodsheikh36.github.io/post/20230510181916-maxima_in_lisp/">from
a Lisp REPL</a>.</li>
</ul></li>
<li><a href="https://github.com/numcl/numcl">numcl</a> - Numpy clone in
Common Lisp. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a href="https://github.com/digikar99/numericals">numericals</a> -
SIMD powered simple-math numerical operations on arrays for Common Lisp
through CFFI [still experimental]. MIT.
<ul>
<li>documentation: https://digikar99.github.io/numericals/</li>
</ul></li>
<li><a href="https://github.com/digikar99/dense-arrays">dense-arrays</a>
- Numpy like array object for common lisp. MIT.</li>
<li><a href="https://common-lisp.net/project/gsll/">GSLL</a> - GNU
Scientific Library for Lisp; allows the use of the GSL from Common Lisp.
<a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.</li>
<li><a href="https://github.com/pkhuong/Xecto">Xecto</a> - A library for
regular array parallelism. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/marcoheisig/Petalisp">Petalisp</a> - 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. <a
href="https://directory.fsf.org/wiki/License:AGPL-3.0">AGPL-3.0</a>.</li>
<li><a href="https://github.com/ghollisjr/cl-ana">cl-ana</a> - 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. <a href="http://www.gnu.org/copyleft/gpl.html">GNU
GPL3</a>.</li>
<li><a href="https://github.com/takagi/avm">avm</a> - Efficient and
expressive arrayed vector math library with multi-threading and CUDA
support. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/bendudson/array-operations">array-operations</a>
- a collection of functions and macros for manipulating Common Lisp
arrays and performing numerical calculations with them. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/Ramarren/cl-geometry/">cl-geometry</a> -
a system for two dimensional computational geometry for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/sirherrbatka/vellum">Vellum</a> - Data
Frames for Common Lisp. BSD_2Clause.</li>
<li><a href="https://github.com/cbaggers/rtg-math/">rtg-math</a> - 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.</li>
</ul>
<p>Planning solvers:</p>
<ul>
<li><a
href="https://neil-lindquist.github.io/linear-programming/">linear-programming</a>
a library for solving linear programming problems. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/shop-planner/shop3">shop3</a> - a
Hierarchical Task Network (HTN) AI planner. Mozilla Public License.</li>
</ul>
<p>NEW! If you have precise needs, blurry needs or simply questions, the
repository <a
href="https://github.com/digikar99/common-lisp-numsci-call-for-needs">Common
Lisp numsci call for needs</a> is a new place to discuss them.</p>
<h2 id="matrix-libraries">Matrix libraries</h2>
<ul>
<li><a href="https://github.com/quil-lang/magicl">magicl</a> - Matrix
Algebra proGrams In Common Lisp based on BLAS/LAPACK and Expokit, by
Rigetti Computing. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/blindglobe/lisp-matrix">lisp-matrix</a>
- A matrix package. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://shinmera.github.io/3d-matrices">3d-matrices</a> - 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. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/slyrus/clem">clem</a> - a matrix
library. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
</ul>
<h2 id="statistics">Statistics</h2>
<ul>
<li>👍 <a href="https://github.com/lisp-stat">lisp-stat</a> - 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.”
<ul>
<li>https://lisp-stat.dev/</li>
<li>inspired by Luke Tierneys <a
href="https://homepage.stat.uiowa.edu/~luke/xls/xlsinfo/">XLisp-Stat</a>
(a predecessor of R), ships a compatibility library for it, otherwise
builds on other and newer libraries.</li>
</ul></li>
</ul>
<p>See also <a
href="https://github.com/blindglobe/common-lisp-stat/">common-lisp-stat</a>,
Common Lisp statistics library. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>,
staling.</p>
<h2 id="units">Units</h2>
<ul>
<li><a
href="https://github.com/mrossini-ethz/physical-quantities">physical-quantities</a>
- a library that provides a numeric type with optional unit and/or
uncertainty for computations with automatic error propagation. GPL2</li>
</ul>
<h2 id="utils">Utils</h2>
<ul>
<li><a href="https://github.com/rigetti/cmu-infix">cmu-infix</a> - A
library for writing infix mathematical notation in Common Lisp. See also
<a href="https://github.com/mrcdr/polisher">polisher</a>.</li>
</ul>
<h1 id="parallelism-and-concurrency">Parallelism and Concurrency</h1>
<ul>
<li><a
href="https://common-lisp.net/project/bordeaux-threads/">BordeauxThreads</a>
- Portable, shared-state concurrency. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/sharplispers/lparallel">lparallel</a>
- A library for parallel programming. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>. Originally on <a
href="https://github.com/lmj/lparallel">lmj/lparallel</a>.</li>
<li><a href="https://github.com/lmj/lfarm">lfarm</a> - distributing work
across machines (on top of lparallel and usocket). <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a></li>
<li><a href="https://github.com/hawkir/calispel">calispel</a> - <a
href="https://en.wikipedia.org/wiki/Communicating_sequential_processes">CSP</a>-like
channels for common lisp. With blocking, optionally buffered channels
and a “CSP select” statement. ISC-style.
<ul>
<li>“It is complete, flexible and easy to use. I would recommend
Calispel over Lparallel and ChanL.” <span class="citation"
data-cites="Ambrevar">@Ambrevar</span>. <a
href="https://github.com/CodyReichert/awesome-cl/issues/290">discussion</a></li>
</ul></li>
<li><a href="https://github.com/zkat/chanl">chanl</a> - Portable,
channel-based concurrency. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>, with
parts under <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/orthecreedence/cl-async">cl-async</a> -
A library for general-purpose, non-blocking programming. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/TBRSS/moira">Moira</a> - Monitor and
restart background threads. In-lisp process supervisor. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://gitlab.com/ediethelm/trivial-monitored-thread">trivial-monitored-thread</a>
- a Common Lisp library offering a way of spawning threads and being
informed when one any of them crash and die. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/taksatou/cl-gearman">cl-gearman</a> - a
library for the <a
href="https://github.com/gearman/gearmand/">Gearman</a> distributed job
system. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/brown/swank-crew">swank-crew</a> -
distributed computation framework implemented using Swank Client. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a href="https://github.com/takagi/cl-coroutine">cl-coroutine</a> -
a coroutine library. It uses the CL-CONT continuations library in its
implementation. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/cosmos72/stmx">STMX</a> - High
performance Transactional Memory for Common Lisp. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://orthecreedence.github.io/blackbird/">Blackbird</a>
- a Promise implementation for Common Lisp <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>see also <a href="https://github.com/Shinmera/promise">promise</a> -
a basic promise datastructure, with timeouts. ZLIB.</li>
</ul></li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/atgreen/cl-etcd">cl-etcd</a> - Run etcd
as an asynchronous inferior process. <a href="https://etcd.io/">etcd</a>
is a strongly consistent, distributed key-value store. <a
href="https://directory.fsf.org/wiki/License:AGPL-3.0">AGPL-3.0</a>.</li>
</ul>
<h2 id="actors-pattern">Actors pattern</h2>
<ul>
<li>👍 <a href="https://github.com/mdbergmann/cl-gserver">Sento</a> -
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. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/aarvid/Actors">Actors</a> package for
LispWorks (<a
href="https://www.reddit.com/r/Common_Lisp/comments/77vsft/david_mcclains_actors_package_for_lispworks/">announce</a>)
<a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/dbmcclain/Lisp-Actors">lisp-actors</a>,
an “ongoing investigation into the use of the Actor model in Common
Lisp, which has had the benefit of real-world application”.
<ul>
<li>it was part of the <a
href="https://github.com/emotiq/emotiq/blob/dev/src/test/blockchain-test.lisp">Emotiq
blockchain</a> (a discontinued project)</li>
<li>does remoting, includes a threading abstraction layer library
similar to Bordeaux-Threads.</li>
<li>! it lacks unit tests.</li>
</ul></li>
</ul>
<h2 id="event-processing">Event processing</h2>
<ul>
<li><a href="https://github.com/Shinmera/simple-tasks">simple-tasks</a>
- A very simple task scheduling framework. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li>saves the return values and the task environment in case of failure,
so we can inspect it later.</li>
</ul></li>
<li><a href="https://github.com/Shinmera/deeds">deeds</a> - Deeds is an
Extensible Event Delivery System. It allows for efficient event delivery
to multiple handlers with a complex event filtering system. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/borodust/cl-flow/">cl-flow</a> -
Data-flowish computation tree library for non-blocking concurrent Common
Lisp. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/orthecreedence/event-glue">event-glue</a> -
simple eventing abstraction. No dependencies. It can be used anywhere
you need a generic event handling system. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="job-processing">Job processing</h2>
<ul>
<li><a href="http://www.sbcl.org/manual/#Timers">SBCLs timers</a>,
system-wide event schedulers.</li>
<li><a href="https://github.com/fukamachi/psychiq">psychiq</a> -
redis-based background job processing for Common Lisp applications.
Inspired by Rubys Sidekiq and compatible with its web UI. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/ciel-lang/cl-cron">cl-cron</a> - A
simple tool that provides cron like facilities. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/tsikov/clerk">clerk</a> - a cron-like
scheduler with sane DSL. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h1 id="regular-expressions-and-string-parsing">Regular expressions and
string parsing</h1>
<ul>
<li><a href="http://weitz.de/cl-ppcre/">cl-ppcre</a> - Portable,
Perl-compatible regular expressions. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a
href="https://github.com/no-defun-allowed/one-more-re-nightmare">one-more-re-nightmare</a>
- a fast-ish regular expression compiler in Common Lisp. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/dtenny/rexxparse">rexxparse</a> - A
string parsing tool inspired by the REXX PARSE construct. MIT.</li>
</ul>
<p>See also clj-re above.</p>
<h1 id="scripting">Scripting</h1>
<h2 id="running-scripts">Running scripts</h2>
<p><em>Implementations can run files with <code>--load</code>, SBCL has
<code>--script</code>, but there is a start-up time specially when
loading libraries. Can we do better? We can always build a
binary.</em></p>
<ul>
<li>👍 <a
href="https://github.com/roswell/roswell#scripting-with-roswell">Roswell</a>
- a script installer and launcher, that makes it easy to distribute Lisp
scripts and programs. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><em>compiles a binary under the hood</em></li>
</ul></li>
<li><a href="https://github.com/rpav/ScriptL">ScriptL</a> - Shell
scripting made Lisp-like! Or, live-coding remote function calls for the
shell. Write a command in the REPL, and run it instantly in the shell.
<a href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>similar and maybe simpler: <a
href="https://notabug.org/quasus/lserver/">lserver</a></li>
</ul></li>
<li><a href="https://github.com/ciel-lang/CIEL/">CIEL</a> - CIEL Is an
Extended Lisp is a collection of dozens of libraries useful for mundane
tasks (HTTP, JSON, regexps…). [unclear licence]
<ul>
<li>It also comes as a binary that is able to run scripts from sources.
Scripts that use the built-in libraries start fast without a compilation
step.</li>
<li><em>in beta as of 2024</em></li>
</ul></li>
<li>NEW in 2024 <a href="https://github.com/ruricolist/kiln">kiln</a> -
an infrastructure (managing a hidden multicall binary) to make Lisp
scripting efficient and ergonomic. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>Kiln makes it practical to write very small scripts. Kiln scripts
are fast and cheap to the point where it makes sense to expose even
small pieces of Lisp functionality to the shell.</li>
</ul></li>
</ul>
<h2 id="command-line-options-parsers">Command-line options parsers</h2>
<ul>
<li>👍 <a href="https://github.com/dnaeon/clingon">Clingon</a> - a rich
command-line options parser system.
<ul>
<li>it may have the richest feature set: subcommands, generation of bash
completion, support for various kinds of options (integers, booleans,
counter, enums…), extensible…</li>
</ul></li>
<li><a href="https://github.com/sjl/adopt/">Adopt</a> - A Damn OPTion
parsing library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="readline-ncurses-and-other-graphical-helpers">Readline, ncurses
and other graphical helpers</h2>
<ul>
<li><a href="https://github.com/vindarel/cl-readline">cl-readline</a> -
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. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://common-lisp.net/project/linedit">Linedit</a> -
Readline-style library that provides customizable line-editing features.
<a
href="https://common-lisp.net/project/linedit/license.html">MIT-style</a>.</li>
<li><a href="https://github.com/HiTECNOLOGYs/cl-charms">cl-charms</a> -
an interface to <code>libcurses</code> in Common Lisp. It provides both
a raw, low-level interface to libcurses via CFFI, and a more
higher-level lispier interface. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/vindarel/replic/">replic</a> - 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 users lispy init file into
readline commands. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/vindarel/cl-ansi-term">cl-ansi-term</a>
- print colorized text, horizontal lines, progress bars, (un)ordered
lists and tables on ANSI-compliant terminals. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a
href="https://github.com/sirherrbatka/cl-progress-bar/">cl-progress-bar</a>
- progress bars, just like in Quicklisp ! <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>and <a
href="https://github.com/vindarel/progressons">progressons</a>, a
progress bar on one line, for real an dumb terminals. MIT.</li>
</ul></li>
<li><a href="https://github.com/Shinmera/text-draw">text-draw</a> -
Toolkit to draw graphics using pure Unicode text only: boxes,
backgrounds, checkboxes and radio buttons, lines, arrows, tables, trees…
zlib.</li>
</ul>
<h2 id="shells-shells-interfaces">Shells, shells interfaces</h2>
<ul>
<li><a href="https://github.com/nibbula/lish">Lish</a> -
<code>lish</code> may someday be a lisp shell. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
<ul>
<li>supports tab-completion of executables in the path and Lisp symbols,
allows to write and to mix shell commands and Lisp code, has a tiny REPL
and an interactive debugger, and more.</li>
</ul></li>
<li><a href="https://github.com/bradleyjensen/shcl">shcl</a> - a
POSIX-like shell in Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a href="https://github.com/fukamachi/shelly">Shelly</a> - 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. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a
href="https://github.com/PuellaeMagicae/unix-in-lisp">unix-in-lisp</a> -
Mount Unix system into Common Lisp image.
<ul>
<li>Unix concepts are directly/shallowly embedded into Lisp (Unix
commands become Lisp macros, Unix file become Lisp variables, Unix
streams become lazy Lisp sequences, etc).</li>
</ul></li>
</ul>
<p>Lisp utilities:</p>
<ul>
<li><a href="https://github.com/ruricolist/cmd">cmd</a> - utility for
running external programs. Protects against shell interpolation, built
with multi-threaded programs in mind, Windows support. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><code>uiop:run-program</code> (synchronous) and
<code>uiop:launch-program</code> (async) are shipped with ASDF and
available on all modern implementations. See the <a
href="https://lispcookbook.github.io/cl-cookbook/os.html#running-external-programs">CL
Cookbook: running external programs</a>.</li>
</ul></li>
<li><a href="https://github.com/Neronus/Clesh">Clesh</a> - extends
Common Lisp to embed shell code in a manner similar to perls backtick.
<a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
</ul>
<h2 id="system-administration">System administration</h2>
<p>Configuration tools not unlike Ansible, Chef or Puppet.</p>
<ul>
<li><a
href="https://spwhitton.name/tech/code/consfigurator/">Consfigurator</a>
- Lisp declarative configuration management system. You can use it to
configure hosts as root, deploy services as unprivileged users, build
and deploy containers, produce disc images, operate on files and
directories and more. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
<ul>
<li>apache, apt, cmd, container, cron, disk, file, firewalld, git,
hostname, lets-encrypt, locale, lxc, mount, network, os, package,
periodic, postgres, reboot, service, ssh, sshd, systemd, timezone,
user…</li>
</ul></li>
<li><a
href="https://github.com/cl-unix-cybernetics/cl-unix-cybernetics">cl-unix-cybernetics</a>
(previously Adams) - UNIX system administration in Common Lisp. <a
href="https://en.wikipedia.org/wiki/ISC_license">ISC</a>.
<ul>
<li>You describe your systems (hosts) using resources having properties.
The properties are then probed and synchronized using only /bin/sh on
the remote host, and /usr/bin/ssh on the control host.</li>
</ul></li>
</ul>
<h2 id="other-scripting-utilities">Other scripting utilities</h2>
<ul>
<li><a href="https://github.com/sharplispers/clawk">clawk</a> - an AWK
implementation embedded into Common Lisp, to search files for lines and
perform specified actions on its fields. BSD-style.</li>
<li><a href="https://github.com/inconvergent/lqn">lqn</a> - query
language and terminal utility for querying and transforming Lisp, JSON
and other text files. written in Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>And also, stalled projects:</p>
<ul>
<li><a href="https://github.com/wadehennessey/wcl">WCL</a> [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
<code>Hello World!</code> 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.
<ul>
<li>a <a
href="https://dl.acm.org/doi/abs/10.1145/141478.141560">paper</a>:
“Delivering efficient Common Lisp applications under Unix”.</li>
</ul></li>
</ul>
<h1 id="text-editor-resources">Text Editor Resources</h1>
<p>This contains plugins and other goodies for various text editors.</p>
<ul>
<li><a href="https://shaunlebron.github.io/parinfer/">Parinfer</a> -
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,…).</li>
</ul>
<h2 id="emacs">Emacs</h2>
<ul>
<li><a href="https://github.com/slime/slime">Slime</a> - Superior
Lisp Interaction Mode for Emacs; a full-blown environment for Common
Lisp inside of Emacs. Public domain.</li>
<li>👍 <a href="https://github.com/joaotavora/sly">Sly</a> - SLY is a
fork of SLIME and contains multiple improvements upon it, such as Sly
stickers.</li>
</ul>
<p>Starter kits:</p>
<ul>
<li>👍 <a href="https://shinmera.github.io/portacle/">Portacle</a> - A
portable and multiplatform Common Lisp environment: SBCL, Quicklisp,
Emacs, Slime, Git.</li>
<li><a href="https://github.com/susam/emacs4cl">Emacs4CL</a> - 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.</li>
<li><a
href="https://github.com/pascalcombier/plain-common-lisp/">plain-common-lisp</a>
- A trivial way to get a native Common Lisp environment on Windows.
<ul>
<li>ships SBCL, Quicklisp, Emacs and Slime.</li>
<li>with example programs for a console program, accessing the Win32
API, displaying a GUI with IUP, running an OpenGL window.</li>
</ul></li>
<li><a
href="https://hub.docker.com/r/eshamster/cl-devel2/">cl-devel2</a> - a
Docker container for Common Lisp development environment. Ships SBCL,
CCL, Roswell and Emacs25 with Slime.</li>
</ul>
<p>Tools:</p>
<ul>
<li><a
href="https://github.com/lisp-maintainers/quicksearch">Quicksearch</a> -
search for projects on GitHub, Quicklisp, Cliki and Bitbucket. MIT.</li>
</ul>
<p>Slime extensions:</p>
<ul>
<li><a href="https://github.com/mmontone/slime-star">slime-star</a> - a
SLIME configuration with extensions pre-installed, with also some custom
utilities and menus:
<ul>
<li>the Lisp system browser</li>
<li><a href="https://github.com/mmontone/slime-doc-contribs">SLIME doc
contrib</a> - enhance the default help buffer.</li>
<li><a href="https://github.com/mmontone/quicklisp-systems">Quicklisp
systems</a> - Search, browse and load Quicklisp systems from Emacs.</li>
<li><a href="https://github.com/mmontone/slime-breakpoints">Slime
breakpoints</a></li>
<li><a href="https://github.com/tdrhq/slite/">Slite</a> - a test runner
for FiveAM.</li>
<li><a
href="https://github.com/mmontone/quicklisp-apropos">Quicklisp-apropos</a>
- Perform <code>apropos</code> queries across libraries in Quicklisp
(full-text search on symbol names, classes, documentation…).</li>
<li><a href="https://github.com/mmontone/slime-critic">slime-critic</a>
- the lisp critic gently critiques your code for bad patterns.</li>
</ul></li>
</ul>
<p>Sly extensions:</p>
<ul>
<li><a href="https://git.sr.ht/~fosskers/sly-overlay">sly-overlay</a> -
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.</li>
</ul>
<h2 id="vim-neovim">Vim &amp; Neovim</h2>
<ul>
<li><a href="https://github.com/kovisoft/slimv">SLIMV</a> - Superior
Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp
inside of Vim. No license specified.</li>
<li><a href="https://github.com/vlime/vlime">Vlime</a> - VLIME: Vim plus
Lisp Is Mostly Evil. A Common Lisp dev environment for Vim (and Neovim).
<a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://gitlab.com/HiPhish/quicklisp.nvim">quicklisp.nvim</a> - A
Quicklisp frontend for Neovim.</li>
<li><a href="https://github.com/justin2004/slimv_box">Slimv_box</a> -
slimv in a Docker container.</li>
</ul>
<h2 id="eclipse">Eclipse</h2>
<ul>
<li><a href="https://github.com/Ragnaroek/dandelion">Dandelion</a> - a
Common Lisp plugin for the Eclipse IDE.</li>
</ul>
<h2 id="lem">Lem</h2>
<ul>
<li><a href="https://github.com/lem-project/lem">Lem</a> - a ready to
use, Emacs-like, Slime-based editor tailored for Common Lisp development
out of the box, as well as other programming languages with its built-in
LSP client. With ncurses, Electron and SDL2 interfaces. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><a href="https://github.com/lem-project/lem/releases/tag/v2.0.0">Lem
2.0</a>, released on May, 2023, added the SDL2 frontend, thus mouse
support, graphic capabilities and Windows support, among other new
features.</li>
<li>see also: an <a href="https://github.com/pupcraft/lem-opengl">opengl
frontend</a>, <a href="https://github.com/40ants/lem-docker">Lem in
Docker</a>, <a
href="https://github.com/40ants/lem-pareto">lem-pareto</a>.</li>
</ul></li>
<li>🚀 <a href="https://www.youtube.com/watch?v=IMN7feOQOak">Lem on the
cloud</a> (video presentation)
<ul>
<li>“Rooms is a product that runs Lem, a text editor created in Common
Lisp, in the Cloud and can be used by multiple users.”</li>
<li>NEW as of April, 2024.</li>
</ul></li>
</ul>
<h2 id="lispworks">LispWorks</h2>
<ul>
<li><a href="https://github.com/apr3vau/lw-plugins">lw-plugins</a> -
LispWorks Plugins by April &amp; May. OBSD.
<ul>
<li>terminal integration, code folding, side tree, markdown
highlighting, Nerd Fonts, fuzzy-matching, enhanced directory mode,
expand region, pair editing, SVG rendering…</li>
</ul></li>
</ul>
<h2 id="atom-pulsar">Atom, Pulsar</h2>
<ul>
<li><a href="https://github.com/neil-lindquist/slima">SLIMA</a> allows
you to interactively develop Common Lisp code, turning Atom (or now
Pulsar) into a pretty good, and actively developped, Lisp IDE. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="sublime-text">Sublime Text</h2>
<ul>
<li><a href="http://www.sublimetext.com/3">Sublime Text</a>
(proprietary) has Common Lisp support with its SublimeREPL and <a
href="https://github.com/s-clerc/slyblime">Slyblime</a> 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.</li>
</ul>
<h2 id="vscode">VSCode</h2>
<ul>
<li><a
href="https://marketplace.visualstudio.com/items?itemName=ailisp.commonlisp-vscode">commonlisp-vscode</a>
- an extension to support syntax highlight, auto completion,
documentation on hover, go to definition, compile &amp; load file, REPL.
It is <a href="https://github.com/ailisp/commonlisp-vscode/">On
GitHub</a>.</li>
<li><a href="https://github.com/nobody-famous/alive">alive</a> - Common
Lisp Extension for VSCode. Public domain.
<ul>
<li>see the Cookbook: <a
href="https://lispcookbook.github.io/cl-cookbook/vscode-alive.html">using
VSCode with Alive</a></li>
</ul></li>
<li><a
href="https://marketplace.visualstudio.com/items?itemName=ailisp.strict-paredit">strict-paredit-vscode</a>
- structural editing and navigation like Emacs.</li>
</ul>
<h2 id="jetbrains">JetBrains</h2>
<ul>
<li><a href="https://github.com/Enerccio/SLT">SLT</a> - an IDE Plugin
for Itellij/Jetbrains IDE lineup implementing support for Common Lisp
via SBCL and Slime/Swank.
<ul>
<li>🎉 NEW! Released in Jan, 2023.</li>
</ul></li>
</ul>
<h2 id="geany-experimental">Geany (experimental)</h2>
<ul>
<li><a href="https://github.com/jasom/geany-lisp">Geany-lisp</a> is an
experimental lisp mode for the <a href="https://geany.org/">Geany</a>
editor.</li>
</ul>
<h2 id="notebooks">Notebooks</h2>
<ul>
<li><a
href="https://github.com/yitzchak/common-lisp-jupyter">common-lisp-jupyter</a>
- 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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li><a
href="https://github.com/yitzchak/jupyterlab-debugger-restarts">jupyterlab-debugger-restarts</a>
- restart functionality for the JupyterLab debugger.</li>
<li><a href="https://github.com/yitzchak/cytoscape-clj">Cytoscape
widget</a> - Cytoscape.js widget for common-lisp-jupyter.</li>
<li><a href="https://github.com/yitzchak/kekule-clj">Kekule widget</a> -
Kekule.js widget for common-lisp-jupyter.</li>
<li><a href="https://github.com/yitzchak/jupyterlab-molviewer">molecule
viewer</a> - A molecule viewer for JupyterLab using ngl.</li>
<li><a href="https://github.com/yitzchak/ngl-clj">ngl widget</a> - A ngl
widget (protein viewer) for common-lisp-jupyter.</li>
<li><a href="https://github.com/yitzchak/sheet-clj">sheet widget</a> -
Data grid widget for common-lisp-jupyter.</li>
</ul></li>
<li><a href="https://github.com/fredokun/cl-jupyter">cl-jupyter</a> - A
Common Lisp kernel for Jupyter notebooks <a
href="https://github.com/fredokun/cl-jupyter/blob/master/LICENSE">custom
licence</a>.</li>
<li><a href="https://github.com/tamamu/darkmatter">Darkmatter</a> - A
notebook-style Common Lisp environment. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="repls">REPLs</h2>
<ul>
<li><a href="https://github.com/lisp-maintainers/cl-repl">cl-repl</a> -
an ipython-like REPL. With completion, shell commands, magic commands,
debugger, etc. <a href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.
With <a
href="https://github.com/koji-kojiro/lem-pygments-colorthemes">colorthemes</a>.
<ul>
<li>new as of 2024: it now provides multi-line input and binary
releases. Simply download a binary (Ubuntu so far) and run it.</li>
</ul></li>
<li><a href="https://github.com/hellerve/sbcli">sbcli</a> - a readline
REPL for SBCL. With completion, quick commands, optional syntax
highlighting (with pygments), and no interactive debugger. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/sanel/magic-ed">magic-ed</a> - 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. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="online-editors">Online editors</h2>
<ul>
<li><a href="https://ide.judge0.com/?lUpj">Judge0 IDE</a> is an online
editor which supports Common Lisp (SBCL). <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://riju.codes/commonlisp">Riju</a>, a “fast online
playground for every programming language”, supports Common Lisp
(SBCL).</li>
</ul>
<h2 id="apps">Apps</h2>
<ul>
<li><a href="https://codeplayground.app/">CodePlayground</a> - an iPhone
and iPad app with Lisp support via CCL.</li>
</ul>
<h1 id="text-and-binary-parsers">Text and binary parsers</h1>
<ul>
<li><a href="https://github.com/scymtym/esrap">esrap</a> - Parsing
Grammar, Packrat parser, TDPL features and more. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/mrossini-ethz/parseq">parseq</a> - a
library for parsing sequences such as strings and lists using Parsing
Expression Grammars (PEGs). Inspired by Esrap. GPL2.</li>
<li><a href="https://github.com/ravi-delia/uclp">uclp</a> - An
experimental implementation of parsing expression grammars (PEGs, a la
Janet) in Common Lisp. MIT.</li>
<li><a href="https://github.com/quil-lang/alexa">alexa</a> - A Lexical
Analyzer Generator. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>ALEXA is a tool similar to lex or flex for generating lexical
analyzers. Unlike tools like lex, however, ALEXA defines a
domain-specific language within your Lisp program, so you dont need to
invoke a separate tool.</li>
</ul></li>
<li><a href="https://github.com/jech/cl-yacc">cl-yacc</a> - a LALR(1)
parser generator. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/ruricolist/cl-shlex/">cl-shlex</a> -
simple lexical analyzer for shell-like syntaxes. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/drewc/smug">smug</a> - parser
combinators for Common Lisp. SMUG makes it simple to create quick
extensible recursive descent parsers without funky syntax or
impenetrable macrology. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/eugeneia/maxpc">MaxPC</a> - a simple and
pragmatic library for writing parsers and lexers based on combinatory
parsing.
<ul>
<li>MaxPC is capable of parsing deterministic, context-free languages,
provides powerful tools for parse tree transformation and error
handling, and can operate on sequences and streams.</li>
<li>excellent documentation.</li>
</ul></li>
<li><a href="https://github.com/fosskers/parcom">parcom</a> - Simple
parser combinators for Common Lisp, in the style of Haskells
<code>parsec</code> and Rusts <code>nom</code>. <a
href="http://mozilla.org/MPL/2.0/">MPL-2.0</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/j3pic/lisp-binary">lisp-binary</a> - A
library to easily read and write complex binary formats. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/eugeneia/texp/">texp</a> - A DSL to
generate TeX. <a
href="https://directory.fsf.org/wiki/License:AGPL-3.0">AGPL-3.0</a>.</li>
</ul>
<h1 id="text-processing">Text Processing</h1>
<ul>
<li><a href="https://github.com/sharplispers/montezuma/">montezuma</a> -
Full-text indexing and search for Common Lisp. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a
href="https://github.com/cbaggers/mk-string-metrics">mk-string-metrics</a>
- Calculate various string metrics efficiently in Common Lisp
(Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Levenshtein, etc). <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/vseloved/wiki-lang-detect">wiki-lang-detect</a>
- Text language identification using Wikipedia data. No license
specified.</li>
<li><a href="https://github.com/bgutter/cl-phonetic">cl-phonetic</a> -
Phonetic pattern matching library for Common Lisp (intended to replace
the Sylvia library for Python). <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/pokepay/cl-string-generator">cl-string-generator</a>
- Generate string from regular expression. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://notabug.org/cage/trivial-sanitize">trivial-sanitize</a> -
clean html strings: <code>"&lt;a&gt;foo&lt;/a&gt;"</code>
<code>"foo"</code>. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/GrammaTech/resolve">Resolve</a> - A
software for AST-based diff calculation, display, and automated
resolution. Written in C++ and CL, youll find Lisp utilities.</li>
</ul>
<h1 id="tools-1">Tools</h1>
<p>These are applications or bits of code that make development in
Common Lisp easier without being Common Lisp libraries themselves.</p>
<ul>
<li><a href="https://github.com/tkych/quicksearch">quicksearch</a> -
Look up online libraries from the REPL. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/takagi/lake">lake</a> - a GNU make like
build utility. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h1 id="unit-testing">Unit Testing</h1>
<ul>
<li><a href="https://github.com/sionescu/fiveam">FiveAM</a> - Simple
regression testing framework. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.
<ul>
<li><a href="https://fiveam.common-lisp.dev/docs/index.html">FiveAM
documentation</a></li>
<li><a
href="https://github.com/tdrhq/fiveam-matchers/">fiveam-matchers</a> -
an extensible, composable matchers library for fiveam. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
</ul></li>
<li><a href="https://github.com/Shinmera/parachute">Parachute</a> - An
extensible and cross-compatible testing framework. With test
dependencies, conditions, fixtures and restarts. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://notabug.org/cage/clunit2/">CLUnit2</a> - A unit
testing library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/Chream/mockingbird">Mockingbird</a> - 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. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/Ferada/cl-mock">cl-mock</a> - Another
mocking library. It has more features than Mockingbird, like pattern
matching on the mocked call, etc.</li>
<li><a href="https://github.com/DalekBaldwin/check-it">Check-it</a> - A
QuickCheck-style randomized property-based testing. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/fukamachi/cl-coveralls">cl-coveralls</a>
- a helper library to post test coverage to Coveralls. See <a
href="http://www.sbcl.org/manual/index.html#sb_002dcover">SBCLs code
coverage tool</a>. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/rpav/CheckL/">CheckL</a> - Why write
programs in Common Lisp but tests like Java? Meet CheckL!
<ul>
<li>a testing library that checks the current test value against the
previous one and offers restarts.</li>
</ul></li>
</ul>
<p>See also:</p>
<ul>
<li><a
href="https://cicadas.surf/cgit/colin/testiere.git/about/">testieren</a>
- a testing utility where tests are included at the top of a
<code>defun/t</code> form. They are run when you recompile your
functions interactively. With mocking and stubbing support. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/40ants/cl-hamcrest">cl-hamcrest</a> - a
set of <a href="https://hamcrest.org/">Hamcrest</a> matchers that can be
combined to create flexible expressions of intent. Helps make your
unittests more readable by using assertions such as
<code>has-plist-entries</code>, <code>has-slots</code>,
<code>has-length</code>, <code>contains</code>,
<code>contains-in-any-order</code>, <code>has-all</code><a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul>
<p>Editor utilities:</p>
<ul>
<li><a href="https://github.com/tdrhq/slite/">Slite</a> - a SLIme-based
TEst runner for FiveAM Tests. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>
<ul>
<li>Slite interactively runs your Common Lisp tests (at the time of
writing only FiveAM is supported). It allows you to see the summary of
test failures, jump to test definitions, rerun tests with the debugger,
all from inside Emacs.</li>
</ul></li>
</ul>
<p>For more: <a
href="https://sabracrolleton.github.io/testing-framework">Sabra
Crolletons extensive test frameworks comparison</a>.</p>
<h1 id="utilities">Utilities</h1>
<h2 id="caching-serialization">Caching (serialization)</h2>
<ul>
<li><a href="https://github.com/skypher/cl-store">cl-store</a> - a
portable serialization package which gives you the ability to store all
common-lisp data types into streams. MIT.
<ul>
<li>Call <code>store object "file.bin")</code> to store a (possibly
compound) lisp object to disk, and <code>restore</code> to get it
back.</li>
</ul></li>
<li><a href="https://github.com/html/clache">clache</a> - General
caching facility. Cache any Lisp object on disk or in memory. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.
<ul>
<li>built on cl-store</li>
<li>a cache can be persistent or have an expiration time.</li>
<li>exposes the store locations too.</li>
</ul></li>
<li><a href="https://github.com/conspack/cl-conspack">conspack</a> -
binary serialization.</li>
<li><a href="https://gitlab.com/Harag/cl-naive-store">cl-naive-store</a>
- a naive persisted, in memory (lazy loading), indexed, document store
for Common Lisp. <a href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>see <a
href="https://zaries.wordpress.com/2022/05/31/cl-naive-store/">the
introductory blog post</a></li>
<li>dare we add: used in production by the authors company (ASTN Group,
see awesome-lisp-companies)</li>
</ul></li>
<li>🚀 <a
href="https://github.com/ajberkley/cl-binary-store">cl-binary-store</a>
- A fast Common Lisp binary serializer/deserializer. BSD_3Clause. See <a
href="https://www.reddit.com/r/Common_Lisp/comments/1hz5879/new_binary_serializationdeserialization_library/">reddit
announce</a> (2025).
<ul>
<li>“A super fast and customizable serializer/deserializer of Common
Lisp objects to/from a very compact binary format. Equality of objects,
circular references, and the full Common Lisp type system are supported.
Specialized arrays (on SBCL) are stored/restore at lightning
speed.”</li>
</ul></li>
</ul>
<p>See also the <a href="#persistent-object-databases">Persistent object
databases</a> section.</p>
<h2 id="caching-memoization">Caching (memoization)</h2>
<ul>
<li><a
href="https://github.com/AccelerationNet/function-cache">function-cache</a>
- A Common Lisp function caching / memoization library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<h2 id="compression-decompression">Compression / decompression</h2>
<ul>
<li><a href="https://github.com/froydnj/chipz">chipz</a> - A
decompression library. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="http://www.xach.com/lisp/salza2/">Salza2</a> - A library
for creating compressed data. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/Shinmera/zippy">zippy</a> - A ZIP
archive format library based on 3bz. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/froydnj/archive">archive</a> - a library
for reading and creating archive (tar, cpio) files. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
A pure Common Lisp replacement for the <code>tar</code> program.
<ul>
<li>see its recent fork <a
href="https://common-lisp.net/project/cl-tar/">cl-tar</a> (2021). <a
href="https://www.timmons.dev/posts/new-project-cl-tar.html">Announce</a>.</li>
</ul></li>
<li><a
href="https://github.com/keithj/deoxybyte-gzip">deoxybyte-gzip</a> -
Common Lisp interface to zlib via CFFI. GPL3.
<ul>
<li>This system provides gzip and gunzip functions and a Gray-streams
implementation, both built on a set of lower-level zlib functions.</li>
</ul></li>
</ul>
<h2 id="configuration">Configuration</h2>
<ul>
<li>👍 <a
href="https://common-lisp.net/project/py-configparser/">py-configparser</a>
- reads and writes Pythons ConfigParser-like configuration files. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fukamachi/envy">envy</a> - Configuration
switcher. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://github.com/sheepduke/chameleon/">chameleon</a> - a
configuration management library shipped with profile support. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="date-and-time">Date and time</h2>
<ul>
<li><a
href="https://common-lisp.net/project/local-time/">local-time</a> - A
development library for manipulating date and time information in a
semi-standard manner. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a href="https://github.com/Shinmera/fuzzy-dates">fuzzy-dates</a> -
A library to fuzzily parse date and time strings. Zlib.</li>
<li><a
href="https://github.com/tkych/cl-date-time-parser">cl-date-time-parser</a>
- 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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/chaitanyagupta/chronicity">chronicity</a> - A
natural language date and time parse, to parse strings like “3 days from
now”. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
<li><a
href="https://github.com/enaeher/local-time-duration">local-time-duration</a>
- Duration processing library built on top of local-time. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>see this fork: <a
href="https://github.com/40ants/humanize-duration">humanize-duration</a>,
that outputs only significant parts of a duration object. Has
localization suport.</li>
</ul></li>
<li><a
href="https://gitlab.com/DataLinkDroid/iso-8601-date">iso-8601-date</a>
- Miscellaneous date routines in Common Lisp, based around the ISO 8601
string representation. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://github.com/copyleft/calendar-times">calendar-times</a> - a
calendar time library implemented on top of the LOCAL-TIME library. It
features zoned calendar times and calculations.
<ul>
<li>see also: <a
href="https://github.com/takagi/calendar-date">calendar-date</a> - a
Gregorian calendar date library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul></li>
<li><a href="https://github.com/jwiegley/periods">periods</a> -
manipulating date/time objects at a higher level. With series-compatible
data structure. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>with <a href="https://lisp-maintainers.github.io/periods/">some
documentation</a></li>
</ul></li>
<li><a href="https://github.com/Gleefre/stopclock">stopclock</a> - a
library for measuring time using (stop)clocks. It allows you to create a
clock, pause it, resume it and change its speed. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
</ul>
<p>See also the book <a
href="https://www.cambridge.org/us/academic/subjects/computer-science/computing-general-interest/calendrical-calculations-ultimate-edition-4th-edition?format=HB#resources">Calendrical
calculations</a>, by Edward M. Reingold, Nachum Dershowitz, Cambridge
Press. It provides Lisp sources.</p>
<h2 id="data-validation">Data validation</h2>
<ul>
<li><a href="https://github.com/Shinmera/ratify">ratify</a> - A
collection of utilities to ratify, validate and parse inputs. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/mmontone/clavier">clavier</a> - General
purpose validation library for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/fisxoj/json-schema">json-schema</a> - A
library for validating data against schemas of drafts 4, 6, 7, and
2019-09 of the <a href="https://json-schema.org/">JSON Schema</a>
standard. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/fisxoj/sanity-clause">sanity-clause</a>
- a data serialization/contract library for Common Lisp. Schemas can be
property lists or class-based, allowing to check slots types during
<code>make-instance</code>. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/cldm/cl-semver">cl-semver</a> -
Implementation of the <a href="https://semver.org">Semantic
Versioning</a> Specification. <a
href="https://opensource.org/licenses/MIT">MIT</a></li>
</ul>
<h2 id="developer-utilities">Developer utilities</h2>
<p>Common Lisp implementations have plenty of debugging tools. See: <a
href="https://lispcookbook.github.io/cl-cookbook/debugging.html">Cookbook
/ debugging</a>. Those are additional utilities.</p>
<ul>
<li><a href="https://github.com/m-n/repl-utilities">repl-utilities</a> -
Ease common tasks at the REPL (print documentation, print external
symbols, call hooks when loading a package,…). <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a
href="https://github.com/vseloved/flight-recorder">flight-recorder</a> -
a robust REPL history facility.</li>
<li><a href="https://github.com/TeMPOraL/tracer">tracer</a> - tracing
profiler for Common Lisp, with output suitable for display in
Chromes/Chromiums Tracing Viewer. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/40ants/cl-flamegraph">cl-flamegraph</a>
- A wrapper around SBCLs statistical profiler, to generate FlameGraph
charts for Common Lisp programs. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/fukamachi/supertrace">supertrace</a> -
Superior Common Lisp <code>trace</code> functionality for
debugging/profiling. Trace many functions at once, use before and after
hooks. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a href="https://github.com/danlentz/printv">printv</a> - A
batteries-included tracing and debug-logging macro. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2</a>.</li>
<li><a href="https://github.com/melisgl/journal">journal</a> - a library
for logging, tracing, record-and-replay testing and persistence.
MIT.</li>
<li><a href="https://github.com/varjagg/brake">brake</a> - An extended
breakpoint facility for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>and also:</p>
<ul>
<li><a href="http://www.martin-loetzsch.de/gtfl/">GTFL</a> - 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.</li>
<li><a
href="https://github.com/Shinmera/trivial-benchmark">trivial-benchmark</a>
- Tiny benchmarking library. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li>a similar macro (<code>benchmark</code>) is part of <a
href="https://github.com/aartaka/trivial-time">trivial-time</a>,
providing support for more implementations (ABCL, Allegro, CCL, CLISP,
ECL).</li>
<li>Indeed, most trivial-benchmarks metrics are only implemented on
SBCL. On other implementations, it measures real and user-space time
(and not bytes allocated (it does for ECL), system run-time or GC
run-time).</li>
</ul></li>
<li><a href="https://github.com/ahungry/glyphs/">glyphs</a> - A library
for cutting down the verboseness of Common Lisp in places. <a
href="http://www.gnu.org/copyleft/gpl.html">GNU GPL3</a>.</li>
<li><a href="https://gitlab.com/ambrevar/lisp-repl-core-dumper/">Lisp
REPL core dumper</a> - 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.</li>
</ul>
<h2 id="documentation-builders">Documentation builders</h2>
<ul>
<li><a href="https://github.com/Shinmera/staple">Staple</a> - a tool to
generate documentation pages using an HTML template. Uses the existing
README, adds docstrings, crossreferences and links to the CLHS. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/melisgl/mgl-pax">mgl-pax</a> -
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. <a
href="https://opensource.org/licenses/MIT">MIT</a>.
<ul>
<li>also PDF export</li>
<li>see this <a href="https://github.com/40ants/doc">40ants/doc</a>
fork: a lighter core system, a JavaScript search index, multiple format
output, HTML themes, RSS and Atom feed for the Changelog and more.</li>
</ul></li>
<li><a
href="https://sphinxcontrib-cldomain.russellsim.org/">sphinxcontrib-cldomain</a>
- Extending Sphinx to cover Common Lisp. To build documentation with the
same ease as sphinx would a Python project. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>
<ul>
<li>crossreferences, links to the CLHS, symbol index, search, and all
Sphinx features.</li>
</ul></li>
<li><a href="https://github.com/CommonDoc/codex">Codex</a> - A beautiful
documentation system for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/mmontone/qbook">QBook</a> - generates
HTML (or LaTeX) formatted code listings of Common Lisp source files. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>all comments started with 4 <code>;</code> (“;;;;”) are interpreted
as documentation. Enhance the documentation with headings and
directives.</li>
<li>QBook acts as “a lightweight literate programming system, where Lisp
code is not rendered inline, but in separate sections, and that makes
the document more pleasant to navigate.” <span class="citation"
data-cites="mmontone">@mmontone</span></li>
</ul></li>
<li><a href="https://github.com/didierverna/declt">Declt</a> - 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.</li>
<li><a href="https://github.com/mkoeppe/cl-bibtex">cl-bibtex</a> - A
compatible re-implementation of the BibTeX program in Common Lisp, with
a BST-to-CL compiler. <a
href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">GNU
LGPL2.1</a>.</li>
<li><a href="https://github.com/HectareaGalbis/adp">adp</a> - Common
Lisp documentation generator using Scribble files. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>See also:</p>
<ul>
<li><a href="https://github.com/lokedhs/docbrowser">docbrowser</a> - a
server that generates documentation for the loaded systems on the fly.
<ul>
<li>Its main page presents a list of all loaded systems in your Lisp
image. Click on one system, and you get a page with three panes:
functions, classes and variables. Click on a function to see its source,
in context, with line numbers. Click on classes to see their slots and
specializing functions.</li>
</ul></li>
<li><a href="https://github.com/mmontone/cl-livedocs">cl-livedocs</a> -
similar and newer, based on Webinfo, with full text search enabled by
default.</li>
</ul>
<p>An overview blog post with even more documentation generators:
https://lisp-journey.gitlab.io/blog/overview-of-documentation-generators/
and a dedicated site with reviews and demos:
https://cl-doc-systems.github.io/</p>
<p>You might also like: <a href="#literate-programming">literate
programming systems</a>.</p>
<h2 id="files-and-directories">Files and directories</h2>
<ul>
<li><a href="https://common-lisp.net/project/asdf/uiop.html">uiop</a>
and its <code>pathname</code> package (replaces <a
href="http://weitz.de/cl-fad/">cl-fad</a>). uiop is part of ASDF3 and as
thus is shipped in many implementations. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://github.com/Shinmera/pathname-utils">pathname-utils</a> - A
collection of utilities to help with pathname operations. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.
<ul>
<li><a
href="https://github.com/Shinmera/filesystem-utils">filesystem-utils</a>
- deal with common problems with filesystems, such as listing files,
probing file types, determining default directories, etc.</li>
<li>no dependencies, doesnt access the filesystem.</li>
<li><a
href="https://github.com/Shinmera/file-attributes">file-attributes</a> -
access to common file attributes (uid, gid, permissions, ctime, mtime,
atime).</li>
</ul></li>
<li><a href="https://github.com/fosskers/filepaths">filepaths</a> -
Modern and consistent filepath manipulation for Common Lisp. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.
<ul>
<li>no dependencies, doesnt access the filesystem.</li>
</ul></li>
<li><a href="https://common-lisp.net/project/osicat/">osicat</a> - A
lightweight operating system interface on POSIX-like systems, including
Windows (directory iteration and deletion, file permissions, file-type
identification, etc) <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.
<ul>
<li>note: Osicat isnt a pure Lisp library, it relies on compiling C
code and this might make your deployment harder.</li>
</ul></li>
<li><a href="https://codeberg.org/fourier/ppath">ppath</a> - Common
Lisps implementation of the Pythons os.path module. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a href="https://github.com/Shinmera/mmap">mmap</a> - Portable mmap
file memory mapping utility library. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://gitlab.com/ambrevar/fof">fof</a> - File-object
finder Common Lisp library. Enable rapid file search, inspection and
manipulation. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/atlas-engineer/nfiles">nfiles</a> - 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. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<p>File watching libraries:</p>
<ul>
<li><a href="https://github.com/shinmera/file-notify">file-notify</a> -
a cross-platform library for file change detection. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
</ul>
<h2 id="git">Git</h2>
<ul>
<li><a href="https://cl-git.russellsim.org/">cl-git</a> - a CFFI
interface to the libgit2 library. <a
href="https://www.gnu.org/licenses/lgpl-3.0.en.html">LGPL3</a>.</li>
<li><a href="https://shinmera.github.io/legit/">legit</a> - an interface
to the Git binary. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a href="https://github.com/fourier/git-api">git-api</a> - Common
Lisp library to access a git repository. It doesnt need git or libgit
installed. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul>
<p>See also the <a
href="https://lem-project.github.io/usage/usage/#version-control-with-lemlegit-git-experimental">Lem
editors Git interface</a>!</p>
<h2 id="i18n">i18n</h2>
<ul>
<li><a href="https://notabug.org/cage/cl-i18n">cl-i18n</a> - an i18n
library. Load translations from GNU gettext text or binary files or from
its native format. Localisation helpers of plural forms. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a href="https://github.com/rotatef/gettext">gettext</a> - a port of
the gettext runtime to Common Lisp. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a href="https://github.com/dkochmanski/translate">translate</a> -
seamless language localization. LLGPL.</li>
<li><a href="https://github.com/tlikonen/cl-enchant">enchant</a> -
bindings for the Enchant spell-checker library. Public domain.</li>
<li><a href="https://github.com/Shinmera/oxenfurt">oxenfurt</a> - A
client library for the Oxford dictionary API. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a
href="https://shinmera.github.io/language-codes">language-codes</a> - A
database library for ISO language codes. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a></li>
<li><a href="https://shinmera.github.io/system-locale">system-locale</a>
- A library to retrieve the users preferred language, so that your
application may choose a sensible default. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a
href="https://shinmera.github.io/multilang-documentation">multilang-documentation</a>
- Allows writing docstrings in multiple languages, for truly
internationally documented libraries. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
</ul>
<h2 id="linting-code-formatting">Linting, code formatting</h2>
<ul>
<li><a href="https://github.com/fukamachi/sblint">sblint</a> - a linter
for Common Lisp source code using SBCL, suited for Reviewdog (<a
href="http://www.slideshare.net/fukamachi/sblint">slides</a>). <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a
href="https://github.com/hyotang666/trivial-formatter">trivial-formatter</a>
- code formatter for Common Lisp. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>and also: <a
href="https://github.com/eschulte/lisp-format">lisp-format</a> and <a
href="https://github.com/yitzchak/cl-indentify">cl-indentify</a>.</p>
<h2 id="literate-programming">Literate programming</h2>
<ul>
<li><a
href="https://github.com/jingtaozf/literate-lisp">literate-lisp</a> -
Load Common Lisp code blocks from Emacs Org files. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/mmontone/erudite">erudite</a> - Literate
Programming System built with interactive development in mind. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/tani/papyrus">papyrus</a> - Papyrus
makes your markdown executable with the reader macro of Common Lisp.<a
href="https://opensource.org/licenses/MIT">MIT</a></li>
</ul>
<h2 id="logging">Logging</h2>
<ul>
<li><a href="https://github.com/sharplispers/log4cl/">log4cl</a> -
Logging framework modelled after Log4J. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.
Advanced integration with Slime.
<ul>
<li><a href="https://github.com/40ants/log4cl-json">log4cl-json</a> -
JSON appender extension. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
</ul></li>
<li><a href="https://shinmera.github.io/verbose">verbose</a> - A fast
and highly configurable logging framework. <a
href="https://directory.fsf.org/wiki/License:Zlib">zlib</a>.</li>
<li><a
href="https://github.com/AccelerationNet/a-cl-logger">a-cl-logger</a> -
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,…</li>
</ul>
<p>To third parties:</p>
<ul>
<li><a
href="https://github.com/fukamachi/cl-fluent-logger">cl-fluent-logger</a>
- A Common Lisp structured logger for <a
href="https://www.fluentd.org/">Fluentd</a>.</li>
</ul>
<p>See also: <a
href="https://sabracrolleton.github.io/logging-comparison">extensive
comparison of logging libraries</a>.</p>
<h2 id="macro-helpers">Macro helpers</h2>
<ul>
<li><a href="https://github.com/tdrhq/easy-macros/">easy-macros</a> - an
easy way to write 90% of your macros. <a
href="https://directory.fsf.org/wiki/License:Apache2.0">Apache2.0</a>.</li>
<li><a
href="https://github.com/scymtym/trivial-with-current-source-form/">trivial-with-current-source-from</a>
- Helps macro writers produce better errors for macro users. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
</ul>
<h2 id="markdown">Markdown</h2>
<ul>
<li><a href="https://github.com/3b/3bmd">3bmd</a> - a markdown -&gt;
html converter. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<h2 id="package-declarations">Package declarations</h2>
<ul>
<li><a href="https://github.com/takagi/cl-reexport">cl-reexport</a> -
when you want to import and re-export many symbols at once and
<code>:include</code> or <code>:exclude</code> some.</li>
</ul>
<p>See also <a
href="https://common-lisp.net/project/asdf/uiop.html#UIOP_002fPACKAGE">uiop:define-package</a>
and its <code>:reexport</code> clause (without include/exclude),
<code>:recycle</code>, <code>mix</code></p>
<h2 id="pdf">PDF</h2>
<ul>
<li><a
href="https://github.com/mbattyani/cl-typesetting">cl-typesetting</a>
and <a href="https://github.com/mbattyani/cl-pdf">cl-pdf</a> -
cross-platform Common Lisp libraries for generating PDF files. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a href="https://notabug.org/cage/cl-pslib">cl-pslib</a> - a (thin)
wrapper around the <a href="http://pslib.sourceforge.net/">pslib</a>
library for generating PostScript files. Also <a
href="https://notabug.org/cage/cl-pslib-barcode">cl-pslib-barcode</a>.
<a href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
</ul>
<h2 id="plotting">Plotting</h2>
<ul>
<li>lisp-stats <a href="https://github.com/Lisp-Stat/plot">plot
(vega-lite)</a> - a Vega-lite DSL. MS-PL.
<ul>
<li>includes functions for text-based plotting that work in the REPL,
and JavaScript visualisations that are rendered in a browser.</li>
<li><a
href="https://github.com/applied-science/emacs-vega-view?tab=readme-ov-file#common-lisp">emacs-vega-view</a>
- an Emacs plugin that allows to display a Vega plot from a lisp-stat
expression in a buffer.</li>
</ul></li>
<li><a href="https://github.com/volkers/vgplot">vgplot</a> - an
interface to the gnuplot plotting utility with the intention to resemble
some of the plot commands of octave or matlab. <a
href="http://www.gnu.org/copyleft/gpl.html">GPL3</a>.</li>
<li><a
href="https://github.com/guicho271828/eazy-gnuplot">eazy-gnuplot</a> - a
lispy, structure-less Gnuplot library. With its <a
href="http://guicho271828.github.io/eazy-gnuplot/">cookbook</a>. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a></li>
<li><a href="https://github.com/komi1230/kai">kai</a> - A high-level
plotter library for Common Lisp. A wrapper around the <a
href="https://plotly.com/javascript/">Plotly</a> JS library. <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a
href="https://common-lisp.net/project/adw-charting/">ADW-Charting</a> -
A simple chart drawing library written completely in Common Lisp. Also
includes a backend to Googles chart service. BSD-like.</li>
</ul>
<p>cool but WIP:</p>
<ul>
<li><a href="https://github.com/ajberkley/plotly-user">plotly-user</a> -
Use plotly in your browser to explore data from a Common Lisp REPL. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.</li>
</ul>
<p>Plotting with text:</p>
<ul>
<li><a
href="https://github.com/moneylobster/cl-text-plot/">cl-text-plot</a> -
Plot with text in Common Lisp. No licence specified.</li>
<li><a href="https://github.com/tkych/cl-spark">cl-spark</a> - sparkline
strings for the console: <code>(spark '(1 1 2 3 5 8))</code> =&gt;
“▁▁▂▃▅▇”. <a href="https://opensource.org/licenses/MIT">MIT</a>.</li>
</ul>
<p>See also the chart facilities of IUP and ltk-plotchart (GUI
section).</p>
<h2 id="project-skeletons">Project skeletons</h2>
<ul>
<li><a href="https://github.com/fukamachi/cl-project">cl-project</a> -
General modern project skeletons. <a
href="http://opensource.franz.com/preamble.html">LLGPL</a>.</li>
<li><a
href="https://github.com/40ants/cl-project-with-docs">cl-project-with-docs</a>
- uses Sphinx and reStructured text to render nice and readable HTML
documentation. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD</a>.</li>
<li><a
href="https://github.com/vindarel/cl-cookieproject">cl-cookieproject</a>
- Generate a ready-to-use Common Lisp project. Not in Quicklisp. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">BSD_3Clause</a>.
<ul>
<li>test definitions, entry point to run from sources, build a binary,
Roswell integration…</li>
</ul></li>
<li><a
href="https://github.com/lockie/cookiecutter-lisp-game">cookiecutter-lisp-game</a>
- An opinionated cookiecutter template for Common Lisp videogame
projects. Allows to choose <a href="#graphics">backend middleware
library</a> between liballegro, raylib and SDL2. Contains CI scripts
using <a href="#docker-images">docker-lisp-gamedev</a> to automatically
build binaries for Windows, MacOS and Linux.</li>
</ul>
<h2 id="security">Security</h2>
<ul>
<li><a href="https://github.com/kanru/cl-isolated">cl-isolated</a> - A
restricted environment for Common Lisp code evaluation <a
href="https://directory.fsf.org/wiki/License:AGPL-3.0">AGPL-3.0</a>.</li>
<li><a href="https://github.com/phoe/safe-read">safe-read</a> - a
variant of READ secure against internbombing, excessive input and macro
characters. <a
href="https://directory.fsf.org/wiki/License:BSD_2Clause">BSD_2Clause</a>.</li>
<li><a href="https://github.com/rotatef/secret-values">secret-values</a>
- A Common Lisp library to reduce the risk of accidentally revealing
secret values such as passwords.
<ul>
<li><a
href="https://github.com/atgreen/privacy-output-stream">privacy-output-stream</a>
- an output stream that masks secret strings with <code>****</code>,
based on secret-values. MIT.</li>
</ul></li>
</ul>
<p>To safely <code>read</code> data, see also
<code>uiop:with-safe-io-syntax</code> and the associated
<code>safe-read-*</code> functions (they ensure we <code>read</code>
with the standard readtable and <code>#.</code> is inhibited to avoid
read-time evaluation).</p>
<h2 id="system-interface">System interface</h2>
<ul>
<li><a
href="https://github.com/Shinmera/machine-state/">machine-state</a> -
Retrieve machine state information about CPU time, memory usage, thread
processing time, etc.</li>
</ul>
<h2 id="other">Other</h2>
<p>This contains anything which doesnt fit into another category.</p>
<ul>
<li><a href="https://github.com/cl-babel/babel">babel</a> - A charset
encoding/decoding library. <a
href="https://directory.fsf.org/wiki/License:Expat">Expat</a>.</li>
<li><a href="https://github.com/eudoxia0/corona">corona</a> - Create and
manage virtual machines from Common Lisp http://eudoxia.me/corona <a
href="https://opensource.org/licenses/MIT">MIT</a>.</li>
<li><a href="https://github.com/rpav/fast-io">fast-io</a> - Fast
octet-vector/stream I/O. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a
href="https://github.com/melisgl/named-readtables">named-readtables</a>
- Provides a readtable namespace, akin to package namespaces. <a
href="https://directory.fsf.org/wiki/License:BSD_3Clause">3-clause
BSD</a>.</li>
<li><a
href="https://github.com/a0-prw/simple-currency">simple-currency</a> - A
currency conversion library using daily information published by the
ECB. <a
href="https://directory.fsf.org/wiki?title=License:FreeBSD">FreeBSD</a>.</li>
<li><a
href="https://github.com/trivial-garbage/trivial-garbage">trivial-garbage</a>
- A portable finalizer, weak hash-table and weak pointer API. Public
domain.</li>
<li><a
href="https://common-lisp.net/project/trivial-utf-8/">trivial-utf8</a> -
A small library for doing UTF-8-based I/O. BSD.</li>
</ul>
<h1 id="contributing">Contributing</h1>
<p>Your contributions are always welcome! Please submit a pull request
or create an issue to add a new framework, library or software to the
list.</p>
<p>The rules we (try to) respect are the followings:</p>
<ul>
<li>by default, add a library to the end of its section.</li>
<li>absolute de-facto libraries, like BordeauxThreads or Quicklisp,
should be denoted with a ⭐ (Unicode code U+2B50).</li>
<li>two libraries very similar in scope should be side by side, or in a
section of their own.</li>
<li>do some curation based on your experience and the state of the
librarys documentation. We do <em>not</em> aim at listing every
existing CL library (see Cliki for that) nor to list every “popular”
library (see Quicklisp stats).</li>
<li>as such, the libraries we like best are marked with a 👍
(<code>1F44D</code> unicode character). See also the signs explanation
in the introduction.</li>
</ul>
<p><a href="https://github.com/CodyReichert/awesome-cl">cl.md
Github</a></p>