{"repo":"alexedwards/flow","free":true,"listed":false,"github":"https://github.com/alexedwards/flow","clone":"git clone https://github.com/alexedwards/flow.git","description":"A delightfully tiny but powerful HTTP router for Go web applications","language":"Go","stars":485,"topics":["golang","router","mux","go","routing","http"],"license":"MIT","category":"dev-tools","readme_excerpt":"A delightfully tiny but powerful HTTP router for Go web applications --- Flow packs in a bunch of features that you'll probably like: Use named parameters , wildcards and (optionally) regexp patterns in your routes. Create route groups which use different middleware (a bit like chi). Customizable handlers for 404 Not Found and 405 Method Not Allowed responses. Automatic handling of OPTIONS and HEAD requests. Works with http.Handler , http.HandlerFunc , and standard Go middleware. Zero dependencies. Tiny, readable, codebase ( 160 lines of code). --- Project status This package has reached a stable status. It is actively maintained with ongoing bug fixes and essential updates, and significant alterations to the API or behavior are not expected. --- Installation Basic example Kitchen-sink example Notes Conflicting routes are permitted (e.g. /posts/:id and posts/new ). Routes are matched in the order that they are declared. Trailing slashes are significant ( /profile/:id and /profile/:id/ are not the same). An Allow header is automatically set for all OPTIONS and 405 Method Not Allowed responses (including when using custom handlers). Once the flow.Mux type is being used by your server, it is not safe to add more middleware or routes concurrently. Middleware must be declared before a route in order to be used by that route. Any middleware declared after a route won't act on that route. For example: Thanks The pattern matching logic for Flow was heavily inspired by matryer/way.","default_branch":null,"files":null,"tree":[],"storefront":"/r/alexedwards","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alexedwards/flow/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}