Tags: Temikus/butter
Tags
v0.2.0 — WASM plugin system Completes Phase 3 of the roadmap. New features: - WASM plugin sandbox via Extism/wazero (pure Go, no CGo) - Load external .wasm plugins via wasm_plugins config section - JSON ABI: pre_http, post_http, pre_llm, post_llm hooks - Fail-open: errors logged, never propagated to clients - CompiledPlugin (compile-once) + per-call Instance for concurrency safety - plugin/sdk package: public Request/Response types for plugin authors - plugins/example-wasm: TinyGo example plugin (build with `just build-example-wasm`) Security: - Bump google.golang.org/grpc 1.79.2 → 1.79.3 (CVE authorization bypass fix) All new dependencies are BSD-3/Apache-2.0/MIT licensed.
v0.1.0 — Phases 1–5 complete
Core proxy:
- OpenRouter, OpenAI, Anthropic providers
- Model-based routing with priority failover and exponential backoff
- Weighted API key selection with per-model allowlists
- Native passthrough endpoint (/native/{provider}/*)
- In-memory LRU response cache with TTL
Plugin system (built-in):
- Rate limiter (token bucket, global or per-IP)
- Request logger (structured slog)
- Prometheus metrics (OTel SDK, /metrics endpoint)
- Distributed tracing (OTel OTLP HTTP; no-op when unconfigured)
Production readiness:
- Config hot-reload (mtime polling, atomic engine state swap)
- Graceful shutdown (SIGINT/SIGTERM)
- Health check (/healthz)
- Docker image (multi-stage, distroless)
- Race-detector clean test suite
Performance (Apple M2):
- Dispatch overhead: ~1.4μs (target <50μs)
- Full HTTP round-trip overhead: ~48μs non-streaming
PreviousNext