Common Lisp/External libraries
Appearance
Common Lisp libraries exist for many purposes. Here we will showcase a small sampling of mature, useful, and free packages available, showing some of the functionality they provide.
System Utilities
[edit | edit source]- ASDF — Another System Definition Facility
- clbuild — A script to update/install the latest versions of all the most important Common Lisp packages
- Roswell - An implementation installer and script launcher
Language Extension
[edit | edit source]These libraries add new control structures to the Common Lisp language.
- Serapeum - Another general-purpose utility library.
- rutils - radical yet reasonable syntactic utilities for Common Lisp.
- Iterate — Easy and extensible iteration
- Extended Binding — Pattern matching, anaphoric control structures, and more
- Cells — A constraint based programming paradigm that operates in a way similar to spread sheets
- Screamer — Efficient, nondeterminism for Common Lisp
- FSet — Functional programming in Common Lisp
- generic-cl - Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…).
- cl21 An experimental project that brings more modern idioms into Common Lisp (unmaintained)
Data Structures
[edit | edit source]- CL-CONTAINERS — A library for abstracting data structures details
- FSet - A functional, set-theoretic collections data structure library.
- cl-data-structures - a portable collection of data structures and algorithms (mainly dicts and sequences, with some statistical functions).
- cl-competitive - Common Lisp algorithms collection for competitive programming.
Database
[edit | edit source]- cl-dbi - A database independant interface
- postmodern - A library for interacting with PostgreSQL databases
- Mito - An ORM, with migrations, relationships and DB schema versioning
- Crane - An ORM, based on the CL Objects System, with migrations
Parsing and Text processing
[edit | edit source]- CL-PPCRE — regular expressions library
- CXML — An XML parsing library
- CL-HTML-Parse — Parsing HTML
- CL-YACC — A parser generator
- CL-Walker — A Common Lisp parser for Common Lisp
Serialization and Persistent data
[edit | edit source]- Serialization — serialization of Common Lisp data (via cl-serialization and cl-store)
- ELEPHANT — A persistent object system
- CL-Perec — A persistent object system
GUI
[edit | edit source]- Ltk — Common Lisp interface to Tk (portable GUI library)
- McCLIM — A Common Lisp GUI builder
- IUP- CFFI bindings to the IUP Portable User Interface library. 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.
Graphics
[edit | edit source]- Vecto — A library for drawing and rastering vector graphic images
- CL-OpenGL — A set of GL, GLU, and GLUT bindings
Audio
[edit | edit source]- Open Music - a visual programming, computer-aided composition environment.
- CLM - 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 CLM's case anyway).
- Incudine - 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.
Web and Network
[edit | edit source]- Dexador — A full featured HTTP client (that aims at replacing Drakma)
- Portable Allegro Serve — A fairly light weight, multithreaded, HTTP server
- Hunchentoot — A Web application server written in Common Lisp
- Caveman - A fully featured web framework
- Plump - An html/xml parser, tolerant on malformed markup
- lquery - A jquery-like DOM/HTML manipulation library
- Djula - A port of Django templates
- Parenscript - A translator from Common Lisp to Javascript
- Wuwei - Examples on how to do Ajax in Lisp
Further reading
[edit | edit source]- http://cliki.net — The Common Lisp Wiki. Contains links to almost all existing free software Common Lisp libraries, and a few proprietary ones as well.
- http://common-lisp.net/ — Hosts a vast number of Common Lisp projects.
- https://github.com/CodyReichert/awesome-cl - A community-based list of "awesome" Common Lisp libraries
- http://eudoxia.me/article/common-lisp-sotu-2015 - An opinionated post on the state of the Common Lisp ecosystem, from 2015