< Common Lisp
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
Language Extension
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
Data Structures
- 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
- 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
Serialization and Persistent data
- Serialization — serialization of Common Lisp data (via cl-serialization and cl-store)
- ELEPHANT — A persistent object system
- CL-Perec — A persistent object system
GUI
- 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
- Vecto — A library for drawing and rastering vector graphic images
- CL-OpenGL — A set of GL, GLU, and GLUT bindings
Audio
- 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
- 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
- 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
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.