copyleftdev/z6
Deterministic load testing tool built with Tiger Style philosophy — precision, correctness, and auditability over convenience
"Precision over flexibility. Correctness before performance. Auditability always."
Z6 is a load testing tool built with Tiger Style philosophy—inspired by TigerBeetle's discipline of determinism, bounded complexity, and zero technical debt.
Unlike K6, Locust, or other convenience-focused tools, Z6 prioritizes:
No scripting. No garbage collection. No surprises.
⚠️ Pre-Alpha — Documentation Phase Complete
Z6 is currently in the documentation phase. All 20 technical specifications are complete. Implementation begins with Phase 0 of the roadmap.
# scenario.toml
[metadata]
name = "API Load Test"
[runtime]
duration_seconds = 60
vus = 100
prng_seed = 42 # Deterministic
[target]
base_url = "https://api.example.com"
http_version = "http2"
[[requests]]
name = "create_user"
method = "POST"
path = "/api/v1/users"
headers = { "Content-Type" = "application/json" }
body = '''{"name": "Test", "email": "[email protected]"}'''
weight = 0.3
[[requests]]
name = "get_user"
method = "GET"
path = "/api/v1/users/123"
weight = 0.7
[assertions]
p99_latency_ms = 100
error_rate_max = 0.01
Run:
z6 run scenario.toml --seed 42
# Output:
# Z6 Load Test Results
# ====================
# Duration: 60.0s
# Virtual Users: 100
#
# Requests: 120,000
# Success: 119,500 (99.6%)
#
# Latency (ms):
# p50: 38.5
# p99: 142.7
#
# Assertions:
# ✓ p99 latency under 100ms
# ✓ error rate under 1%
Replay (deterministic verification):
z6 replay results/events.log --verify
# ✓ Replay successful, events match exactly
REQUIRED before any development:
./scripts/install-hooks.sh
The hook enforces Tiger Style:
zig fmt)# 1. Install hook (mandatory)
./scripts/install-hooks.sh
# 2. Create GitHub issues from roadmap
python3 scripts/generate-issues.py --dry-run # Preview
python3 scripts/generate-issues.py --create # Create all issues
# 3. Pick a task from Phase 0 (Foundation)
# See ROADMAP.md
# 4. Create branch
git checkout -b feat/TASK-001
# 5. Write tests FIRST
# (Test-driven development)
# 6. Implement code
# (Follow acceptance criteria)
# 7. Commit (hook runs automatically)
git add .
git commit -m "feat: implement feature (#001)"
# 8. Push and create PR
git push origin feat/TASK-001
┌─────────────────────────────────────────────────────────────┐
│ Z6 Runtime │
│ │
│ ┌──────────────┐ ┌─────────────────┐ │
│ │ CLI │─────▶│ Scenario │ │
│ │ Parser │ │ Loader │ │
│ └──────────────┘ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Scheduler │ │
│ │ (Microkernel) │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ VU #1 │ │ VU #2 │ │ VU #N │ │
│ │ Pool │ │ Pool │ │ Pool │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └─────────────┼─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Protocol │ │
│ │ Engine Layer │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Event Logger │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Event Log │ │
│ │ (Immutable) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Key Principles:
# 1. Write failing test
zig build test # FAILS
# 2. Implement minimum code
# Add assertions (min 2 per function)
# 3. Test passes
zig build test # PASSES
Every commit is validated:
🐅 Tiger Style Pre-Commit Hook
==============================
→ Checking code formatting...
✓ Code formatted correctly
→ Checking assertion density...
✓ Assertion density satisfied
→ Checking for unbounded loops...
✓ All loops bounded or explicitly marked
→ Checking for explicit error handling...
✓ No silent error handling
→ Building project...
✓ Build successful
→ Running unit tests...
✓ All unit tests passed
==============================
✓ All checks passed
🐅 Tiger Style approved
Z6 does NOT use GitHub Actions for builds or tests.
Why?
Instead:
See .github/BRANCH_PROTECTION.md for details.
| Feature | K6 | Locust | Z6 |
|---|---|---|---|
| Language | JavaScript | Python | Zig |
| Determinism | ❌ | ❌ | ✅ |
| Event Log | ❌ | ❌ | ✅ |
| Replay | ❌ | ❌ | ✅ |
| Scripting | ✅ | ✅ | ❌ (declarative) |
| GC | ✅ | ✅ | ❌ |
| Bounded Resources | ❌ | ❌ | ✅ |
| Fuzzing | ❌ | ❌ | ✅ |
Z6 trades flexibility for guarantees.
Phase 0: Foundation (3 tasks, ~26 hours)
Phase 1: Core (3 tasks, ~76 hours)
Phase 2: HTTP (5 tasks, ~176 hours)
Phase 3: Execution (3 tasks, ~84 hours)
Phase 4: Metrics (3 tasks, ~68 hours)
Phase 5: Testing (3 tasks, ~96 hours)
Phase 6: Polish (3 tasks, ~56 hours)
Phase 7: Release (1 task, ~40 hours)
Total: 32 tasks, ~710 hours
See ROADMAP.md for complete details.
Read docs/CONTRIBUTING.md for detailed guidelines.
Quick summary:
Tiger Style Requirements:
90% test coverage
TBD (MIT or Apache 2.0)
🐅 Tiger Style: Do it right the first time.
Version 1.0 — October 2025