install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cross-runtime-exchange" ~/.claude/skills/plurigrid-asi-cross-runtime-exchange && rm -rf "$T"
manifest:
skills/cross-runtime-exchange/SKILL.mdsource content
Cross-Runtime Syrup Exchange Skill
Overview
This skill enables content-addressed interoperability between three Syrup implementations:
- Clojure (Babashka) -
syrup.clj - Rust -
crateocapn-syrup - Zig -
zig-syrup
All three produce identical CIDs for the same data structures, enabling trustless cross-runtime communication.
Canonical CID
06fe1dc709bea744f8a0e1cd767210cd90f2b78200f574497e876c2778fa7ffb
This CID represents a skill invocation that is identical across all runtimes:
<12"skill:invoke[7'gay-mcp7'palette{1"n4+4"seed1069+}0+]>
Usage
Run Cross-Runtime Verification
# Zig zig build cross-runtime # Or run the example directly zig run examples/cross_runtime_exchange.zig
Expected Output
╔══════════════════════════════════════════════════════════════════╗ ║ Zig (zig-syrup) Cross-Runtime Exchange ║ ╚══════════════════════════════════════════════════════════════════╝ === Zig Encoding & CID Computation === skill-invocation CID: 06fe1dc7...78fa7ffb [57 bytes] ✓ MATCHES CANONICAL CID === Cross-Runtime Compatibility === All CIDs match between: • Clojure (Babashka) - syrup.clj • Rust - ocapn-syrup crate • Zig - zig-syrup Canonical skill:invoke CID: 06fe1dc709bea744f8a0e1cd767210cd90f2b78200f574497e876c2778fa7ffb
Key Compatibility Rules
-
Record labels must be Strings (not Symbols)
- ✅
(string)"skill:invoke" - ❌
(symbol)'skill:invoke
- ✅
-
Record fields must be wrapped in a Sequence/List
- ✅
(list)[7'gay-mcp7'palette{...}0+] - ❌
(bare)7'gay-mcp7'palette{...}0+
- ✅
-
Dictionary keys must be Strings for canonical ordering
- ✅
(string keys){"n" 4 "seed" 1069} - ❌
(symbol keys){n 4 seed 1069}
- ✅
Cross-Runtime Use Cases
1. Content-Addressed Skill Invocation
Client (Clojure) → Router (Rust) → Worker (Zig) │ │ │ └──── Same CID ────┴───────┬───────┘ ↓ Content-Addressed Cache
2. Embedded-to-Cloud Communication
Sensor Device (Zig) → Gateway (Rust) → Analytics (Clojure) │ │ │ └────── Same CID representing sensor reading ──────┘
3. Trustless Data Verification
Producer signs CID → Network transmits bytes → Consumer verifies CID │ │ └──────────── Cryptographic guarantee ───────┘
Files
- Zig implementationexamples/cross_runtime_exchange.zig
- Rust implementationexamples/cross_runtime_exchange.rs
- Clojure implementationsyrup_cross_runtime_exchange.clj
- Full documentationSYRUP_CROSS_RUNTIME_EXCHANGE.md
Related Skills
- Measure throughput across runtimesbandwidth-benchmark