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/bandwidth-benchmark" ~/.claude/skills/plurigrid-asi-bandwidth-benchmark && rm -rf "$T"
manifest:
skills/bandwidth-benchmark/SKILL.mdsource content
Syrup Bandwidth Benchmark Skill
Overview
Measure encoding/decoding throughput across Syrup implementations. This skill provides bandwidth benchmarks for comparing serialization performance.
Benchmark Results
Test Structure: Skill Invocation
(syrec "skill:invoke" ['gay-mcp 'palette {"n" 4 "seed" 1069} 0])
Wire format: 57 bytes
Throughput by Runtime
| Runtime | Direction | Operations/sec | Bandwidth |
|---|---|---|---|
| Clojure | Encode | 50,210 | 2.86 MB/s |
| Clojure | Decode | 12,260 | 0.70 MB/s |
| Zig | Encode | 58,882,412 | 15,073 MB/s |
Performance Ratio: Zig is 5,265x faster than Clojure for encoding.
Usage
Run Zig Benchmark
# Quick benchmark zig build-exe -OReleaseFast --dep syrup -Mroot=benchmarks/bandwidth_simple.zig \ -Msyrup=src/syrup.zig -femit-bin=/tmp/bench && /tmp/bench # Full benchmark (via build.zig) zig build bandwidth
Run Clojure Benchmark
bb syrup_bandwidth_benchmark.clj
Run Rust Benchmark
cd ocapn-syrup-rust cargo run --example bandwidth_benchmark --release
Network Saturation Analysis
Zig's 15 GB/s encoding rate vs network speeds:
| Network | Speed | Zig Headroom |
|---|---|---|
| 1 Gbps Ethernet | 125 MB/s | 120x |
| 10 Gbps Ethernet | 1,250 MB/s | 12x |
| 100 Gbps Ethernet | 12,500 MB/s | 1.2x |
Conclusion: Zig syrup can saturate a 100 Gbps network interface.
Performance Characteristics
Clojure (JVM)
- Pros: Fast iteration, REPL-driven, expressive
- Cons: GC pauses, heap allocations, ~3 MB/s throughput
- Best for: Scripting, prototyping, non-latency-critical services
Rust (AOT)
- Pros: Safety + performance, Serde integration, ~500-2000 MB/s
- Cons: Compile times, borrow checker learning curve
- Best for: Production services, high-throughput systems
Zig (AOT)
- Pros: Zero-allocation, deterministic, ~15,000 MB/s
- Cons: Smaller ecosystem, manual memory management
- Best for: Embedded, real-time, maximum throughput
Practical Scenarios
Video Streaming @ 60fps
- Frame size: 1MB
- Required: 60 MB/s
- Zig: ✅ 251x headroom (15,073 MB/s)
- Clojure: ❌ 20x too slow (3 MB/s)
Microservice RPC
- Network latency dominates
- All runtimes perform similarly
- Choose based on ecosystem/team expertise
Embedded Sensor → Cloud
- Zig on MCU: Efficient, deterministic
- Battery life: Zero-allocation = less power
- Throughput: Can saturate any radio
Files
- Quick Zig benchmarkbenchmarks/bandwidth_simple.zig
- Full Zig benchmarkbenchmarks/bandwidth_benchmark.zig
- Clojure benchmarksyrup_bandwidth_benchmark.clj
- Complete comparisonSYRUP_BANDWIDTH_COMPARISON.md
Related Skills
- Verify CID compatibilitycross-runtime-exchange