A WebSocket server and client implementation for Common Lisp, designed to integrate with Clack and various web servers.
Websocket Driver is a Common Lisp library that provides a complete implementation of the WebSocket protocol (version 13/hybi-13), enabling real-time, bidirectional communication between clients and servers. It serves as a foundational component for building WebSocket-enabled applications within the Common Lisp ecosystem, offering both server and client functionality. The library is designed to integrate seamlessly with Clack, the Common Lisp web application environment abstraction layer, and supports multiple backend servers like Hunchentoot, Wookie, and Woo.
Common Lisp developers building real-time web applications, such as chat systems, live dashboards, or collaborative tools, who need reliable WebSocket support. It is particularly suited for those already using or planning to use the Clack web application interface and its compatible servers (Hunchentoot, Wookie, Woo).
Developers choose Websocket Driver for its protocol correctness, seamless integration with the Common Lisp web stack via Clack, and support for both server and client roles. Its event-driven API with handlers for open, message, error, and close events provides a pragmatic and reliable foundation, distinguishing it from alternatives by focusing on compatibility with existing Common Lisp infrastructure.
WebSocket server/client implementation 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.
Implements WebSocket version 13 (hybi-13) with proper handshake handling and support for custom subprotocols, ensuring reliable real-time communication as documented in the README.
Seamlessly works with Clack, allowing easy deployment on multiple backend servers like Hunchentoot, Wookie, and Woo, as shown in the server-side usage example.
Provides both server and client implementations, enabling comprehensive real-time applications in Common Lisp without needing separate libraries.
Uses an event emitter pattern with handlers for open, message, error, and close events, making it intuitive for asynchronous programming and error handling.
Tied exclusively to Common Lisp and the Clack ecosystem, limiting its utility in mixed-technology stacks and reducing community support compared to cross-language WebSocket libraries.
Focuses on low-level protocol implementation without built-in abstractions for common real-time patterns like broadcasting or connection pooling, requiring additional custom code.
The README covers core APIs but lacks examples for advanced scenarios such as error recovery, load balancing, or integration with non-Clack servers, which may increase trial-and-error time.