Metadata-Version: 2.4
Name: 3tears-backup
Version: 0.16.0
Summary: Encrypted, GFS-rotated database backups to any ObjectStore, with restore verification
Project-URL: Repository, https://github.com/pacepace/3tears
Author: pace
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Database
Classifier: Topic :: System :: Archiving :: Backup
Classifier: Typing :: Typed
Requires-Python: >=3.14
Requires-Dist: 3tears-media-contracts
Requires-Dist: 3tears-object-store
Requires-Dist: 3tears-observe
Description-Content-Type: text/markdown

# 3tears-backup

Encrypted, grandfather-father-son (GFS) rotated **database backups** to any
`ObjectStore`, with **restore verification** — built on 3tears primitives so it
drops into any 3tears app.

- **Storage-agnostic.** The engine takes an injected `ObjectStore`
  (`3tears-object-store` — S3 is the first driver, filesystem the second) and
  streams the dump through `EncryptedObjectStore`, so a multi-GB dump is
  client-side AES-256-GCM encrypted and never sits whole in memory.
- **Postgres *and* Yugabyte.** A pluggable `DbDumpDriver` wraps the right dump
  tool; the engine autodetects the target from `version()`.
- **GFS retention.** Keep N daily / weekly / monthly backups; prune the rest.
- **Restore-verified.** Backups are proven by restoring into a throwaway
  temporary database, with an optional hook to spin a stack against it.

Configuration is an injected, frozen `BackupConfig` — construct it however you
like (a `from_env` factory reads `THREETEARS_BACKUP_*` with defaults; most apps
will build it from control-plane settings instead).
