orewa

Async-friendly Redis client
README

俺は - an Async friendly Redis binding in pure OCaml.

Installation

It is availaible on OPAM, just

opam install orewa

and off you go! No need to install any native libraries or other dependencies.

Usage

To connect to a Redis server use Orewa.connect which will return a handle to
a connection. From here you can use all the implemented Redis commands in
Orewa.* and also close the connection with Orewa.close. Or just use
Orewa.with_connection to handle connection handling for you.

Orewa opts in to offering an OCaml-centric API, so the commands map to
functions and these take typed arguments. So instead of distinguishing between
seconds and millisecond variants, in Orewa both are represented by a time span
type. Different options to commands are represented by ADTs, to avoid
constructing invalid commands. The results are mapped into the most fitting
OCaml data types. Orewa also avoids exceptions, so the signature will tell you
exactly which error types are expected.

Examples

The integration test in src/integration/test.ml attempts to test all
implemented commands, so it demonstrates how each of them can be used.

Documentation

The API documentation of the
current release is available online. The naming of the functions follows the
naming of Redis commands so it is simple to adapt
from the Redis docs to OCaml.

Roadmap

Currently all commands from the string category in Redis 5 are implemented.
Over time this set is meant to be expanded. If you need support for a specific
command, submit a pull request.

For a very preliminary draft of what could be coming over time here's a list of
ideas:

  1. Most (all?) sensible Redis commands

  2. Transactions in Redis

  3. Cluster support, maybe. Unlikely to happen any time soon.

Install
Published
19 Oct 2019
Sources
orewa-0.2.1.tbz
sha256=50c2bc62230a94f0856b9f2e414c6bff501fbf2071438d17cabdc0093bee718a
sha512=fba593b4fa15b557dceb3aa11e26a56f0de0308b321bf6e57b4d064f316efa18f5af44387e36c60509bfd954767230275dd29a051a95c8dcaad558b035d2778b
Dependencies
alcotest-async
with-test & >= "0.8.2"
alcotest
with-test & >= "0.8.4"
ppx_let
>= "v0.11"
dune
>= "1.4"
core
>= "v0.11"
async
>= "v0.11"
Reverse Dependencies