A small client+server library for building realtime web applications with Clojure and ClojureScript.
Sente is a realtime web communications library for Clojure and ClojureScript that facilitates bidirectional, asynchronous communication between clients and servers. It provides a simple high-level API over WebSockets and Ajax, handling protocol selection, reconnects, and keep-alive automatically, making it easier to build reliable realtime web applications.
Clojure and ClojureScript developers building realtime web applications that require bidirectional communication, such as chat apps, live dashboards, or collaborative tools.
Developers choose Sente for its simplicity, reliability, and performance, offering a unified API that abstracts the complexities of WebSockets and Ajax while supporting efficient serialization and seamless integration with Ring security models.
Realtime web comms library for Clojure/Script
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both WebSockets and Ajax with automatic fallback, ensuring reliable communication even in unstable network conditions, as highlighted in the README's protocol agnosticism.
Uses high-speed binary serialization to send arbitrary Clojure values, minimizing bandwidth usage and improving performance, especially noted in v1.21+ for low-bandwidth scenarios.
Seamlessly works with Ring's security models, including authentication, HTTPS, and CSRF protection, making it easy to secure realtime endpoints without extra configuration.
Handles keep-alive, buffering, and reconnects automatically, reducing boilerplate code for developers, as emphasized in the 'It just works' philosophy.
Limited to Clojure and ClojureScript ecosystems, making it unsuitable for polyglot projects or teams using other languages, which restricts its broader adoption.
Relies on Clojure's core.async for asynchronous operations, which can be challenging for developers new to this model, adding complexity beyond basic realtime setup.
Lacks higher-level features like native room management or event namespacing found in libraries like Socket.IO, requiring more custom code for complex realtime scenarios.
Sente is an open-source alternative to the following products: