store capabilities
Consult this page when choosing a store: it answers which store exposes which
shape, whether concurrent same-record writes are CAS-protected, and whether
db.transaction() can commit through one atomic
store-level batch. Generated from features.yaml (adapters[].capabilities,
the 3 essential stores) and registry/generated/to-capabilities.json
(the 19 extended noy-db-to stores, itself generated by
registry/scan-to-capabilities.mjs statically scanning the noy-db-to
source — never hand-typed).
Scope: this matrix covers all 22 to-* stores across the family — the
3 essential stores (2 ship with noy-db itself, @noy-db core; to-meter from noy-db-in), and the
19 extended stores — cloud, SQL, server, and remote-filesystem backends such as
to-postgres, to-aws-s3, and to-supabase — that ship from the separate
noy-db-to repository under the same @noy-db/* scope, binding the same
@noy-db/hub/to contract. The Scope column names which repo ships each
row; browse the full catalog at the to-* catalog. Extended
rows show a Use case/Status tag only where features.yaml still carries an
entry for them — today just to-memory, which kept its entry when it relocated
out of core; noy-db-to tracks neither field, so the rest show —.
- record — per-record key-value store (
NoydbStore:get/put/list/loadAll). The default shape for databases and object stores. - vault — whole-vault bundle store (
NoydbPodStore:readBundle/writeBundle/listBundles). One encrypted.noydbblob per vault; the destination forwithSnapshots()and bundle-mode sync.
A backend may expose both shapes — in the extended family,
@noy-db/to-aws-s3 ships toAwsS3() for records and s3Bundle() for
whole-vault bundles. casAtomic is shown as n/a for vault-only stores
(concurrency there is per-bundle OCC, not per-record CAS).
txAtomic reports whether the store declares the capability db.transaction()
delegates to for a statically-safe
batch: ✅ full contract, conditional when it depends on a runtime detail (only
to-turso today — whether the injected client exposes batch()), ❌ no (every
transaction on this store takes the per-record OCC path), n/a for vault-only
stores (no NoydbStore, so no per-record tx() to declare).
| Adapter | Scope | record | vault | casAtomic | txAtomic | Use case | Status |
|---|---|---|---|---|---|---|---|
to-aws-dynamo | noy-db-to | ✅ | ❌ | ✅ | ✅ | serverless-cloud-kv | stable |
to-aws-s3 | noy-db-to | ✅ | ✅ | ✅ | ❌ | object-store-and-bundles | stable |
to-browser-fs | noy-db-to | ✅ | ❌ | ❌ | ❌ | browser-local-directory | stable |
to-browser-idb | @noy-db core | ✅ | ❌ | ✅ | ❌ | pwa-offline-first | stable |
to-browser-local | noy-db-to | ✅ | ❌ | ❌ | ❌ | browser-small-vault | stable |
to-cloudflare-d1 | noy-db-to | ✅ | ❌ | ✅ | ✅ | edge-sql | stable |
to-cloudflare-r2 | noy-db-to | ✅ | ❌ | ✅ | ❌ | edge-object-store | stable |
to-drive | noy-db-to | ❌ | ✅ | n/a | n/a | personal-drive-bundles | stable |
to-file | @noy-db core | ✅ | ❌ | ❌ | ❌ | usb-or-local-disk | stable |
to-icloud | noy-db-to | ❌ | ✅ | n/a | n/a | apple-personal-bundles | stable |
to-memory | noy-db-to | ✅ | ❌ | ✅ | ✅ | testing | stable |
to-meter | noy-db-in | ✅ | ❌ | ❌ | ❌ | observability | stable |
to-mysql | noy-db-to | ✅ | ❌ | ✅ | ✅ | self-hosted-sql | stable |
to-nfs | noy-db-to | ✅ | ❌ | ❌ | ❌ | network-filesystem | stable |
to-postgres | noy-db-to | ✅ | ❌ | ✅ | ✅ | self-hosted-sql | stable |
to-rest | noy-db-to | ✅ | ❌ | ✅ | ❌ | remote-http-store | stable |
to-smb | noy-db-to | ✅ | ❌ | ❌ | ❌ | windows-network-share | stable |
to-sqlite | noy-db-to | ✅ | ❌ | ✅ | ✅ | embedded-sql | stable |
to-ssh | noy-db-to | ✅ | ❌ | ❌ | ❌ | remote-filesystem-over-ssh | stable |
to-supabase | noy-db-to | ✅ | ❌ | ✅ | ✅ | managed-postgres | stable |
to-turso | noy-db-to | ✅ | ❌ | ✅ | conditional | edge-sqlite | stable |
to-webdav | noy-db-to | ✅ | ❌ | ❌ | ❌ | webdav-share | stable |
Totals: 22 adapters (3 essential + 19 extended) — 20 record-capable, 3 vault-capable (1 both).
See also
- Stores — the
NoydbStore/NoydbPodStorecontracts these adapters implement, and the two-repo split - to-* family — the full storage-destination catalog, including the extended cloud/SQL/remote-FS stores
- transactions — the
db.transaction()atomicity guarantee thistxAtomiccolumn feeds