web-inv-route: Composable, reversible, efficient web routing using invertible invariants and bijections

[ bsd3, library, web ] [ Propose Tags ]

Utilities to route HTTP requests, mainly focused on path components. Routes are specified using bijections and invariant functors, allowing run-time composition (routes can be distributed across modules), reverse and forward routing derived from the same specification, and O(log n) lookups.

There are four steps/components of this package.

  1. Route endpoint specification: Web.Route.Invertible.Common

  2. Route map construction: Web.Route.Invertible.Common

  3. Route map lookup: Web.Route.Invertible (for the generic interface), Web.Route.Invertible.Wai, Web.Route.Invertible.Snap, or Web.Route.Invertible.Happstack

  4. Reverse routing: Web.Route.Invertible or Web.Route.Invertible.URI

Most users will just want to import a framework-specific module like Web.Route.Invertible.Wai (or the generic Web.Route.Invertible), each of which re-exports Web.Route.Invertible.Common. See test/Main.hs for some examples.

Flags

Automatic Flags
NameDescriptionDefault
uri

Support constructing URIs from routes

Enabled
wai

Provide WAI-compatible interfaces

Enabled
snap

Provide Snap-compatible interfaces

Enabled
happstack

Provide Happstack-compatible interfaces

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.1.2, 0.1.2.1, 0.1.2.2, 0.1.2.3, 0.1.3.0, 0.1.3.1, 0.1.3.2 (info)
Dependencies base (>=4.8 && <4.11), bytestring (>=0.10), case-insensitive, containers (>=0.5), happstack-server (>=7), hashable, http-types (>=0.9), invertible (>0.1), network-uri (>=2.6.1), snap-core (>=0.9), text (>=0.10), transformers, unordered-containers, wai (>=1) [details]
License BSD-3-Clause
Copyright 2016-2018
Author Dylan Simon
Maintainer dylan@dylex.net
Revised Revision 1 made by HerbertValerioRiedel at 2019-06-01T08:52:05Z
Category Web
Source repo head: git clone https://github.com/dylex/web-inv-route
Uploaded by DylanSimon at 2018-04-05T20:28:03Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3517 total (27 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-04-14 [all 1 reports]