Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adetokunbo/wai-middleware-delegate
A WAI middleware that enables proxying WAI requests to another server.
https://github.com/adetokunbo/wai-middleware-delegate
haskell haskell-library middleware wai
Last synced: 4 months ago
JSON representation
A WAI middleware that enables proxying WAI requests to another server.
- Host: GitHub
- URL: https://github.com/adetokunbo/wai-middleware-delegate
- Owner: adetokunbo
- License: bsd-3-clause
- Created: 2018-08-03T04:53:12.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-18T01:36:48.000Z (9 months ago)
- Last Synced: 2024-05-19T01:23:27.798Z (9 months ago)
- Topics: haskell, haskell-library, middleware, wai
- Language: Haskell
- Homepage: https://hackage.haskell.org/package/wai-middleware-delegate
- Size: 113 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# wai-middleware-delegate
[![GitHub CI](https://github.com/adetokunbo/wai-middleware-delegate/actions/workflows/ci.yml/badge.svg)](https://github.com/adetokunbo/wai-middleware-delegate/actions)
[![Stackage Nightly](http://stackage.org/package/wai-middleware-delegate/badge/nightly)](http://stackage.org/nightly/package/wai-middleware-delegate)
[![Hackage][hackage-badge]][hackage]
[![Hackage Dependencies][hackage-deps-badge]][hackage-deps]
[![BSD3](https://img.shields.io/badge/license-BSD3-green.svg?dummy)](https://github.com/adetokunbo/wai-middleware-delegate/blob/master/LICENSE)`wai-middleware-delegate` is a [WAI][1] middleware that allows requests to be
handled by a delegate application that proxies requests to another server.## Example
```haskell
{-# LANGUAGE OverloadedStrings #-}import Network.HTTP.Client.TLS (newTlsManager)
import Network.HTTP.Types (status500)
import Network.Wai
import Network.Wai.Handler.Warp (run)
import Network.Wai.Middleware.Delegate (ProxySettings (..),
defaultSettings,
delegateToProxy)demoSettings :: ProxySettings
demoSettings = defaultSettings { proxyHost = "httpbin.org" }-- | An trivial app that proxies every request to httpbin.org
httpBin :: ProxySettings -> IO Application
httpBin s = do-- delegate everything!
let takeItAll = const True
dummyApp _ respond = respond $
responseLBS status500 [] "I should have been proxied"manager <- newTlsManager
return $ delegateToProxy s manager takeItAll dummyAppmain :: IO ()
main = httpBin demoSettings >>= run 3000```
[1]: https://hackage.haskell.org/package/wai
[hackage-deps-badge]:
[hackage-deps]:
[hackage-badge]:
[hackage]: