Files
xiaomo c4d9205eb2 docs: update all documentation for node:sqlite, pnpm, proman workflow
- README: bun → pnpm, update API examples, add Node >=22.5.0 requirement
- CLAUDE.md: replace 3-phase release process with proman bump/publish
- Package READMEs: fix package names, update storage/API descriptions
- Cards: update store.md (sqlite), cli.md (db filename, remove --var-db)
- docs/sync-readme.md: update to proman workflow
2026-06-03 23:21:30 +00:00

1.3 KiB

@ocas/fs

Filesystem-backed CAS store.

Overview

@ocas/fs implements a persistent Store backed by node:sqlite (DatabaseSync). Nodes are stored as CBOR blobs in SQLite tables. Stores support bootstrap via the same BOOTSTRAP_STORE symbol as the in-memory implementation.

Depends on @ocas/core for hashing, CBOR encoding, and types.

Dependencies: @ocas/core, cborg

Installation

pnpm add @ocas/fs

API

Exported from src/index.ts:

function openStore(path: string): Promise<Store>;

Returns a unified Store with cas, var, and tag sub-stores, backed by SQLite. Bootstraps automatically on open.

Example

import { putSchema } from "@ocas/core";
import { openStore } from "@ocas/fs";

const store = await openStore("./my-cas-store");

const typeHash = await putSchema(store, {
  type: "object",
  properties: { id: { type: "string" } },
  required: ["id"],
  additionalProperties: false,
});

const hash = await store.put(typeHash, { id: "item-1" });
console.log(store.has(hash)); // true after restart if same dir

Internal Structure

File Purpose
store.ts createFsStore, load/save nodes and type index
index.ts Public export
store.test.ts Filesystem store tests