~27% faster. One line changed.
April 7, 2026
Schema caching eliminates per-request toJsonSchema() recomputation.
All 10 languages. One optimization. Measurable everywhere.
What changed
Tool JSON Schema is now computed once at registration and cached. Previously recomputed on every tools/list and tools/call request.
New byte-level request handler eliminates double JSON serialization in Go. Requests go straight from []byte to response without intermediate marshal/unmarshal.
The v0.1.0 Hono memory growth (122 MB to 739 MB over 5 min) was caused by per-request schema allocation. Schema caching eliminated it entirely.
Performance impact
Same methodology as v0.1.0: Docker containers, HTTP transport, 30-second sustained load. Official SDK numbers unchanged.
| Language | Framework | v0.1.1 | v0.1.0 | Improvement | vs Best Third-Party |
|---|---|---|---|---|---|
| Rust | Actix | 5,879 req/s | 5,111 | +15% | — |
| Node.js | bare http | 5,497 req/s | 4,539 | +21% | 2.4x vs mcp-framework |
| C# | ASP.NET | 5,260 req/s | 4,421 | +19% | — |
| Ruby | Rack+Puma | 4,762 req/s | 3,217 | +48% | 1.3x vs fast-mcp |
| Go | Chi | 4,740 req/s | 4,024 | +18% | 1.1x vs mcp-go |
| Java | Javalin | 4,512 req/s | 3,791 | +19% | 1.9x vs spring-ai-mcp |
| Python | Starlette | 3,528 req/s | 2,623 | +35% | 2.0x vs mrexodia |
| Kotlin | Ktor | 3,163 req/s | 2,848 | +11% | — |
| Swift | Vapor | 2,244 req/s | 1,730 | +30% | — |
| PHP | Slim | 1,726 req/s | 1,561 | +11% | — |
Ruby saw the largest gain (+48%) — its per-request schema computation was the most expensive relative to request handling.
Node.js framework update
Schema caching fixed the Hono memory leak and improved all frameworks. 5-minute sustained load.
| Framework | v0.1.1 req/s | Memory | CPU |
|---|---|---|---|
| bare http | 5,065 | 24-28 MB | 0.03% |
| Fastify | 4,877 | 85-86 MB | 0.04% |
| Hono | 4,385 | 75-76 MB | 0.04% |
| Express | 4,017 | 74-78 MB | 0.03% |
Hono: stable at 75-76 MB for the full 5 minutes. No more memory growth.
Upgrade
Drop-in replacement. No API changes. No config changes. Just update the version.