If you feel that a certain library should be written then please add it to Suggested Programming Projects or write it yourself.
A clean and up-to-date, yet rather subjective listing of recommended libraries can be found here (2015), it saw an update there (2020), and another list is maintained on Github on awesome-cl. To search for libraries across Quicklisp, Cliki, GitHub and BitBucket, there exists the Quicksearch library.
Library management / installation / Handling Packages
- Quicklisp - A popular way of obtaining lisp libraries
- asdf - System definition, aka Makefiles(in some implementation like sbcl, this is already installed by default)
- Qlot is a project-local library installer using Quicklisp facility. This aims to be like Bundler of Ruby or Carton of Perl.
- Roswell is a Lisp implementation installer/manager, library installer, script launcher, and much more !
- CLPM is a relatively new package manager for Common Lisp. It works as well for system-wide or directory-local packages. It supports HTTPS and allows explicitely versioned dependencies.
Web development
See also Quickdocs.Frameworks and development tools:
- Caveman - a lightweight, server independant, fully extensible web framework with database integration.
- CLOG - A JS over WebSockets based framework
- CL-Weblocks - a continuations based framework
- ningle - a very lightweight web application framework using Clack
- Clack - a wrapper API for HTTP requests/responses with multiple webserver backends. Inspired by Python's WSGI and Ruby's Rack
- Hunchentoot - the de-facto standard HTTP web server
- Woo - a fast libev-based async web server with worker thread support
- Wookie - an async application/web server
- Dexador - an HTTP/HTTPS client library with session management and more, aiming at replacing Drakma.
- CL-WHO HTML generator
- Parenscript JavaScript compiler
- css-lite is a library for generating CSS from an s-exp based syntax
- quri URI library
- CLSQL
- CL-DBI Database independent interface for Common Lisp
- postmodern: designed for PostgreSQL
- hu.dwim.rdbms: nicer API than CLSQL; but not as many backends yet
- hu.dwim.perec: the ORM of choice (if you're into ORMs at all...); based on hu.dwim.rdbms
- Character encoding/decoding: flexi-streams - focus on features
- Character encoding/decoding: babel - focus on speed
- Character categories, etc: cl-unicode
- Localization (number formats, etc): cl-l10n
APIs to websites
Game development
- xelf - Formerly known as blocky. "Xelf extends Common Lisp with an Emacs-inspired 2D OpenGL game engine, a game project editor interface, and an integrated command shell" - http://www.xelf.me
General purpose utility libraries and commonly used libraries
- alexandria — Collection of portable general purpose utilities. Used by a large number of other projects.
- serapeum — A supplement to Alexandria, also conservative but less so.
- iterate — A lispy and extensible replacement for the LOOP macro.
- closer-mop — A popular compatibility library allowing portable access to the MOP across implementations.
- Regular expressions: cl-ppcre — Popular and fast regular expressions engine.
- Pattern Matching: trivia — ML-style pattern matcher.
- Collections:
- lisp-interface-library is a collection of pure and stateful data structures in interface-passing style
- FSet is a functional set-theoretic collections package
- Mathematics:
- Compression:
- Salza2 is a Common Lisp library for creating compressed data in the ZLIB, DEFLATE, or GZIP data formats, described in RFC 1950, RFC 1951, and RFC 1952, respectively. It does not use any external libraries for compression. It does not yet support decompression.
- Chipz is a decompression library for decompressing DEFLATE (RFC 1951) data such as ZLIB (RFC 1950), GZIP (RFC 1952), as well as bzip2.
Common data formats
XML:- CXML namespace, validating, SAX, StAX, W3C DOM, XPath 1.0, XSLT 1.0
- S-XML simple XML parser
- XMLS simple XML parser
- cl-json : A CLOS-extensible JSON parser and generator.
- yason: Another extensible JSON parse and generator.
- CL-CSV : a library to parse and write csv (comma-separated-values) files.
The book Practical Common Lisp implements an id3v2 parser, the source code can be found at its website
System and low level management
- Threads: Bordeaux-Threads
- Files and directories: UIOP
- Sockets:
- usocket is under active development; includes trivial-sockets compatibility
- IOLib includes support for non-blocking IO (select, epoll, kqueue)
- OS Interface:
- Foreign language interface:
- CFFI. Supports almost all common lisp implementations on all platforms.
- SWIG can generate CFFI bindings from C/C++ header files
- Memory management: trivial-garbage includes support for finalization and weak hash tables
Project managements
Logging:
- Log4CL is high performance extensible logging library for Common Lisp
Graphics libraries
Graphical User Interface:- cl-gtk2
- gtk-cffi GTK3 interface, in active development
- CommonQt
- ltk
- CLIM
- CLOG - A GUI framework using browser as renderer
Graphical drawing library:
- vecto < cl-vectors < zpng : writing vector graphics on PNG format.
- cl-cairo2 : cairo binding for Common Lisp.
- clinch : 3d-graphics engine built on-top of OpenGL
- lispbuilder-sdl : Lispbuilder-SDL provides Common Lisp bindings for the SDL graphics library.
Audio
- mixalot. Mixalot currently consists of a mixer component providing straightforward audio output on Linux (via ALSA) and other platforms (using libao), a CFFI binding to the libmpg123 library, and a helper component allowing playback of MP3 files through the mixer.
Encryption
- Ironclad : A native Common Lisp package with support for several ciphers and hash functions
PRNG
- MT19937 : a portable Mersenne Twister pseudo-random number generator. Has its own *random-state* and supports seeding from any integer.
Parallel, concurrent and async programming
- lparallel : A Common Lisp library for parallel programming
- chanl : ChanL is a concurrency library built on top of bordeaux-threads that provides channels as thread-synchronisation primitives
- cl-async : cl-async implements a higher-level interface for non-blocking, asynchronous programming in Common Lisp