chi is a lightweight, open source composable router for building Go HTTP services. It also helps in writing large REST API services, keeping them maintainable as the project evolves. Having been built on the latest context package, it can easily handle signaling, cancelation and request-scoped values across a handler chain.
chi was built with the sole focus of providing an elegant and comfortable design for writing REST API servers. Its design chiefly considers project structure, maintainability, standard http handlers (stdlib-only), developer productivity, and deconstructing a large system into many small parts. It is very lightweight and fast (according to benchmarks), yet is still able to include several useful subpackages (middleware, render and docgen).
Features
- Fast and lightweight ( ~1000 LOC )
- 100% compatible with net/http
- Designed for modular/composable APIs (middlewares, route groups and subrouter mounting)
- Context control (provides value chaining, cancellations and timeouts)
- Robust (in production at Pressly, CloudFlare and several others)
- Automatic Doc generation
- No external dependencies