A Common Lisp library for general-purpose asynchronous programming using libuv as its backend.
cl-async is an asynchronous IO library for Common Lisp that enables non-blocking, event-driven programming. It uses libuv as its backend to provide high-performance network and system operations, similar to Node.js but within the Lisp ecosystem. The library solves the problem of writing efficient, scalable servers and clients without blocking the main thread.
Common Lisp developers building network servers, clients, or any application requiring high-performance asynchronous operations, such as web servers, real-time systems, or network utilities.
Developers choose cl-async because it brings the battle-tested libuv backend to Common Lisp, offering a stable and portable foundation for asynchronous programming. Its idiomatic Lisp API and comprehensive feature set make it a natural choice for those wanting Node.js-like concurrency in Lisp.
Asynchronous IO library for Common Lisp.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses the same stable, high-performance library as Node.js for asynchronous I/O, ensuring reliability and portability across systems, as highlighted in the README.
Offers built-in support for TCP, SSL, DNS, timers, and signal handling, providing a solid foundation for diverse network applications, documented in the drivers section.
Aims to make asynchronous programming feel natural in Lisp with event callbacks and futures, aligning with Common Lisp paradigms, per the project philosophy.
Includes utilities for combining asynchronous operations with multi-threaded code, enhancing concurrency flexibility, as mentioned in the threading documentation.
Tied to libuv v1.x, which may cause compatibility issues with newer systems or require manual version management, as warned in the README notes.
Requires libuv installation and, until v0.6.x is in Quicklisp, manual cloning into local projects, adding complexity to initial setup.
Focuses on low-level async operations, lacking built-in abstractions like HTTP servers, forcing developers to rely on additional libraries for common tasks.