Awesome Lists

curated-awesome-cl

by vindarel

awesome listpushed about 4 years ago

A curated and non exhaustive list of Common Lisp libraries and resources.

AI summary

Lisp toolkit

A curated list of Common Lisp libraries and resources, focusing on beginner-friendly tools.

stars
35
forks
2
watching
6
awesome list
1
entries
185
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/vindarel/curated-awesome-cl/links.svg)](https://awesome.facts.dev/awesome/vindarel/curated-awesome-cl)
HTML
<a href="https://awesome.facts.dev/awesome/vindarel/curated-awesome-cl"><img src="https://awesome.facts.dev/shield/vindarel/curated-awesome-cl/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/vindarel/curated-awesome-cl/links.svg

What's in the list

185 links in 59 sections, with live GitHub stats.activeno commit in 2y

Community

Text Editor Resources / Emacs

  • Portacle

    A portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git

  • SLIME

    Superior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain

Text Editor Resources / Vim

  • SLIMV

    Superior Lisp Interaction Mode for Vim; a full-blown environment for Common Lisp inside of Vim. No license specified

Text Editor Resources / Atom

  • SLIMA

    allows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE.

Text Editor Resources / VSCode

  • alive

    Common Lisp Extension for VSCode. Public domain

Text Editor Resources / VSCode / alive

Text Editor Resources / Notebooks

  • cl-jupyter

    A Common Lisp kernel for Jupyter notebooks

Text Editor Resources / REPLs

  • cl-repl

    an ipython-like REPL. With completion, shell commands, magic commands, debugger, etc. . With

  • sbcli

    a simple readline REPL that doesn't get in your way. It doesn't have a debugger, it just prints the error. With optional syntax highlighting and useful shortcuts

Implementations

  • SBCL

    A fork of CMUCL; compiles to machine code. . Public domain, with some parts under and

  • Clozure Common Lisp

    , for its fast compilation time, and to use on 32bits Raspberry Pi

Build Systems

  • ASDF

    it's the de-facto build system shipped with the implementations

Library Manager

  • Quicklisp

    library manager

  • Ultralisp

    A quicklisp distribution that builds every five minutes (instead of one month for Quicklisp), and requires 3 clicks to add your project to it (instead of opening an issue and waiting for Quicklisp)

  • Roswell

    A Lisp implementation installer, script launcher and more

  • qlot

    A project-local library installer, similar to Bundler or Carton

Tools

  • cl-cookieproject

    my project skeleton, more complete than the others

  • quicksearch

    Look up online libraries from the REPL.

HTTP clients

Web frameworks

  • https://common-lisp-libraries.readthedocs.io/hunchentoot/

    Hunchentoot documentation on a "read the docs" style:

  • easy-routes

    👍 - a routes handling system on top of Hunchentoot. It supports dispatch based on HTTP method, arguments extraction from the url path, decorators, url generation from route name, etc

  • Caveman

    A powerful web framework

  • Wookie

    Asynchronous HTTP server.

  • Snooze

    A RESTful web framework, built on Clack, where routes are just functions and HTTP conditions are just Lisp conditions.

  • radiance

    An extensible framework library and multi-application CMS

  • 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.

  • Weblocks

    A widgets-based framework with a built-in ajax update mechanism that "solves the JavaScript problem".

HTTP Servers

  • Hunchentoot

    the CL web server

  • Clack

    A web application environment inspired by Rack and WSGI

  • wookie

    Asynchronous HTTP server.

  • woo

    A fast non-blocking HTTP server on top of libev.

  • clack-errors

    Error page middleware for Clack.

  • hermetic

    Security for Clack-based web applications.

Parsing html

  • Plump

    A lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and

Querying HTML/DOM

  • lquery

    A jQuery-like HTML/DOM manipulation library.

HTML generators and templates

  • Djula

    A port of Django's template engine to Common Lisp

  • Ten

    by Djula's maintainer, a more flexible framework, where we can write lisp expressions in templates

  • spinneret

    Common Lisp HTML5 generator

  • cl-markup

    Modern markup generation library.

URI handling

  • quri

    Another URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,…

  • cl-slug

    a small library to make slugs, mainly for URIs, transform in CamelCase, remove accentuation and punctuation, for english and beyound

Javascript

  • Parenscript

    A translator from Common Lisp to Javascript.

  • parse-js

    A package for parsing ECMAScript 3.

  • JSCL

    A CL-to-JS compiler designed to be self-hosting from day one. Lacks CLOS, format and loop

  • sigil

    A Parenscript to Javascript command line compiler and REPL.

Third-party APIs

  • Aws-sign4

    Common Lisp library for Amazon Web Services signing version 4.

  • 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.

  • avatar-api

    Get avatars from Google+, Gravatar and others.

  • chirp

    A Twitter client library.

  • cl-irc

    An IRC client library.

  • cl-openid

    An implementation of OpenID.

  • cl-pushover

    Common Lisp bindings to Pushover.

  • cl-ses

    Library for AWS SES.

  • humbler

    A Tumblr API interface.

XML

  • CXML

    XML parser, with a range of extension libraries.

  • Plump

    A lenient HTTP/XML parser, tolerand on malformed markup. . Best used with and

  • s-xml

    A basic parser.

  • xmls

    A small, simple, non-validating XML parser.

JSON

  • jonathan

    A JSON encoder and decoder.

CSV

  • cl-csv

    A library for parsing CSV files

Database and ORMs

  • mito

    An ORM for Common Lisp with migrations, schema versioning, relationships, PostgreSQL support

  • postmodern

    A library for interacting with PostgreSQL

Interaction with other languages / Python

  • py4cl

    A library that allows Common Lisp code to access Python libraries. It is basically the inverse of cl4py.

  • cl4py

    The library cl4py (pronounce as clappy) allows Python programs to call Common Lisp libraries.

Graphics

  • cl-cairo2

    Cairo bindings

  • cl-gd

    A library providing an interface to the GD graphics library.

  • cl-opengl

    CFFI bindings to OpenGL, GLU and GLUT APIs.

  • cl-sdl2

    Bindings for SDL2 using C2FFI.

  • cl-svg

    A basic library for producing SVG files.

  • FreeBSD

    [CLinch][63] - Common Lisp 2D/3D graphics engine for OpenGL.

  • donuts

    Graph drawing DSL for Common Lisp.

  • lispbuilder-sdl

    A set of bindings for SDL.

  • Vecto

    Simple vector drawing library.

  • zpng

    A library for creating PNG files.

GUI

  • ltk

    A binding for the Tk toolkit. or

  • nodgui

    Bindings for the Tk toolkit, based on Ltk, with syntax sugar and additional widgets

  • IUP

    CFFI bindings to the Portable User Interface library (pre-ALPHA). 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

  • Qtools

    A Qt4 toolkit, based on CommonQt

  • ceramic

    Desktop web apps with Common Lisp.

GUI / ceramic

GUI

  • LispWork's CAPI

    A portable GUI toolkit, with mobile runtime. Proprietary, but comes with a free version

Numerical and Scientific

  • cl-spark

    Generates sparkline strings for lists of numbers.

  • GSLL

    GNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp.

  • lisp-stat

    an environment for statistical computing, conceptually similar to R, that is also suitable for front-line production deployments. "It grew out of a desire to have an environment for rapidly prototyping analytical and A.I. solutions, and move directly to production environments with minimal friction."

Numerical and Scientific / lisp-stat

Numerical and Scientific

  • common-lisp-stat

    Common Lisp statistics library.

  • lisp-matrix

    A matrix package.

  • maxima

    Computer algebra system. Not available on Quicklisp.

Parallelism and Concurrency

  • BordeauxThreads

    Portable, shared-state concurrency.

  • lparallel

    A library for parallel programming.

  • lfarm

    distributing work across machines (on top of lparallel and usocket)

  • cl-async

    A library for general-purpose, non-blocking programming, built on (the library that powers Nodejs).

  • chanl

    Portable, channel-based concurrency. , with parts under

  • Moira

    Monitor and restart background threads. In-lisp process supervisor.

  • trivial-monitored-thread

    - a Common Lisp library offering a way of spawning threads and being informed when one any of them crash and die.

  • cl-gearman

    a library for the distributed job system.

  • swank-crew

    distributed computation framework implemented using Swank Client.

  • cl-coroutine

    a coroutine library. It uses the CL-CONT continuations library in its implementation.

  • STMX

    High performance Transactional Memory for Common Lisp.

Parallelism and Concurrency / Actors pattern

  • cl-gserver

    an Erlang inspired GenServer. It is meant to encapsulate state, but also to execute async operations. Also with actors. Functionality regarding state is not unsimilar to Clojure's Agent or cl-actors.

Parallelism and Concurrency / Event processing

  • simple-tasks

    A very simple task scheduling framework.

  • deeds

    Deeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system.

  • cl-flow

    Data-flowish computation tree library for non-blocking concurrent Common Lisp.

  • event-glue

    simple eventing abstraction. No dependencies. It can be used anywhere you need a generic event handling system.

Parallelism and Concurrency / Job processing

  • SBCL's timers

    , system-wide event schedulers

  • cl-cron

    A simple tool that provides cron like facilities

  • clerk

    a cron-like scheduler with sane DSL.

Regex

  • cl-ppcre

    Portable, Perl-compatible regular expressions.

  • one-more-re-nightmare

    a fast-ish regular expression compiler in Common Lisp.

Unit Testing

  • FiveAM

    Simple regression testing framework

  • 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.

  • Check-it

    A QuickCheck-style randomized property-based testing.

  • cl-coveralls

    a helper library to post test coverage to Coveralls. See and .

Continuous Integration

Utilities / Language extensions

  • alexandria

    A general-purpose utility library

  • serapeum

    Another general-purpose utility library

  • rutils

    radical yet reasonable syntactic utilities for Common Lisp

  • trivia

    Optimized pattern-matching library.

  • generic-cl

    Generic function interface to standard Common Lisp functions (equality, comparison, arithmetic, objects, iterator, sequences,…). . See also the more lightweight .

  • FSet

    A functional, set-theoretic collections data structure library.

  • trivial-types

    Trivial type definitions.

  • cl-algebraic-data-type

    A library for defining algebraic data types in a similar spirit to Haskell or ML.

Utilities / Changing the syntax

  • pythonic-string-reader

    A simple and unobtrusive read table modification inspired by Python's three quote strings.

  • cl-reader

    A utility library intended at providing reader macros for lambdas, mapping, accessors, hash-tables and hash-sets.

Utilities / Iteration

  • iterate

    An iteration construct for Common Lisp which is extensible and Lispier.

Utilities / Iteration / iterate

Utilities / Iteration

  • 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

  • trivial-do

    Additional dolist style macros for Common Lisp.

  • doplus

    – another extensible iteration library, similar to :for

  • picl

    An (almost) complete port of Python's itertools package, complete with laziness where applicable, and not relying on cl-cont.

  • gtwiwtg

    A lazy sequences library. Similar to 'series' but not as complete. However it has a 'modern' API with stuff like , , , , etc. that is easy to use

Utilities / Lambda shorthands

  • fn

    a couple of lambda shorthand macros. . Public domain

  • f-underscore

    a tiny library of functional programming utils. . Public domain

  • cl-punch

    Scala-like anonymous lambda literals. .

Utilities / I/O

  • iolib

    I/O library.

  • fast-io

    Fast octet-vector/stream I/O.

  • trivial-utf8

    A small library for doing UTF-8-based I/O. Not available on Quicklisp. No license specified

Utilities / Data validation

  • ratify

    A collection of utilities to ratify, validate and parse inputs.

  • clavier

    General purpose validation library for Common Lisp.

  • json-schema

    A library for validating data against schemas of drafts 4, 6, 7, and 2019-09 of the standard.

  • sanity-clause

    a data serialization/contract library for Common Lisp. Schemas can be property lists or class-based, allowing to check slots' types during .

Utilities / Date and time

  • localtime

    A development library for manipulating date and time information in a semi-standard manner.

  • 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.

  • chronicity

    A natural language date and time parse, to parse strings like "3 days from now".

  • local-time-duration

    - Duration processing library built on top of local-time.

  • iso-8601-date

    Miscellaneous date routines in Common Lisp, based around the ISO 8601 string representation.

  • calendar-date

    a Gregorian calendar date library.

  • periods

    manipulating date/time objects at a higher level. With series-compatible data structure.

Utilities / Logging

  • log4cl

    Logging framework modelled after Log4J

Crypto

  • Ironclad

    A library of crypto functions for Common Lisp. Not considered secure, but is still useful for the message digest functions.

  • crypto-shortcuts

    Collection of common crypto shortcuts.

Learning and Tutorials

Learning and Tutorials / Beginner

Learning and Tutorials / Intermediate

Learning and Tutorials / Advanced

  • Let Over Lambda

    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)

Learning and Tutorials / 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

  • Common Lisp the Langauge

    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)

  • Quickdocs

    A reference for the libraries provided by Quicklisp

Learning and Tutorials / Beginner

  • Land of Lisp

    A fun, game-oriented introduction to Common Lisp

  • Practical Common Lisp

    A good introductory text to Common Lisp, with practical examples

  • Common Lisp Koans

    The project guides the learner progressively through many Common Lisp language features

Learning and Tutorials / Intermediate

  • ANSI Common Lisp

    A thorough, practical covering of the entire language, with exercises. Not recommended as a starter text, due to

Learning and Tutorials / Advanced

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.