[package]
edition = "2021"
rust-version = "1.85"
name = "magic_sync"
version = "0.1.1"
authors = ["Ricardo Sansores <ricardo@ssf.mx>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Keeps partial copies of PostgreSQL tables on SQLite replicas — offline-first, by comparing what each replica holds with what it should hold"
homepage = "https://rsansores.github.io/magic_sync/"
documentation = "https://docs.rs/magic_sync"
readme = "README.md"
keywords = [
"sync",
"replication",
"offline-first",
"postgres",
"sqlite",
]
categories = ["database"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rsansores/magic_sync"
resolver = "3"
[package.metadata.docs.rs]
features = ["postgres"]
[features]
postgres = [
"sqlx/postgres",
"dep:hmac",
"dep:rand",
"dep:sha2",
]
sqlite = ["sqlx/sqlite"]
[lib]
name = "magic_sync"
path = "src/lib.rs"
[[test]]
name = "derive"
path = "tests/derive.rs"
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"serde",
"std",
]
default-features = false
[dependencies.hmac]
version = "0.12"
optional = true
[dependencies.magic_sync_derive]
version = "=0.1.1"
[dependencies.prost]
version = "0.14"
[dependencies.rand]
version = "0.8"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio",
"derive",
"chrono",
"uuid",
"json",
]
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"sync",
"time",
]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v7",
]
[dev-dependencies.prost-build]
version = "0.14"
[dev-dependencies.protox]
version = "0.9"
[dev-dependencies.sqlx]
version = "0.8"
features = [
"macros",
"migrate",
]
default-features = false
[dev-dependencies.trybuild]
version = "1"
[dev-dependencies.ts-rs]
version = "12"
features = [
"chrono-impl",
"uuid-impl",
"serde-compat",
"no-serde-warnings",
]