Invar is a diskless, Redis™-compatible document store.
It speaks Redis' RESP wire protocol and gives well-defined durability + transactional behavior, without having to manage disks. It uses object storage, meaning your cloud bill scales with what you store, not what you provision. It's explicitly designed for single-writer operation and to run at fleet-scale for instance-per-tenant scenarios. Have a read of this post for more context about Invar's evolution.
Check out the docs for more details.
- Redis wire protocol compatibility: Works with your existing code. Compatibility is verified continuously against a suite of integration tests for the command spec. See the compatibility guide for more details
- Diskless by design: Invar uses SlateDB under the hood. Data lives in S3. No replication issues, capacity planning, e.t.c
- Defined transactional guarantees: Snapshot isolation (SI) by default, with opt-in SSI
- Single binary: Simple ops with enterprise options for HA & sharding
- Real local dev experience: Can persist to disk for simplified local dev & CI, without an S3 service dependency
- Apache 2.0: Open source, free to use commercially
This boots up an instance persisting data to /tmp/invar:
docker run -v /tmp/invar:/tmp/invar -p 6379:6379 -it ghcr.io/hardpointlabs/invar:latest --backend fjall --path /tmp/invarPass the usual AWS_... variables to configure Invar to run backed by object storage:
docker run -v /tmp/invar:/tmp/invar -e AWS_REGION=... -e AWS_ACCESS_KEY_ID=...\
-e AWS_SECRET_ACCESS_KEY=... -p 6379:6379 -it ghcr.io/hardpointlabs/invar:latest \
--backend slate --bucket <my-bucket-name>See CONTRIBUTING.md for details about building Invar itself and how you can contribute.
Apache 2.0. See LICENSE.