softwaremill/tapir
Rapid development of self-documenting APIs
What's novel
Rapid development of self-documenting APIs
Code Analysis
9 files read · 4 roundsA type-safe, declarative Scala library for defining HTTP endpoints once and interpreting them as servers (15+ frameworks), clients (sttp/http4s/Play), or OpenAPI/AsyncAPI documentation, with a sophisticated codec/schema/validator system for input/output handling.
Strengths
Exceptionally deep type-level programming (ParamConcat, ErasureSameAsType, capability types R) that provides compile-time guarantees while maintaining a readable DSL; the codec/schema/validator triad is a genuinely elegant abstraction for bi-directional data transformation with validation and documentation metadata. The server interpreter's 6-step pipeline with interceptor chains, ResultOrValue monadic short-circuiting, and thread-safe resource cleanup shows production-grade engineering.
Weaknesses
The type-level complexity (5 type parameters on Endpoint, ParamConcat, capability types) creates a steep learning curve and can produce cryptic compiler errors despite the @implicitNotFound annotations; the codebase is enormous (812 files) with significant duplication across server/client implementations, making maintenance and contribution challenging.
Score Breakdown
Signal breakdown
Innovation
Craft
Traction
Scope
Evidence
Commits
570
Contributors
100
Files
1780
Active weeks
51
Repository
Language
Scala
Stars
1457
Forks
462
License
Apache-2.0