sente
GitHub | Stars | Last commit | Project created | Closed vsOpen issues |
---|---|---|---|---|
1702 | 3 weeks ago | 9 years ago | 299 / 11 |
@ptaoussanis at www.taoensso.com">
Sente
Realtime web comms for Clojure/Script
Sente is a small client+server library that makes it easy to build realtime web applications with Clojure + ClojureScript.
Loosely inspired by Socket.IO, it uses core.async, WebSockets, and Ajax under the hood to provide a simple high-level API that enables reliable, high-performance, bidirectional communications.
Sen-te (先手) is a Japanese Go term used to describe a play with such an overwhelming follow-up that it demands an immediate response, leaving its player with the initiative.
Latest releases
- 2023-05-30:
1.18.0-RC1
(dev): release notes | Clojars - 2022-06-13:
1.17.0
(stable): release notes | Clojars
Resources
- Wiki - community docs (👈 start here)
- Release info - releases and changes
- API docs - auto-generated API docs
- GitHub issues - for support requests, contributions, etc.
Features
- Bidirectional a/sync comms over WebSockets with auto Ajax fallback
- It just works: auto keep-alives, buffering, protocol selection, reconnects
- Efficient design with transparent event batching for low-bandwidth use, even over Ajax
- Send arbitrary Clojure vals over [edn](https://github.com/edn-format/edn ) or Transit (JSON, MessagePack, etc.)
- Tiny API (see the wiki for details)
- Automatic, sensible support for users connected with multiple clients and/or devices simultaneously
- Realtime info on which users are connected over which protocols
- Standard Ring security model: auth as you like, HTTPS when available, CSRF support, etc.
- Support for several popular web servers, easily extended to other servers.
Funding this work
Please see here if you'd like to help support my continued open-source work (thank you!! 🙏) - Peter
License
Copyright © 2014-2023 Peter Taoussanis, licensed under EPL 1.0 (same as Clojure).