/readyset

ReadySet is a lightweight SQL cache that enhances the performance and scalability of your DB without any code changes.

Primary LanguageRustOtherNOASSERTION


Build status

ReadySet is a lightweight query cache that sits between your application and database and turns even the most complex SQL reads into lightning-fast lookups.

Unlike other caching solutions, ReadySet keeps the cache in sync with your database automatically and requires no changes to your application code.



This means:

  • No extra code to keep your cache and database in sync
  • No extra code to evict stale records
  • No TTLs to set - your cache is as up-to-date as your replication lag

ReadySet is wire-compatible with Postgres and MySQL.


Quickstart

Curious to see how ReadySet works? Run through our quick start to kick the tires and cache queries in under five minutes.


Install with Docker

Getting up and running with ReadySet requires that you do three things: download ReadySet, connect it to a database, and create a cache.

1. Download

The easiest way to install ReadySet is via Docker. First, download our Docker Compose file:

curl -L -o compose.yml "https://readyset.io/quickstart/compose.yml"

2. Point to a database

Make sure your database is configured to run with ReadySet and then modify the downloaded Docker Compose file to include your database connection string:

name: readyset
services:
  cache:
    ...
    environment:
      # UPSTREAM_DB_URL: <your DB connection string>
  ...
  grafana:
    ...
    environment:
      # UPSTREAM_DB_URL: <your DB connection string>

3. Run ReadySet

docker compose up -d

4. Configure caching

Once ReadySet is up and running, you'll need to create caches for the queries you want to speed up. Check out our caching guide for more details.


Documentation

For more information, check out our documentation.


Join the Community

For questions or support, join us on the ReadySet Community Slack to chat with our team.


Project Status & Roadmap

ReadySet is currently in beta. Our team is hard at work stabilizing the system with a focus on PostgreSQL. Our MySQL support is considered alpha. You can learn more about how we're approaching this and follow along on our progress below.

Project Progress Notes
General System Testing Track Run ReadySet in a production-like environment and validate its robustness in the presence of faults.
Dataflow Testing Track Expand testing of the ReadySet caching engine.
Benchmarking & Analysis Track Expand ReadySet's performance benchmarks to a wider array of workloads.
Usability Improvements Track Make it easier to configure, interact with, and debug ReadySet.
High Availability Track Ensure that ReadySet can accept connections, proxy queries, serve warm reads from the cache, and replicate writes from the primary database in the presence of certain failures.

Contribute

If you're interested in contributing, we gratefully welcome helping hands! We welcome contributions as GitHub pull requests, creating issues, advocacy, and participating in our community!

Build from Source

See our instructions on how to build ReadySet from source.


License

ReadySet is licensed under the BSL 1.1 license, converting to the open-source Apache 2.0 license after 4 years. It is free to use on any number of nodes.