Common Lisp/External libraries

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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]

  1. ASDF — Another System Definition Facility
  2. clbuild — A script to update/install the latest versions of all the most important Common Lisp packages
  3. Roswell - An implementation installer and script launcher

Language Extension[edit]

These libraries add new control structures to the Common Lisp language.

  1. Serapeum - Another general-purpose utility library.
  2. rutils - radical yet reasonable syntactic utilities for Common Lisp.
  3. Iterate — Easy and extensible iteration
  4. Extended Binding — Pattern matching, anaphoric control structures, and more
  5. Cells — A constraint based programming paradigm that operates in a way similar to spread sheets
  6. Screamer — Efficient, nondeterminism for Common Lisp
  7. FSet — Functional programming in Common Lisp
  8. generic-cl - Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…).
  9. cl21 An experimental project that brings more modern idioms into Common Lisp

Data Structures[edit]

  1. CL-CONTAINERS — A library for abstracting data structures details
  2. FSet - A functional, set-theoretic collections data structure library.
  3. cl-data-structures - a portable collection of data structures and algorithms (mainly dicts and sequences, with some statistical functions).
  4. cl-competitive - Common Lisp algorithms collection for competitive programming.

Database[edit]

  1. cl-dbi - A database independant interface
  2. postmodern - A library for interacting with PostgreSQL databases
  3. Mito - An ORM, with migrations, relationships and DB schema versioning
  4. Crane - An ORM, based on the CL Objects System, with migrations

Parsing and Text processing[edit]

  1. CL-PPCRE — regular expressions library
  2. CXML — An XML parsing library
  3. CL-HTML-Parse — Parsing HTML
  4. CL-YACC — A parser generator
  5. CL-Walker — A Common Lisp parser for Common Lisp

Serialization and Persistent data[edit]

  1. Serialization — serialization of Common Lisp data (via cl-serialization and cl-store)
  2. ELEPHANT — A persistent object system
  3. CL-Perec — A persistent object system

GUI[edit]

  1. Ltk — Common Lisp interface to Tk (portable GUI library)
  2. McCLIM — A Common Lisp GUI builder
  3. 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]

  1. Vecto — A library for drawing and rastering vector graphic images
  2. CL-OpenGL — A set of GL, GLU, and GLUT bindings

Audio[edit]

  1. Open Music - a visual programming, computer-aided composition environment.
  2. 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).
  3. 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]

  1. Dexador — A full featured HTTP client (that aims at replacing Drakma)
  2. Portable Allegro Serve — A fairly light weight, multithreaded, HTTP server
  3. Hunchentoot — A Web application server written in Common Lisp
  4. Caveman - A fully featured web framework
  5. Plump - An html/xml parser, tolerant on malformed markup
  6. lquery - A jquery-like DOM/HTML manipulation library
  7. Djula - A port of Django templates
  8. Parenscript - A translator from Common Lisp to Javascript
  9. Wuwei - Examples on how to do Ajax in Lisp

Further reading[edit]

  1. http://eudoxia.me/article/common-lisp-sotu-2015 - An opinionated post on the state of the Common Lisp ecosystem, from 2015