0.29
There's a lot of open issues
A SQLite extension which uses Graft to replicate to and from object storage.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

Graft

Build Status   docs.rs   crates.io   graft.rs

Graft is an open-source transactional storage engine designed for efficient data synchronization at the edge. It supports lazy, partial replication with strong consistency, ensuring applications replicate only the data they need.

Core Benefits:

  • Lazy Replication: Clients sync data on demand, saving network and compute.
  • Partial Replication: Minimize bandwidth by syncing only required data.
  • Edge Optimization: Lightweight client designed for edge, mobile, and embedded environments.
  • Strong Consistency: Serializable Snapshot Isolation ensures correct, consistent data views.
  • Transactional Object Storage: Graft turns object storage into a transactional system—supporting consistent updates to subsets of data at page granularity, without imposing any data format or schema.
  • Instant Read Replicas: Decoupled metadata and data allow replicas to spin up immediately—no replay, no waiting for full recovery.

Use Cases:

  • Offline-first and mobile applications
  • Cross-platform synchronization
  • Stateless replicas for serverless or embedded environments
  • Diverse data replication scenarios
  • Storage and replication for databases

Learn more:

Using Graft

Graft should be considered Alpha quality software. Thus, don't use it for production workloads yet.

SQLite extension

The easiest way to use Graft is via the Graft SQLite extension which is called libgraft. Please see the documentation for instructions on how to download and use libgraft.

Rust Crate

Graft can be embedded in your Rust application directly, although for now that is left as an exercise for the reader. You can find the Rust docs here: https://docs.rs/graft-client

Other languages?

Please file an issue if you'd like to use Graft directly from a language other than Rust!

Technical Overview

For a detailed overview of how Graft works, visit https://graft.rs/docs/internals.

Contributing

Thank you for your interest in contributing your time and expertise to the project. Please read our contribution guide to learn more about the process.

License

Licensed under either of

at your option.