Agent Skills: Syrup Bandwidth Benchmark Skill

Measure encoding/decoding throughput across Syrup implementations. This skill provides bandwidth benchmarks for comparing serialization performance.

UncategorizedID: plurigrid/asi/bandwidth-benchmark

Install this agent skill to your local

pnpm dlx add-skill https://github.com/plurigrid/asi/tree/HEAD/skills/bandwidth-benchmark

Skill Files

Browse the full folder contents for bandwidth-benchmark.

Download Skill

Loading file tree…

skills/bandwidth-benchmark/SKILL.md

Skill Metadata

Name
bandwidth-benchmark
Description
Measure encoding/decoding throughput across Syrup implementations. This skill provides bandwidth benchmarks for comparing serialization performance.

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

  • benchmarks/bandwidth_simple.zig - Quick Zig benchmark
  • benchmarks/bandwidth_benchmark.zig - Full Zig benchmark
  • syrup_bandwidth_benchmark.clj - Clojure benchmark
  • SYRUP_BANDWIDTH_COMPARISON.md - Complete comparison

Related Skills

  • cross-runtime-exchange - Verify CID compatibility