You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## 👋 Hi, Let's Get You Started With chi <!-- {docsify-ignore} -->
4
+
5
+
<!-- # chi -->
6
+
7
+
`chi` is a lightweight, idiomatic and composable router for building Go HTTP services. It's
8
+
especially good at helping you write large REST API services that are kept maintainable as your
9
+
project grows and changes. `chi` is built on the new `context` package introduced in Go 1.7 to
10
+
handle signaling, cancelation and request-scoped values across a handler chain.
11
+
12
+
The focus of the project has been to seek out an elegant and comfortable design for writing
13
+
REST API servers, written during the development of the Pressly API service that powers our
14
+
public API service, which in turn powers all of our client-side applications.
15
+
16
+
The key considerations of chi's design are: project structure, maintainability, standard http
17
+
handlers (stdlib-only), developer productivity, and deconstructing a large system into many small
18
+
parts. The core router `github.com/go-chi/chi` is quite small (less than 1000 LOC), but we've also
19
+
included some useful/optional subpackages: [middleware](https://github.com/go-chi/chi/tree/master/middleware), [render](https://github.com/go-chi/render)
20
+
and [docgen](https://github.com/go-chi/docgen). We hope you enjoy it too!
21
+
22
+
## Features <!-- {docsify-ignore} -->
23
+
24
+
***Lightweight** - cloc'd in ~1000 LOC for the chi router
25
+
***Fast** - yes, see [benchmarks](https://github.com/go-chi/chi#benchmarks)
26
+
***100% compatible with net/http** - use any http or middleware pkg in the ecosystem that is also compatible with `net/http`
27
+
***Designed for modular/composable APIs** - middlewares, inline middlewares, route groups and sub-router mounting
28
+
***Context control** - built on new `context` package, providing value chaining, cancellations and timeouts
29
+
***Robust** - in production at Pressly, CloudFlare, Heroku, 99Designs, and many others (see [discussion](https://github.com/go-chi/chi/issues/91))
30
+
***Doc generation** - `docgen` auto-generates routing documentation from your source to JSON or Markdown
31
+
***Go.mod support** - as of v5, go.mod support (see [CHANGELOG](https://github.com/go-chi/chi/blob/master/CHANGELOG.md))
32
+
***No external dependencies** - plain ol' Go stdlib + net/http
33
+
34
+
35
+
36
+
## Examples <!-- {docsify-ignore} -->
37
+
38
+
See [examples](https://github.com/go-chi/chi/blob/master/_examples/) for a variety of examples.
0 commit comments