🤡Welcome

TODO: replace the clown with some friendlier emoji

Indigo is a light-weight and extendable web-framework focused on API, built on top of custom HTTP core. It ships with a great performance and powerful built-in router, which includes the following features:

  • Groups

  • Middlewares

  • Mutators (pre-middlewares)

  • Path catchers

  • Static files distribution

  • Extended errors handling

    • You can handle basically caused by HTTP core or router

  • Really fast dynamic routing

  • Automatic path normalization without redirecting

  • ...and many other features

Custom HTTP core is written to be as performant as it theoretically can. It utilizes SIMD extensions in HTTP parser and is heavily optimized, yet staying readable and maintainable. Using it allows us to reach the peak-performance, which can't be done using net/http, and at the same time stays flexible and configurable. No setting is hard-coded: you can adjust everything via config.Config. Other key features includes:

  • Stream-based approach to body handling — you can read request's body lazily, as it arrives

  • Native HTTPS support

    • Using self-signed certificates for localhost and IP interfaces and autocert for domains. However, own certificates can be used, too

  • Cookies support

  • Forced and graceful stop

  • Connection hijacking

  • Both HTTP/1.0 and HTTP/1.1 support, HTTP/2 soon

  • Automatic Allow-header on 405 Method Not Allowed errors and TRACE-requests processing

  • Implicit redirects

    • Changes request path implicitly inside the server, without letting the browser know about it

  • ...and others

Last updated