Skip to content
This repository

Asynchronous IO library for Common Lisp.

branch: master
README.md

cl-async - Asynchronous operations for Common Lisp

Cl-async is a library for general purpose, non-blocking programming in Common Lisp. Cl-async uses Libevent2 as the backend, which is a fast, stable, portable library for asynchronous IO (see my notes on choosing Libevent).

The main goal is to provide an experience that makes general asynchronous programming in lisp natural, and to also provide a number of drivers on top of cl-async.

This library's current status is BETA. You will generally have a better experience by using the git version of this library and the git version of the libevent2 bindings.

NOTE: In the latest Quicklisp release, CFFI was upped from 0.10.x to 0.11.0. This version generates a bunch of type/deprecation warnings with the Quicklisp version of cl-libevent2. If you get warnings about (:STRUCT LE::TIMEVAL) then grab the latest git version of cl-libevent2, which should fix these issues. You may also have to clear your ASDF cache after doing this.

Documentation

Please see the cl-async website for full documentation, examples, etc.

Quick links:

Quicklisp

This library is now fully in quicklisp, along with its sister bindings, cl-libevent2. If you want to keep up with the most recent changes (recommended, as many bugfixes happen on master), download from git, otherwise feel free to use the quicklisp release. Also, if using quicklisp, be familiar with the closed issues list. An issue you're having may have already been fixed =].

Tests

There is a fairly complete suite of tests in the cl-async-test package:

(ql:quickload :cl-async-test)
(cl-async-test:run-tests)

As bugs happen (or as I remember old bugs) I'll be adding more tests.

TODO

See the TODO list.

License

As always, my code is MIT licenced. Do whatever the hell you want with it. Enjoy!

Something went wrong with that request. Please try again.