๐Ÿ“ฆ go-chi / docs

chi docs

โ˜… 10 stars โ‘‚ 13 forks ๐Ÿ‘ 10 watching โš–๏ธ MIT License
๐Ÿ“ฅ Clone https://github.com/go-chi/docs.git
HTTPS git clone https://github.com/go-chi/docs.git
SSH git clone git@github.com:go-chi/docs.git
CLI gh repo clone go-chi/docs
Diego Lugo Diego Lugo Update routing.md (#13) 47a9e6d 1 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ assets
๐Ÿ“ pages
๐Ÿ“„ _coverpage.md
๐Ÿ“„ _sidebar.md
๐Ÿ“„ .nojekyll
๐Ÿ“„ CNAME
๐Ÿ“„ favicon.ico
๐Ÿ“„ index.html
๐Ÿ“„ LICENSE
๐Ÿ“„ quickstart.md
๐Ÿ“„ README.md
๐Ÿ“„ README.md

chi

๐Ÿ‘‹ Hi, Let's Get You Started With chi

chi is a lightweight, idiomatic and composable router for building Go HTTP services. It's especially good at helping you write large REST API services that are kept maintainable as your project grows and changes. chi is built on the new context package introduced in Go 1.7 to handle signaling, cancelation and request-scoped values across a handler chain.

The focus of the project has been to seek out an elegant and comfortable design for writing REST API servers, written during the development of the Pressly API service that powers our public API service, which in turn powers all of our client-side applications.

The key considerations of chi's design are: project structure, maintainability, standard http handlers (stdlib-only), developer productivity, and deconstructing a large system into many small parts. The core router github.com/go-chi/chi is quite small (less than 1000 LOC), but we've also included some useful/optional subpackages: middleware, render and docgen. We hope you enjoy it too!

Features

  • Lightweight - cloc'd in ~1000 LOC for the chi router
  • Fast - yes, see benchmarks
  • 100% compatible with net/http - use any http or middleware pkg in the ecosystem that is also compatible with net/http
  • Designed for modular/composable APIs - middlewares, inline middlewares, route groups and sub-router mounting
  • Context control - built on new context package, providing value chaining, cancellations and timeouts
  • Robust - in production at Pressly, CloudFlare, Heroku, 99Designs, and many others (see discussion)
  • Doc generation - docgen auto-generates routing documentation from your source to JSON or Markdown
  • Go.mod support - as of v5, go.mod support (see CHANGELOG)
  • No external dependencies - plain ol' Go stdlib + net/http

Examples

See examples for a variety of examples.

License

Copyright (c) 2015-present Peter Kieltyka

Licensed under MIT License