Measure encoding/decoding throughput across Syrup implementations. This skill provides bandwidth benchmarks for comparing serialization performance.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add plurigrid/asi --skill bandwidth-benchmark --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bandwidth Benchmark?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/plurigrid-bandwidth-benchmark)More formats (shields.io, HTML) on the badges page.
---
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
```bash
# 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
```bash
bb syrup_bandwidth_benchmark.clj
```
### Run Rust Benchmark
```bash
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
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!