name: web-inv-route version: 0.1.1 x-revision: 1 synopsis: Composable, reversible, efficient web routing based on invertible invariants and bijections description: 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. license: BSD3 author: Dylan Simon maintainer: dylan@dylex.net copyright: 2016 category: Web build-type: Simple cabal-version: >=1.20 source-repository head type: git location: https://github.com/dylex/web-inv-route flag uri description: Support constructing URIs from routes flag wai description: Provide WAI-compatible interfaces flag snap description: Provide Snap-compatible interfaces flag happstack description: Provide Happstack-compatible interfaces library exposed-modules: Web.Route.Invertible Web.Route.Invertible.Common Web.Route.Invertible.Internal other-modules: Web.Route.Invertible.String Web.Route.Invertible.Parameter Web.Route.Invertible.Placeholder Web.Route.Invertible.Sequence Web.Route.Invertible.Path Web.Route.Invertible.Host Web.Route.Invertible.Method Web.Route.Invertible.Query Web.Route.Invertible.ContentType Web.Route.Invertible.Dynamics Web.Route.Invertible.Route Web.Route.Invertible.Request Web.Route.Invertible.Result Web.Route.Invertible.Monoid.Exactly Web.Route.Invertible.Monoid.Prioritized Web.Route.Invertible.Map Web.Route.Invertible.Map.Monoid Web.Route.Invertible.Map.MonoidHash Web.Route.Invertible.Map.Default Web.Route.Invertible.Map.Const Web.Route.Invertible.Map.Bool Web.Route.Invertible.Map.ParameterType Web.Route.Invertible.Map.Placeholder Web.Route.Invertible.Map.Sequence Web.Route.Invertible.Map.Path Web.Route.Invertible.Map.Host Web.Route.Invertible.Map.Method Web.Route.Invertible.Map.Query Web.Route.Invertible.Map.Custom Web.Route.Invertible.Map.Route build-depends: base >= 4.8 && <4.11, containers >= 0.5, transformers, hashable, unordered-containers, text >= 0.10, bytestring >= 0.10, case-insensitive, http-types >= 0.9, invertible > 0.1 default-language: Haskell2010 ghc-options: -Wall if flag(uri) exposed-modules: Web.Route.Invertible.URI build-depends: network-uri >= 2.6.1 if flag(wai) exposed-modules: Web.Route.Invertible.Wai build-depends: wai >= 1 if flag(snap) exposed-modules: Web.Route.Invertible.Snap build-depends: snap-core >= 0.9 if flag(happstack) exposed-modules: Web.Route.Invertible.Happstack build-depends: happstack-server >= 7 test-suite tests type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Main.hs default-language: Haskell2010 ghc-options: -Wall build-depends: base, bytestring, text, network-uri, HUnit, web-inv-route