A small, zero-dependency Redis client for Clojure.
MIT License
Rād «ᚱ» is a small, zero-dependency Redis client for Clojure (JDK 21+).
[!CAUTION] Rad is alpha-quality software. While the API proper (the
rad.api
namespace) is unlikely to change, the logging implementation (rad.log
) very well might.
user=> (require '[rad.api :as rad])
nil
;; Connect to default Redis host ("localhost") and port (6379).
user=> (def redis (rad/client :decode rad/bytes->str))
#'user/redis
;; Send a command pipeline.
user=> @(redis [:ECHO "Hello"] [:ECHO "world!"])
["Hello", "world!"]
;; Close the connection.
user=> (redis)
nil
See documentation and API documentation.
If you want to know how Rad works, see also the architecture documentation.
See examples
.
MONITOR
commandIf you have ideas on how to improve Rad's performance (sequential performance in particular) or the performance of the RESP3 implementation (apart from writing it in Java), I'd be interested in hearing about them.
Other than that, I'm not accepting code contributions at this time. If you have improvement ideas, bug reports, or feature requests, file an issue.