本文档来自以下github资源的翻译和整理,这里列出了一些很棒的Common Lisp框架、库和其他闪亮的东西。



Build Systems

  • :star: ASDF - Another System Definition Facility; a build system for Common Lisp. [Expat][14].
  • asdf-linguist - Extensions for ASDF. [Expat][14].
  • asdf-viz - a tool to visualize the library dependencies of ASDF systems, the call graph of a function and the class inheritances. [LLGPL][8].

Compilers, code generators

C, C++

  • cmacro - Lisp macros for C. [MIT][200].
  • C-mera - a source-to-source compiler that utilizes Lisp's macro system for meta programming of C-like languages. [GPL3][2].
  • lispc - a powerful "lispsy" macrolanguage for C. [MIT][200].

Crypto

  • :star: Ironclad - A library of crypto functions for Common Lisp. Not considered secure, but is still useful for the message digest functions. [Expat][14].
  • crypto-shortcuts - Collection of common crypto shortcuts. [Artistic License 2.0][51].
  • trivial-ssh - An SSH client library. [Expat][14].

Cryptocurrencies

  • cl-monero-tools - Common Lisp toolbox to work with the Monero cryptocurrency. [GPL3][2]. Not in Quicklisp.
  • emotiq - a next-generation blockchain with an innovative natural-language approach to smart contracts. [MIT][200].
  • peercoin-blockchain-parser - parse the blockchain contained in a file and export some of its data to a text file, a SQL script or a database. It can also create a database using the RPC of a Peercoin daemon as source of data instead of a blockchain file. LGPL3. Not in Quicklisp.
  • peercoin-calculator - This program gives you the probability of generating a POS or POW block within 10 minutes, 24 hours, 31 days, 90 days and 1 year, as well as the reward that can be expected. GUI in Qt. [GPL3][2]. Not in Quicklisp.
  • peercoin-vote - A voting system based on data from the blockchain (addresses and balances). [GPL3][2]. Not in Quicklisp.

Database

ORMs

  • :star: clsql - An SQL database with a Common Lisp interface. [LLGPL][8].
  • 👍 mito - An ORM for Common Lisp with migrations, relationships and PostgreSQL support [LLGPL][8]. mitho-auth, a mixin class for use authorization; mito-attachment, a mixin class for file management outside of RDBMS.
  • cl-dbi - A database-independent interface for Common Lisp. [LLGPL][8].
  • crane - Another ORM. [Expat][14].
  • datafly - A lightweight database library. [3-clause BSD][15].
  • sxql - A DSL for generating SQL. [3-clause BSD][15].

Persistent object databases

  • bknr.datastore - a CLOS-based lisp-only database in RAM with transaction logging persistence. licence. (see also chap. 21 of "Common Lisp Recipes")
  • elephant - Elephant is a persistent object database for Common Lisp with full transaction semantics. [LLGPL][8].
  • ubiquitous - A library providing easy-to-use persistent configuration storage. [Artistic License 2.0][51].

Wrappers

  • :star: postmodern - A library for interacting with PostgreSQL. [zlib][33].
  • cl-sqlite - Bindings for SQLite. Public domain.
  • cl-memcached - Fast, thread-safe interface to the Memcached object caching system. [Expat][14].
  • cl-mongo - MongoDB client. [Expat][14].
  • cl-redis - Redis client. [Expat][14].
  • cl-disque - Disque client. [3-clause BSD][15].
  • cl-rethinkdb - RethinkDB client. [Expat][14].
  • clouchdb - Library for interacting with CouchDB. [FreeBSD][39].

To third parties

  • dyna - an AWS DynamoDB ORM. [MIT][200].
  • cl-influxdb - an interface to the Time Series Database InfluxDB. [MIT][200].

Tools

  • pgloader - a data loading tool for PostgreSQL. [PostgreSQL Licence][205].

Data Structures

  • 👍 FSet - A functional, set-theoretic collections data structure library. [LLGPL][8].
  • bst - Binary Search Tree. [GPL3][2]. Not in Quicklisp.
  • pileup - a portable, performant, and thread-safe binary heap for Common Lisp. [MIT][200].
  • sycamore - a fast, purely functional data structure library. [BSD_3Clause][15].

and see more on Quickdocs.

Foreign Function Interface

C

  • :star: CFFI - Portable, easy-to-use C foreign function interface. [Expat][14].
  • 👍cl-autowrap - Automatically parses header files into CFFI definitions. [FreeBSD][39].

Java

  • cl+j - A JNI-based interface to a JVM via CFFI. Not available on Quicklisp. Does not reliably work with all implementations. [Expat][14].

Miscellaneous

  • Foil - A foreign object interface; works with the JVM and CLI. Not available on Quicklisp. [CPL 1.0][47].

Objective-C

  • objc-lisp-bridge - A portable reader and bridge for interacting with Objective-C and Cocoa. [MIT][200].

Python

  • burgled-batteries - A bridge between Python and Common Lisp. Not available on Quicklisp. No license specified.

Game Development

  • Xelf - Extensible game library. Not available on Quicklisp. [GNU LGPL2.1][11].
  • Trial - Trial is an OpenGL game engine with a heavy focus on modularity. It is supposed to provide a large toolkit of useful bits and pieces from which you can create a game. [Artistic License 2.0][47].
  • cl-mpg123 and cl-out123, bindings libraries for libmpg123 and libout123 respectively, giving you fast and easy to use mp3 decoding and cross-platform audio output. [Artistic License 2.0][47].
  • trivial-gamekit – with this small framework you would be able to make simple 2D games: draw basic geometric forms, images and text, play sounds and listen to mouse and keyboard input.

Graphics

These are libraries for working with graphics, rather than making GUIs (i.e. widget toolkits), which have their own section.

  • :star: Sketch - A CL framework for the creation of electronic art, graphics, and lots more. [MIT][200].
  • common-cv - the OpenCV (Open Source Computer Vision Library) binding library for CommonLisp. No license specified.
  • cl-cairo2 - Cairo bindings. [Boost 1.0][54]
  • cl-gd - A library providing an interface to the GD graphics library. [FreeBSD][39].
  • cl-horde3d - FFI bindings to the Horde3D graphics library. Not available on Quicklisp. [EPL 1.0][59]
  • cl-opengl - CFFI bindings to OpenGL, GLU and GLUT APIs. [3-clause BSD][15].
  • cl-sdl2 - Bindings for SDL2 using C2FFI. [Expat][14].
  • cl-svg - A basic library for producing SVG files. [Expat][14].
  • CLinch - Common Lisp 2D/3D graphics engine for OpenGL. [FreeBSD][39].
  • donuts - Graph drawing DSL for Common Lisp. [Expat][14].
  • dufy - exact color manipulation and conversion in various color models. [MIT][200].
  • lispbuilder-sdl - A set of bindings for SDL. [Expat][14].
  • lisp-magick-wand - ImageMagick bindings. [BSD][15]. Not in Quicklisp.
  • okra - CFFI bindings to Ogre. Not available on Quicklisp. [3-clause BSD][15].
  • opticl - a library for representing and processing images. [BSD_2Clause][17].
  • Varjo - Lisp to GLSL translator. [BSD_2Clause][17].
  • Vecto - Simple vector drawing library. [FreeBSD][39].
  • zpng - A library for creating PNG files. [FreeBSD][39].

GUI

  • 👍 Qtools - A Qt toolkit, based on CommonQt. [Artistic License 2.0][51]
  • :star: CommonQt - A Common Lisp binding for Qt4 via QtSmoke. [FreeBSD][39].
  • cl-cffi-gtk - Binding for GTK+3. [GNU LGPL2.1][11].
  • cl-gtk2 - A binding for GTK+2. [LLGPL][8].
  • cl-xul - Mozilla XUL bindings. [Expat][14].
  • ltk - A binding for the Tk toolkit. [LLGPL][8] or [GNU LGPL2.1][11].
  • ceramic - Desktop web apps with Electron. [Expat][14].
  • CocoaInterface - Cocoa interface for Clozure Common Lisp. Build Cocoa user interface windows dynamically using Lisp code and bypass the typical Xcode processes. It has good documentation and a tutorial.
  • McCLIM - An implementation of the Common Lisp Interface Manager, version II. [GNU LGPL2.1][11].
  • cl-webkit - A binding to WebKitGTK+. Also adds web browsing capabilities to an application, leveraging the full power of the WebKit browsing engine. [MIT][200].
  • ftw - A Win32 GUI library. [MIT][200].

Implementations

  • :star: SBCL - A fork of CMUCL; compiles to machine code. [Standard compliance][13]. Public domain, with some parts under [Expat][14] and [3-clause BSD][15].
  • :star: CCL - Clozure Common Lisp; compiler-only implementation, generates native code. [LLGPL][8].
  • ECL - Embeddable Common Lisp; compiles to C. [GNU LGPL2.1][11].
  • ABCL - Armed Bear Common Lisp; targets the JVM, compiles to bytecode. [Standard conformance][4]. [GNU GPL3][2] with [Classpath exception][3].
  • CMUCL - An implementation from Carnegie Mellon University. Public domain.
  • GNU CLISP - A GNU implementation; contains a compiler and an interpreter. [Standard conformance][6]. [GNU GPL3][2].
  • CLASP - a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. [LGPL2.1][11] (and others).

Proprietary:

  • Lispworks - an integrated cross-platform development tool for Common Lisp.
  • Allegro CL - provides the full ANSI Common Lisp standard with many extensions.

JSON

  • cl-json - A JSON encoder and decoder. [Expat][14].
  • jsown - A reader and writer for the JSON format. [Expat][14].
  • json-mop - A metaclass for bridging CLOS and JSON objects. [MIT][200].

See also this extensive comparison of JSON libraries.

YAML

  • cl-yacclyaml - a pure lisp YAML processor (loader, but not yet dumper). [GPL3][2].
  • cl-yaml - a YAML parser and emitter built on top of libyaml. [MIT][200].

Language extensions

  • cl21 - An experimental project to move Common Lisp into the 21st century. [Expat][14].
  • :star: alexandria - A general-purpose utility library. Public domain.
  • serapeum - Another general-purpose utility library. [Expat][14].
  • anaphora - A collection of anaphoric macros. Public domain.
  • cl-algebraic-data-type - A library for defining algebraic data types in a similar spirit to Haskell or ML. [3-clause BSD][15].
  • iterate - An iteration construct for Common Lisp which is extensible and Lispier. No license specified.
  • for - A concise, lispy and extensible iteration macro. Unlike loop it is extensible and sensible, and unlike iterate it does not require code-walking and is easier to extend. [Artistic License 2.0][51].
  • series - Functional style without any runtime penalty at all. [MIT][200].
  • :star: optima - Optimized pattern-matching library. [LLGPL][8].
  • str - a modern, simple and consistent string manipulation library. [MIT][200].
  • trivial-types - Trivial type definitions. [LLGPL][8].
  • interface - A protocol library. [3-clause BSD][15].
  • cl-syntax - Reader syntax conventions. [LLGPL][8].
  • cl-2dsyntax - An indentation-sensitive reader system. Not available on Quicklisp. No license specified.
  • cl-annot - Python-like annotations for Common Lisp. [LLGPL][8].
  • :star: cl-interpol - A set of reader modifications to allow string interpolation. No license specified.
  • arrow-macros - Clojure-like threading macros. [MIT][200].
  • dissect - when a lot of projects use the “trivial-backtrace” system that just gives them a string with a backtrace, Dissect allows you to capture, step, and completely inspect the stack trace on a variety of Lisp implementations. Also very useful for logging and other situations where execution is automatically continued, but the information of the current stack is still useful to store somewhere. [Artistic License 2.0][51].
  • clamp - Arc language's brevity and conciseness to Common Lisp. [Artistic License 2.0][51].
  • trivial-arguments - A portable library to retrieve the arguments list of a function. [Artistic License 2.0][51].

CLOS extensions

  • :star: closer-mop - A compatibility layer that rectifies many absent or incorrect MOP features. [Expat][14].
  • defclass-std - a shortcut macro to write DEFCLASS forms quickly. [LLGPL][8].

Non-deterministic, logic programming

  • cl-prolog2 - Common Interface to ISO Prolog implementations from Common Lisp. [MIT][200].
  • Screamer - augment Common Lisp with practically all of the functionality of both Prolog and constraint logic programming languages. Blog post solving Project Euler puzzles. [MIT][200].
  • Screamer+ - increasing the expressiveness of SCREAMER. [MIT][200].
  • Temperance - logic programming. [MIT][200]. A focus on performance, with General Game Playing in mind.

Reactive programming

Contract programming

  • quid-pro-quo - a contract programming library in the style of Eiffel’s Design by Contract ™. Public domain.

Learning and Tutorials

Online

Beginner

Intermediate

Advanced

  • [Let Over Lambda][156] - A book on advanced macro techniques. The first six chapters are available online.
  • On Lisp - Paul Graham's amazing book on Lisp macros (and other interesting things).

Reference

  • Common Lisp Quick Reference - A distilled, pocket-size version of the ANSI CL spec. Available for download as a PDF.
  • CLHS - The Common Lisp HyperSpec; the ANSI CL standard, in hypertext form.
  • CLOS MOP specification - A modern public domain online version of chapters 5 and 6 of The Art of the Metaobject Protocol
  • Common Lisp Standard Draft - The final draft of the Common Lisp specifications, in a well formatted PDF.
  • Common Lisp the Language - The original standard for Common Lisp before the ANSI spec.
  • Minispec - A friendlier, but less-complete, version of CLHS. Also contains documentation for some commonly-used CL libraries (such as Alexandria).
  • Simplified Common Lisp reference - The simplified version of CLHS.
  • Quickdocs - A reference for the libraries provided by Quicklisp.

Offline

Beginner

  • Land of Lisp - A fun, game-oriented introduction to Common Lisp.
  • [Practical Common Lisp][206] - A good introductory text to Common Lisp, with practical examples.
  • [Common Lisp Koans][201] - The project guides the learner progressively through many Common Lisp language features.

Intermediate

  • ANSI Common Lisp - A thorough, practical covering of the entire language, with exercises. Not recommended as a starter text, due to [some caveats][20].
  • Common Lisp Recipes - Common Lisp Recipes is a collection of solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. Published in 2015.

Advanced

  • [Let Over Lambda][156] - A book on advanced macro techniques. All eight chapters are available in the print copy.
  • [Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS][21] - An old, but very thorough book on CLOS.
  • [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp][157] - A book on programming AI that covers some advanced Lisp.

Community

Library Manager

  • :star: [Quicklisp][16] - A library manager containing many libraries, with easy depencency management. [Expat][14].
  • 👍Roswell - a Lisp implementation installer, script launcher and more. [MIT][200].
  • qlot - A project-local library installer, similar to Bundler or Carton. [Expat][14].
  • Quickutil - A utility manager, similar to Quicklisp, but for small utilities rather than whole libraries. [3-clause BSD][15].
  • Qi - A package manager with a traditionnal approach. [BSD][15].

might help:

  • print-licenses - print licenses used by a project and its dependencies. [MIT][200].

Interfaces to other package managers

  • cl-brewer - Homebrew formula builder for (command line) common lisp applications. Public domain.
  • qldeb - Quicklisp systems to debian packages, along with deb-packager (simply create a debian package by defining an s-expression) and an introductory blog post. Both [MIT][200].
  • ql-to-deb - Update cl-* debian packages from Quicklisp releases. WTFPL.

Machine Learning

  • clml - originally developped by Mathematicl Systems Inc., a Japanese company. With a tutorial. [LLGPL][8].
  • mgl - used by its author to win the Higgs Boson Machine Learning Challenge. [MIT][200].
  • antik - a foundation for scientific and engineering computation in Common Lisp. GPL. Also mgl-mat and LLA.

Credit: borretti.me' state of CL ecosystem 2015.

Natural Language Processing

  • cl-nlp - Natural language processing toolset. [Apache2.0][89].
  • babel2 - A Fluid Construction Grammar implementation, computational framework, and unification-based grammar formalism [Apache2.0][89].

Network and Internet

See Cliki for more.

HTTP clients

HTTP Servers

  • 👍Clack - A web application environment inspired by Rack and WSGI. [LLGPL][8]. Provides a unified interface to a webserver of choice (default is Hunchentoot).
  • :star: Hunchentoot - A web server. [2-clause BSD][207]
  • aserve - AllegroServe; a web server. [LLGPL][8].
  • wookie - Asynchronous HTTP server. [Expat][14].
  • woo - A fast non-blocking HTTP server on top of libev. [MIT][200].

Clack plugins

  • clack-errors - Error page middleware for Clack. [LLGPL][8].
  • clath - a single sign-on middleware for Clack. It allows basic login with OAuth1.0a, OAuth2 and OpenID. At the time of writing, it supports authentication from Google, Twitter, LinkedIn, StackExchange, Reddit and Github. [Apache2.0][51].
  • clack-pretend - a testing and debugging tool for clack. [Apache2.0][89].
  • hermetic - Security for Clack-based web applications. [Expat][14].
  • live-reload - Live reload prototype for clack. [LLGPL][8].
  • clack-static-asset-middleware - a cache-busting static asset middleware for the clack. [MIT][200].

Web frameworks

  • Caveman - A powerful web framework. [LLGPL][8]. Example projects: Quickdocs
  • hh-web - Framework for building modern web apps. [Expat][14].
  • ningle - A super-micro web framework. [LLGPL][8]. ninglex, an extended and noob-friendly ningle (mostly easier handling of query parameters). [MIT][200].
  • radiance - An extensible framework library and multi-application CMS. [Artistic License 2.0][51].
  • Lucerne - A minimal web framework built on Clack, inspired by Flask. [MIT][200].
  • Snooze - A RESTful web framework, built on Clack, where routes are just functions and HTTP conditions are just Lisp conditions. [LLGPL][8].
  • cl-rest-server - a library for writing REST web APIs. Features validation with schemas, annotations for logging, caching, permissions or authentication, documentation via Swagger, etc. [MIT][200].

There are more projects, more or less discontinued but interesting. See the other ressources.

Assets management

  • Rock - an asset manager for Common Lisp. It's basically a combination of Bower and webassets. [MIT][200].

Parsing html

  • 👍 [Plump][71] - A lenient HTTP/XML parser, tolerand on malformed markup. [Artistic License 2.0][51]. Best used with [lquery][72] and clss.
  • http-parse - An HTTP parser in Common Lisp. [Expat][14].

Querying HTML/DOM

  • 👍 [lquery][72] - A jQuery-like HTML/DOM manipulation library. [Artistic License 2.0][51].

See also XML below.

HTML generators and templates

  • 👍 spinneret - Common Lisp HTML5 generator. [Expat][14].
  • flute - An easily composable HTML5 generation library with the most simplistic syntax. [MIT][200].
  • :star: cl-who - The venerable HTML generator. [FreeBSD][39].
  • :star: Djula - A port of Django's template engine to Common Lisp. [Expat][14].
  • cl-markup - Modern markup generation library. [LLGPL][8].
  • eco - Fast, flexible, designer-friendly template engine. [Expat][14].
  • cl-closure-template - Implementation of Google's Closure templates. [LLGPL][8].

URI handling

  • quri - Another URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,… [BSD_3Clause][15].
  • purl - Provides a parser and defines a type for URLs as specified in RFC1738. [GNU GPL3][2].
  • cl-slug - a small library to make slugs, mainly for URIs, transform in CamelCase, remove accentuation and punctuation, for english and beyound. [LLGPL][8].

Javascript

  • :star: Parenscript - A translator from Common Lisp to Javascript. [3-clause BSD][15]. See Trident-mode, an Emacs mode that provides live interaction with the browser.[unlicence][5].
  • parse-js - A package for parsing ECMAScript 3. [zlib][33].
  • JSCL - A CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop.
  • CL-JavaScript - A translator from Javascript to Common Lisp. Not available on Quicklisp. [Expat][14].
  • Wuwei - A toolkit to build Ajax-based web pages. [MIT][200].
  • SmackJack - An Ajax Common Lisp Library using parenscript to generate javascript and hunchentoot (for now) as the web server. Also allows a server-side lisp function to call a client-side parenscript one. [MIT][200].
  • Panic, a Parenscript library for React. Not in Quicklisp. [MIT][200]. Its TodoMVC example.

Websockets

  • 👍 usocket - A portable TCP and UDP socket interface. [Expat][14].
  • websocket-driver - a WebSocket server/client implementation, backend agnostic (Clack). [3-clause BSD][15].

See more on cliki.

Static site generators

  • coleslaw and its coleslaw-cli - Flexible Lisp Blogware similar to Frog, Jekyll, or Hakyll. [BSD][15].

Deployment

  • heroku-buildpack-common-lisp - A Heroku buildpack that uses Roswell to compile Common Lisp applications. LGPL3.
  • cube - Kubernetes client library for Common LISP generated from the Swagger specification. No license specified.
  • base-lisp-image - base Docker image for Common Lisp projects with SBCL or CCL and the latest ASDF, Qlot and Roswell.

Third-party APIs

  • Aws-sign4 - Common Lisp library for Amazon Web Services signing version 4. [GNU GPL3][2].
  • zs3 - A library for working with Amazon's Simple Storage Service (S3) and CloudFront service. [BSD][15].
  • cl-ses - Library for AWS SES. [Expat][14].
  • north - The successor to the South (Simple OaUTH) library, implementing the full oAuth 1.0a protocol, both client and server sides. Using North you can easily become an oAuth provider or consumer. [Artistic License 2.0][51].
  • avatar-api - Get avatars from Google+, Gravatar and others. [Expat][14].
  • chirp - A Twitter client library. [Artistic License 2.0][51].
  • tooter - a client library implementing the full v1 REST API protocol for Mastodon. [ArtisticLicense2.0][51].
  • cl-irc - An IRC client library. [Expat][14].
  • cl-mediawiki - a wrapper around the MediaWiki api. [MIT][200].
  • cl-openid - An implementation of OpenID. [LLGPL][8].
  • cl-pushover - Common Lisp bindings to Pushover. [MIT][200].
  • humbler - A Tumblr API interface. [Artistic License 2.0][51].

See also multiposter to post to multiple services simultaneously.

Others

  • colleen - IRC bot with a modular framework. [Artistic License 2.0][51].
  • css-lite - A CSS grammar. [Expat][14].
  • find-port - Programmatically find open ports. [MIT][200].
  • cl-forms - Web forms handling library for Common lisp. [MIT][200].
  • Postmaster - A simple, easy-to-use SMTP/IMAP library. [Expat][14].
  • cl-selenium-webdriver - a binding library to Selenium 2.0.

Numerical and Scientific

  • magicl - Matrix Algebra proGrams In Common Lisp based on BLAS/LAPACK and Expokit, by Rigetti Computing. [BSD_3Clause][15].
  • cl-spark - Generates sparkline strings for lists of numbers. [Expat][14].
  • GSLL - GNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp. [GNU LGPL2.1][11].
  • common-lisp-stat - Common Lisp statistics library. [FreeBSD][39].
  • maxima - Computer algebra system. Not available on Quicklisp. [GNU GPL3][2].
  • lisp-matrix - A matrix package. [FreeBSD][39].
  • 3-matrices - A library implementing common matrix calculations, with an emphasis on 2x2,3x3, and 4x4 matrices as commonly used in graphics. It provides some numerical functions as well, but those are not the focus. The library is heavily optimised, so it is not made of pretty code. [Artistic License 2.0][51].

Parallelism and Concurrency

  • :star: BordeauxThreads - Portable, shared-state concurrency. [Expat][14].
  • :star: lparallel - A library for parallel programming. [3-clause BSD][15].
  • lfarm - distributing work across machines (on top of lparallel and usocket). [BSD_3Clause][15]
  • chanl - Portable, channel-based concurrency. [Expat][14], with parts under [3-clause BSD][15].
  • cl-async - A library for general-purpose, non-blocking programming. [Expat][14].
  • erlangen - Distributed, asynchronous message passing system for Clozure Common Lisp. [GNU GPL3][2]. See also the Actors package for LispWorks (discussion) [MIT][200].
  • lesque - A clone of Resque. Not available on Quicklisp. [Expat][14].
  • Xecto - A library for regular array parallelism. [3-clause BSD][15].
  • Moira - Monitor and restart background threads. In-lisp process supervisor. No license specified.
  • simple-tasks - A very simple task scheduling framework. [Artistic License 2.0][51].
  • deeds - Deeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system. [Artistic License 2.0][51].
  • cl-flow - Data-flowish computation tree library for non-blocking concurrent Common Lisp. [MIT][200].

Job processing

  • psychiq - redis-based background job processing for Common Lisp applications. Inspired by Ruby's Sidekiq and compatible with its web UI. [LLGPL][8].
  • clerk - a cron-like scheduler with sane DSL. [MIT][200].

Regex

  • :star: cl-ppcre - Portable, Perl-compatible regular expressions. [FreeBSD][39].

Scripting

  • 👍 Roswell - a lisp installer and scripting environment (helper, launcher, installer) and more. [MIT][200].
  • Shelly - execute Common Lisp functions like a shell command, without the need to write a command line arguments parser. And it also can be used as a Make-like build-tool. [FreeBSD][39].
  • cl-readline - a set of functions to edit lines as they are typed in, to maintain a list of previously-entered command lines, to recall and reedit them and perform csh-like history expansion. Emacs and vi editing modes. [GPL3][2].
  • 👍 Unix-opts - a command line options parser with a concise declaration of options. [MIT][200].
  • CLON - Command Line Options Nuker. ISC.
  • cl-ansi-term - print colorized text, horizontal lines, progress bars, (un)ordered lists and tables on ANSI-compliant terminals. [GPL3][2].
  • cl-charms - an interface to libcurses in Common Lisp. It provides both a raw, low-level interface to libcurses via CFFI, and a more higher-level lispier interface. [MIT][200].
  • Deploy - a system to help you easily and quickly deploy standalone common lisp applications as binaries. Specifically it is geared towards applications with foreign library dependencies that run some kind of GUI. [Artistic License 2.0][51].
  • shcl - a POSIX-like shell in Common Lisp. [Apache2.0][51].
  • cl-progress-bar - progress bars, just like in Quicklisp ! [MIT][200].

Text Editor Resources

This contains plugins and other goodies for various text editors.

  • Parinfer - Parinfer is a way to edit lisp code that helps to keep both the indentation and the parenthesis balanced. It is easy to start with and yet it offers advanced features à la Paredit. It is available on many editors (Emacs, Vim, Neovim, Atom, Sublime Text, Visual Studio Code, LightTable, CodeMirror,…).

Emacs

  • :star: Slime - Superior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain.
  • 👍 Sly - SLY is a fork of SLIME and contains multiple improvements upon it.
  • 👍 Portacle - A portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git.
  • cl-devel2 - a Docker container for Common Lisp development environment. Ships SBCL, CCL, Roswell and Emacs25 with Slime.

Vim

  • SLIMV - Superior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified.
  • Vlime - VLIME: Vim plus Lisp Is Mostly Evil. A Common Lisp dev environment for Vim (and Neovim). [MIT][200].

Lem

  • Lem - a ready to use, Emacs-like, Slime-based editor tailored for Common Lisp development. Ncurses and Electron interfaces. [MIT][200].

Atom

  • ATOM-SLIME allows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE. [MIT][200].

Sublime Text

  • Sublime Text has Common Lisp support with its "SublimeREPL" package. [Proprietary].

Notebooks

REPLs

  • cl-repl - an ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. [MIT][200]. With colorthemes.

Text Processing

  • montezuma - Full-text indexing and search for Common Lisp. [Expat][14].
  • mk-string-metrics - Calculate various string metrics efficiently in Common Lisp (Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Levenshtein, etc). [MIT][200].
  • cl-yacc - a LALR(1) parser generator. [MIT][200].
  • wiki-lang-detect - Text language identification using Wikipedia data. No license specified.

Tools

These are applications or bits of code that make development in Common Lisp easier without being Common Lisp libraries themselves.

  • [quickapp][188] - A project for generating template projects with SBCL and buildapp. Also includes a command-line argparser. [3-clause BSD][15].
  • quickapp-cli - [quickapp][188] as a command-line utility. [3-clause BSD][15].
  • quicksearch - Look up online libraries from the REPL. [Expat][14].
  • SWIG - A tool for generating FFI code from C/C++ header files. [GNU GPL3][2].
  • cl-project - General modern project skeletons. [LLGPL][8].
  • lake - a GNU make like build utility. [MIT][200].

Unit Testing

  • :star: FiveAM - Simple regression testing framework. [FreeBSD][39].
  • CLUnit - A unit testing library. [Expat][14].
  • Prove - Yet another unit testing framework [Expat][14].
  • Parachute - An extensible and cross-compatible testing framework. With test dependencies, conditions, fixtures and restarts. [Artistic License 2.0][51].
  • Mockingbird - A small stubbing and mocking library for Common Lisp. Can also check wether a stubbed function was called, how many times and with which arguments. [MIT][200].
  • Check-it - A QuickCheck-style randomized property-based testing. [LLGPL][8].
  • cl-coveralls - a helper library to post test coverage to Coveralls. See continuous-integration on lisp-lang.org and SBCL's code coverage tool. [FreeBSD][39].

Utilities

Caching

  • clache - General caching facility. No license specified.

Configuration

  • 👍 py-configparser - reads and writes Python's ConfigParser-like configuration files. [MIT][200].
  • envy - Configuration switcher. [FreeBSD][39].

CSV

  • cl-csv - A library for parsing CSV files. [3-clause BSD][15].
  • cl-decimals - Decimal number parser and formatter. Public domain.

Date and time

  • localtime - A development library for manipulating date and time information in a semi-standard manner. [3-clause BSD][15].
  • cl-date-time-parser - Parse date-time-string, liberally. Hides the difference between date-time formats, and enables to manage date and time as the one date-time format. [MIT][200].
  • chronicity - A natural language date and time parse, to parse strings like "3 days from now". [BSD_3Clause][15].
  • local-time-duration - Duration processing library built on top of local-time. [MIT][200].

Data validation

  • ratify - A collection of utilities to ratify, validate and parse inputs. [Artistic License 2.0][51].
  • clavier - General purpose validation library for Common Lisp. [MIT][200].

Documentation builders

  • sphinxcontrib-cldomain - Extending Sphinx to cover Common Lisp. To build documentation with the same ease as sphinx would a Python project. [GPL3][2]
  • Codex - A beautiful documentation system for Common Lisp. [MIT][200].
  • Staple - a tool to generate documentation pages using an HTML template. Uses the existing README, adds docstrings, crossreferences and links to the CLHS. [ArtisticLicense2.0][51].

Files and directories

  • :star: uiop and its pathname package (replaces cl-fad). uiop is part of ASDF3 and as thus is shipped in many implementations. [MIT][200].
  • osicat - A lightweight operating system interface on POSIX-like systems (directory iteration and deletion, environment variables, file permissions, etc) [Expat][14].
  • pathname-utils - A collection of utilities to help with pathname operations. [Artistic License 2.0][51].
  • archive - a library for reading and creating archive (tar, cpio) files. [BSD_3Clause][15]. A pure Common Lisp replacement for the 'tar' program.

Git

  • legit - an interface to the Git binary. [Artistic License 2.0][51].

i18n

  • cl-i18n - an i18n library. Load translations from GNU gettext text or binary files or from its native format. Localisation helpers of plural forms. [LLGPL][8].
  • cl-locale - A simple i18n library. [LLGPL][8].
  • enchant - bindings for the Enchant spell-checker library. Public domain.
  • oxenfurt - A client library for the Oxford dictionary API. [ArtisticLicense2.0][51].

Linting

  • sblint - a linter for Common Lisp source code using SBCL, suited for Reviewdog (slides). [BSD_2Clause][17].

Logging

  • :star: log4cl - Logging framework modelled after Log4J. [Apache2.0][89]. Advanced integration with Slime.

To third parties:

Markdown

  • 3bmd - a markdown -> html converter. [MIT][200].

Plotting

  • vgplot - an interface to the gnuplot plotting utility with the intention to resemble some of the plot commands of octave or matlab. [GPL3][2].
  • eazy-gnuplot - a lispy, structure-less Gnuplot library. With its cookbook. [LLGPL][8]

Other

This contains anything which doesn't fit into another category.

  • babel - A charset encoding/decoding library. [Expat][14].
  • chipz - A decompression library. [3-clause BSD][15].
  • cl-cuda - A library to use NVIDIA CUDA in Common Lisp programs. [LLGPL][8].
  • corona - Create and manage virtual machines from Common Lisp http://eudoxia.me/corona [MIT][200].
  • :star: esrap - Packrat parser. [Expat][14].
  • fast-io - Fast octet-vector/stream I/O. [3-clause BSD][15].
  • glyphs - A library for cutting down the verboseness of Common Lisp in places. [GNU GPL3][2].
  • iolib - I/O library. [Expat][14].
  • mixalot - A loosely-coupled collection of audio libraries. No license specified.
  • named-readtables - Provides a readtable namespace, akin to package namespaces. [3-clause BSD][15].
  • nEXT-Browser - A productivity focused, extensible/programmable web browser. [3-clause BSD][15].
  • Salza2 - A library for creating compressed data. [FreeBSD][39].
  • simple-currency - A currency conversion library using daily information published by the ECB. [FreeBSD][39].
  • template - A library for templates and functions, similar to C++. [3-clause BSD][15].
  • texp - A DSL to generate TeX. No license specified.
  • trivial-benchmark - Tiny benchmarking library. [Artistic Licence 2.0][51].
  • trivial-garbage - A portable finalizer, weak hash-table and weak pointer API. Public domain.
  • trivial-utf8 - A small library for doing UTF-8-based I/O. Not available on Quicklisp. No license specified.

XML

  • CXML - XML parser, with a range of extension libraries. [LLGPL][8].
  • [Plump][71] - A lenient XML parser. [Artistic License 2.0][51].
  • s-xml - A basic parser. [LLGPL][8].
  • xmls - A small, simple, non-validating XML parser. [3-clause BSD][15].
  • cl-feedparser - A Common Lisp (RSS, Atom) feed parser. [LLGPL][8]