π€‘Welcome
The cover emoji could be a bit friendlier, I guess
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
Dynamic routing
Automatic path normalization without redirecting
...and many other features
Custom HTTP core is written with the peak performance in mind, but not forgetting about usability. It is finely optimized, staying though relatively readable and well-maintainable. Another highlight is no hard-coded constants: numerous various parameters, which mostly refer to memory limitations and preallocations, are tunable via config.Config
. Other key features are:
Stream-based body handling approach
Multilistener capabilities β an ability to bind the server on multiple interfaces and/or ports
Native HTTPS
Automatic certificate setup is also supported: from generating self-signed certificates for localhost and up to built-in autocert capabilities
Cookies
Forced and graceful stop
Connection hijacking
Both HTTP/1.0 and HTTP/1.1 support, HTTP/2 soon
Attention to HTTP specification details. E.g. including
Allow
header on 405 Method Not Allowed errors and automatic rendering for TRACE-requestsImplicit redirects
Changes request path implicitly inside the server, without letting the browser know about it
...and plenty of others
Last updated