284 lines
16 KiB
HTML
284 lines
16 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<title>CLiki: Current recommended libraries</title>
|
||
|
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
|
||
|
href="https://www.cliki.net/site/feed/article.atom?title=Current%20recommended%20libraries">
|
||
|
<link rel="stylesheet" href="static/css/style.css">
|
||
|
<link rel="stylesheet" href="static/css/colorize.css">
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<span class="hidden">CLiki - Current recommended libraries</span>
|
||
|
<div id="content"><div id="content-area"><div id="article-title">Current recommended libraries</div><div id="article">Cliki contributors (that's you!) believe that the libraries on this page are considered "good enough for government use", and serve as a starting point when looking for a <a href="library.html" class="internal">library</a> covering a given field.<p>If you feel that a certain library should be written then please add it to <a href="Suggested Programming Projects.html" class="internal">Suggested Programming Projects</a> or write it yourself.<p>A clean and up-to-date, yet rather subjective listing of recommended libraries can be found <a href="http://borretti.me/article/common-lisp-sotu-2015">here (2015)</a>, it saw an update <a href="https://lisp-journey.gitlab.io/blog/state-of-the-common-lisp-ecosystem-2020/">there (2020)</a>, and another list is maintained on Github on <a href="https://github.com/CodyReichert/awesome-cl">awesome-cl</a>. To search for libraries across Quicklisp, Cliki, GitHub and BitBucket, there exists the <a href="https://github.com/tkych/quicksearch">Quicksearch</a> library.<p><h2>Library management / installation / Handling Packages </h2><p><ul>
|
||
|
<li>
|
||
|
<a href="Quicklisp.html" class="internal">Quicklisp</a> - A popular way of obtaining lisp libraries</li>
|
||
|
<li>
|
||
|
<a href="asdf.html" class="internal">asdf</a> - System definition, aka Makefiles(in some implementation like <a href="sbcl.html" class="internal">sbcl</a>, this is
|
||
|
already installed by default)</li>
|
||
|
<li> <a href="Qlot.html" class="internal">Qlot</a> is a project-local library installer using Quicklisp facility. This aims to be like Bundler of Ruby or Carton of Perl.
|
||
|
</li>
|
||
|
<li> <a href="Roswell.html" class="internal">Roswell</a> is a Lisp implementation installer/manager, library installer, script launcher, and much more !
|
||
|
</li>
|
||
|
<li> <a href="CLPM.html" class="internal">CLPM</a> 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.
|
||
|
</li>
|
||
|
</ul><p><h2>Web development</h2>
|
||
|
See also <a href="https://quickdocs.org/-/search?q=web">Quickdocs</a>.<p>Frameworks and development tools:<p><ul>
|
||
|
<li> <a href="Caveman.html" class="internal">Caveman</a> - a lightweight, server independant, fully extensible web framework with database integration.
|
||
|
</li>
|
||
|
<li> <a href="CLOG.html" class="internal">CLOG</a> - A JS over WebSockets based framework</li>
|
||
|
<li>
|
||
|
<a href="CL-Weblocks.html" class="internal">CL-Weblocks</a> - a continuations based framework</li>
|
||
|
<li>
|
||
|
<a href="ningle.html" class="internal">ningle</a> - a very lightweight web application framework using Clack</li>
|
||
|
</ul>
|
||
|
HTTP server:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Clack.html" class="internal">Clack</a> - a wrapper API for HTTP requests/responses with multiple webserver backends. Inspired by Python's WSGI and Ruby's Rack</li>
|
||
|
<li>
|
||
|
<a href="Hunchentoot.html" class="internal">Hunchentoot</a> - the de-facto standard HTTP web server</li>
|
||
|
<li>
|
||
|
<a href="Woo.html" class="internal">Woo</a> - a fast libev-based async web server with worker thread support</li>
|
||
|
<li>
|
||
|
<a href="Wookie.html" class="internal">Wookie</a> - an async application/web server</li>
|
||
|
</ul>
|
||
|
HTTP client:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Dexador.html" class="internal">Dexador</a> - an HTTP/HTTPS client library with session
|
||
|
management and more, <a href="http://quickdocs.org/dexador/">aiming at replacing</a> <a href="Drakma.html" class="internal">Drakma</a>.</li>
|
||
|
</ul>
|
||
|
HTTP parser:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Plump.html" class="internal">Plump</a> - a markup parser, tolerant on malformed html. It can be queried with <a href="Lquery.html" class="internal">Lquery</a> or <a href="Clss.html" class="internal">Clss</a>.
|
||
|
</li>
|
||
|
</ul>
|
||
|
Utilities:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="CL-WHO.html" class="internal">CL-WHO</a> HTML generator</li>
|
||
|
<li>
|
||
|
<a href="Parenscript.html" class="internal">Parenscript</a> JavaScript compiler</li>
|
||
|
<li>
|
||
|
<a href="css-lite.html" class="internal">css-lite</a> is a library for generating CSS from an s-exp based syntax</li>
|
||
|
<li>
|
||
|
<a href="quri.html" class="internal">quri</a> URI library</li>
|
||
|
</ul>
|
||
|
SQL database connectivity:
|
||
|
<ul>
|
||
|
<li><a href="CLSQL.html" class="internal">CLSQL</a></li>
|
||
|
<li>
|
||
|
<a href="CL-DBI.html" class="internal">CL-DBI</a> Database independent interface for Common Lisp</li>
|
||
|
<li>
|
||
|
<a href="postmodern.html" class="internal">postmodern</a>: designed for PostgreSQL</li>
|
||
|
<li>
|
||
|
<a href="cl-rdbms.html" class="internal">hu.dwim.rdbms</a>: nicer API than CLSQL; but not as many backends yet</li>
|
||
|
<li>
|
||
|
<a href="cl-perec.html" class="internal">hu.dwim.perec</a>: the ORM of choice (if you're into ORMs at all...); based on <a href="cl-rdbms.html" class="internal">hu.dwim.rdbms</a>
|
||
|
</li>
|
||
|
</ul>
|
||
|
Internationalization (i18) and localization (l10n):
|
||
|
<ul>
|
||
|
<li>Character encoding/decoding: <a href="flexi-streams.html" class="internal">flexi-streams</a> - focus on features</li>
|
||
|
<li>Character encoding/decoding: <a href="babel.html" class="internal">babel</a> - focus on speed</li>
|
||
|
<li>Character categories, etc: <a href="cl-unicode.html" class="internal">cl-unicode</a>
|
||
|
</li>
|
||
|
<li>Localization (number formats, etc): <a href="cl-l10n.html" class="internal">cl-l10n</a>
|
||
|
</li>
|
||
|
</ul><p><h2>APIs to websites</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Chirp.html" class="internal">Chirp</a> A full Twitter API library</li>
|
||
|
<li>
|
||
|
<a href="Humbler.html" class="internal">Humbler</a> Easy Tumblr interaction</li>
|
||
|
</ul><p><h2>Game development</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="xelf.html" class="internal">xelf</a> - Formerly known as <a href="blocky.html" class="internal">blocky</a>. "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 </li>
|
||
|
</ul><p><h2>General purpose utility libraries and commonly used libraries</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="alexandria.html" class="internal">alexandria</a> — Collection of portable general purpose utilities. Used by a large number of other projects.</li>
|
||
|
<li>
|
||
|
<a href="serapeum.html" class="internal">serapeum</a> — A supplement to Alexandria, also conservative but less so.</li>
|
||
|
<li>
|
||
|
<a href="iterate.html" class="internal">iterate</a> — A lispy and extensible replacement for the LOOP macro.</li>
|
||
|
<li>
|
||
|
<a href="closer-mop.html" class="internal">closer-mop</a> — A popular compatibility library allowing portable access to the MOP across implementations.</li>
|
||
|
<li>Regular expressions: <a href="cl-ppcre.html" class="internal">cl-ppcre</a> — Popular and fast regular expressions engine.</li>
|
||
|
<li>Pattern Matching: <a href="trivia.html" class="internal">trivia</a> — ML-style pattern matcher.</li>
|
||
|
<li>Collections:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="lisp-interface-library.html" class="internal">lisp-interface-library</a> is a collection of pure and stateful data structures in interface-passing style</li>
|
||
|
<li>
|
||
|
<a href="FSet.html" class="internal">FSet</a> is a functional set-theoretic collections package</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>Mathematics:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="GSLL.html" class="internal">GSLL</a> is an interface to the GNU Scientific Library</li>
|
||
|
<li>
|
||
|
<a href="Maxima.html" class="internal">Maxima</a> is a computer algebra system</li>
|
||
|
<li>
|
||
|
<a href="RCL.html" class="internal">RCL</a> is a interface to R</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>Compression:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Salza2.html" class="internal">Salza2</a> 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. </li>
|
||
|
<li>
|
||
|
<a href="Chipz.html" class="internal">Chipz</a> is a decompression library for decompressing DEFLATE (RFC 1951) data such as ZLIB (RFC 1950), GZIP (RFC 1952), as well as bzip2.
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul><p><h2> Common data formats</h2>
|
||
|
<a href="XML.html" class="internal">XML</a>:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="CXML.html" class="internal">CXML</a> namespace, validating, SAX, StAX, W3C DOM, XPath 1.0, XSLT 1.0</li>
|
||
|
<li>
|
||
|
<a href="S-XML.html" class="internal">S-XML</a> simple XML parser</li>
|
||
|
<li>
|
||
|
<a href="XMLS.html" class="internal">XMLS</a> simple XML parser</li>
|
||
|
</ul>
|
||
|
<a href="JSON.html" class="internal">JSON</a> (see
|
||
|
<a href="Difference between JSON libraries.html" class="internal">Difference between JSON libraries</a>):
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="cl-json.html" class="internal">cl-json</a> : A CLOS-extensible JSON parser and generator.</li>
|
||
|
<li>
|
||
|
<a href="yason.html" class="internal">yason</a>: Another extensible JSON parse and generator.</li>
|
||
|
</ul>
|
||
|
<a href="CSV.html" class="internal">CSV</a>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="CL-CSV.html" class="internal">CL-CSV</a> : a library to parse and write csv (comma-separated-values) files. </li>
|
||
|
</ul>
|
||
|
<a href="id3v2.html" class="internal">id3v2</a><p> The book Practical Common Lisp implements an id3v2 parser, the source code can be found at <a href="http://www.gigamonkeys.com/book/">its website</a> <p><h2>System and low level management</h2><p><ul>
|
||
|
<li>Threads: <a href="Bordeaux-Threads.html" class="internal">Bordeaux-Threads</a>
|
||
|
</li>
|
||
|
<li>Files and directories: <a href="UIOP.html" class="internal">UIOP</a>
|
||
|
</li>
|
||
|
<li>Sockets:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="usocket.html" class="internal">usocket</a> is under active development; includes <a href="trivial-sockets.html" class="internal">trivial-sockets</a> compatibility</li>
|
||
|
<li>
|
||
|
<a href="IOLib.html" class="internal">IOLib</a> includes support for non-blocking IO (select, epoll, kqueue)</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>OS Interface:
|
||
|
<ul>
|
||
|
<li><a href="UIOP.html" class="internal">UIOP</a></li>
|
||
|
<li>
|
||
|
<a href="OSICAT.html" class="internal">OSICAT</a> or <a href="IOlib.html" class="internal">IOlib</a>
|
||
|
</li>
|
||
|
<li><a href="inferior-shell.html" class="internal">inferior-shell</a></li>
|
||
|
<li><a href="SHUT-IT-DOWN.html" class="internal">SHUT-IT-DOWN</a></li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>Foreign language interface:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="CFFI.html" class="internal">CFFI</a>. Supports almost all <a href="common lisp implementation.html" class="internal">common lisp implementation</a>s on all platforms.</li>
|
||
|
<li>
|
||
|
<a href="SWIG.html" class="internal">SWIG</a> can generate <a href="CFFI.html" class="internal">CFFI</a> bindings from C/C++ header files</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li>Memory management: <a href="trivial-garbage.html" class="internal">trivial-garbage</a> includes support for finalization and weak hash tables</li>
|
||
|
</ul><p><h2>Project managements</h2><p>Logging:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Log4CL.html" class="internal">Log4CL</a> is high performance extensible logging library for Common Lisp
|
||
|
</li>
|
||
|
</ul>
|
||
|
Unit Testing:
|
||
|
<ul>
|
||
|
<li><a href="FiveAM.html" class="internal">FiveAM</a></li>
|
||
|
<li><a href="rove.html" class="internal">rove</a></li>
|
||
|
</ul><p><h2>Graphics libraries</h2>
|
||
|
Graphical User Interface:
|
||
|
<ul>
|
||
|
<li><a href="cl-gtk2.html" class="internal">cl-gtk2</a></li>
|
||
|
<li>
|
||
|
<a href="gtk-cffi.html" class="internal">gtk-cffi</a> GTK3 interface, in active development</li>
|
||
|
<li><a href="CommonQt.html" class="internal">CommonQt</a></li>
|
||
|
<li><a href="ltk.html" class="internal">ltk</a></li>
|
||
|
<li> <a href="CLIM.html" class="internal">CLIM</a> </li>
|
||
|
<li> <a href="CLOG.html" class="internal">CLOG</a> - A GUI framework using browser as renderer</li>
|
||
|
</ul><p>Graphical drawing library:
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="vecto.html" class="internal">vecto</a> < <a href="cl-vectors.html" class="internal">cl-vectors</a> < <a href="zpng.html" class="internal">zpng</a> : writing vector graphics on <a href="PNG.html" class="internal">PNG</a> format.
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-cairo2.html" class="internal">cl-cairo2</a> : cairo binding for Common Lisp.</li>
|
||
|
<li>
|
||
|
<a href="clinch.html" class="internal">clinch</a> : 3d-graphics engine built on-top of OpenGL</li>
|
||
|
<li>
|
||
|
<a href="lispbuilder-sdl.html" class="internal">lispbuilder-sdl</a> : Lispbuilder-SDL provides Common Lisp bindings for the <a href="SDL.html" class="category">SDL</a> <a href="graphics library.html" class="internal">graphics library</a>.
|
||
|
</li>
|
||
|
</ul><p><h2>Audio</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="mixalot.html" class="internal">mixalot</a>. 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.</li>
|
||
|
</ul><p><p><h2>Encryption</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="Ironclad.html" class="internal">Ironclad</a> : A native Common Lisp package with support for several ciphers and hash functions</li>
|
||
|
</ul><p><h2>PRNG</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="MT19937.html" class="internal">MT19937</a> : a portable Mersenne Twister pseudo-random number generator. Has its own *random-state* and supports seeding from any integer.</li>
|
||
|
</ul><p><h2>Parallel, concurrent and async programming</h2>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<a href="lparallel.html" class="internal">lparallel</a> : A Common Lisp library for parallel programming</li>
|
||
|
<li>
|
||
|
<a href="chanl.html" class="internal">chanl</a> : ChanL is a concurrency library built on top of bordeaux-threads that provides channels as thread-synchronisation primitives </li>
|
||
|
<li>
|
||
|
<a href="cl-async.html" class="internal">cl-async</a> : cl-async implements a higher-level interface for non-blocking, asynchronous programming in Common Lisp </li>
|
||
|
</ul></div></div>
|
||
|
<div id="footer" class="buttonbar"><ul><li><a href="Current recommended libraries.html">Current version</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/history?article=Current%20recommended%20libraries">History</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/backlinks?article=Current%20recommended%20libraries">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=Current%20recommended%20libraries&from-revision=3865075628">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
|
||
|
</div>
|
||
|
<div id="header-buttons" class="buttonbar">
|
||
|
<ul>
|
||
|
<li><a href="https://www.cliki.net/">Home</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
|
||
|
<li><a href="CLiki.html">About</a></li>
|
||
|
<li><a href="Text Formatting.html">Text Formatting</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
|
||
|
</ul>
|
||
|
<div id="search">
|
||
|
<form action="https://www.cliki.net/site/search">
|
||
|
<label for="search_query" class="hidden">Search CLiki</label>
|
||
|
<input type="text" name="query" id="search_query" value="" />
|
||
|
<input type="submit" value="search" />
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="pageheader">
|
||
|
<div id="header">
|
||
|
<span id="logo">CLiki</span>
|
||
|
<span id="slogan">the common lisp wiki</span>
|
||
|
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
|
||
|
<label for="login_name" class="hidden">Account name</label>
|
||
|
<input type="text" name="name" id="login_name" class="login_input" />
|
||
|
<label for= "login_password" class="hidden">Password</label>
|
||
|
<input type="password" name="password" id="login_password" class="login_input" />
|
||
|
<input type="submit" name="login" value="login" id="login_submit" /><br />
|
||
|
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
|
||
|
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body></html>
|