AD4M link language that syncs Perspective triples to IPFS via the Kubo HTTP API, stored as DAG-JSON objects.
- Commits: links → DAG-JSON objects put to IPFS via
dag/put - Sync: resolves IPNS name for new perspective diffs → local links
- Query: indexed local store (source, target, predicate)
- Content-addressed: every link is a CID-addressable DAG-JSON object
- Merkle DAG: perspective diffs form a hash-linked chain for verifiable history
- Telepresence: real-time presence and signalling via Kubo PubSub (multibase-encoded topics for v0.41+ compatibility)
| Variable | Description |
|---|---|
IPFS_API_URL |
Kubo HTTP API endpoint |
IPFS_GATEWAY_URL |
IPFS gateway URL for reads |
IPNS_NAME |
IPNS name for the perspective head |
PINNING_SERVICE_URL |
Remote pinning service URL |
NEIGHBOURHOOD_META |
AD4M neighbourhood metadata |
pnpm install
deno run --allow-all esbuild.tsRequires @coasys/ad4m-ldk at ../ad4m/ad4m-ldk/js/ or set AD4M_LDK_ENTRY.
node --experimental-vm-modules --import tsx --test tests/*.test.ts294 tests across 11 suites.
Same pure/impure pattern as all AD4M link languages. Protocol-specific modules:
src/ipfs-api.ts/ipfs-api.pure.ts— Kubo HTTP API (including multipartdag/put)src/cid.ts/cid.pure.ts— CID generation + validationsrc/ipld.ts/ipld.pure.ts— DAG-JSON encodingsrc/perspective-dag.ts/perspective-dag.pure.ts— Merkle DAG of perspective diffssrc/pinning.ts— pin managementsrc/translate.ts/translate.pure.ts— link ↔ DAG-JSON translationsrc/dual-language.ts— dual-language supportsrc/sdna.ts— social DNA definitionssrc/settings.ts— language settingssrc/pubsub.ts/pubsub.pure.ts— PubSub telepresence (multibase topic encoding, presence, signals)src/sync.ts— sync orchestration
ad4m:host imports confined to 4 adapter files + index.ts.
CAL-1.0