Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prikhi/wai-middleware-clacks
Add An "X-Clacks-Overhead" Header To Wai Responses.
https://github.com/prikhi/wai-middleware-clacks
clacks discworld gnu-terry-pratchett haskell header middleware wai x-clacks-overhead
Last synced: 27 days ago
JSON representation
Add An "X-Clacks-Overhead" Header To Wai Responses.
- Host: GitHub
- URL: https://github.com/prikhi/wai-middleware-clacks
- Owner: prikhi
- License: bsd-3-clause
- Created: 2020-03-13T07:01:28.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-05-08T05:15:10.000Z (over 1 year ago)
- Last Synced: 2024-09-29T01:45:39.325Z (about 1 month ago)
- Topics: clacks, discworld, gnu-terry-pratchett, haskell, header, middleware, wai, x-clacks-overhead
- Language: Haskell
- Homepage: https://hackage.haskell.org/package/wai-middleware-clacks
- Size: 28.3 KB
- Stars: 5
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# wai-middleware-clacks
[![wai-middleware-clacks Build Status](https://travis-ci.org/prikhi/wai-middleware-clacks.svg?branch=master)](https://travis-ci.org/prikhi/wai-middleware-clacks)
*"You know they'll never really die while the Trunk is alive."*
`wai-middleware-clacks` is a middleware that inserts an arbitrary
`X-Clacks-Overhead` header into every Wai response. From
[GNU Terry Pratchett](http://gnuterrypratchett.com):> In Terry Pratchett's Discworld series, the clacks are a series of semaphore
> towers loosely based on the concept of the telegraph. Invented by an
> artificer named Robert Dearheart, the towers could send messages "at the
> speed of light" using standardized codes. Three of these codes are of
> particular import:
>
> * G: send the message on
> * N: do not log the message
> * U: turn the message around at the end of the line and send it back again
>
> When Dearheart's son John died due to an accident while working on a clacks
> tower, Dearheart inserted John's name into the overhead of the clacks with a
> "GNU" in front of it as a way to memorialize his son forever (or for at least
> as long as the clacks are standing.)
>
> Keeping the legacy of Sir Terry Pratchett alive forever. For as long as his
> name is still passed along the Clacks, Death can't have him.## Usage
To use this package to keep the legacy of Terry Pratchett alive, simply pass
your wai application to `clacks gnuTerryPratchett` before passing it to the
`run` function:```haskell
import Network.Wai.Handler.Warp (run)
import Network.Wai.Middleware.Clacks (clacks, gnuTerryPratchett)import MyLib.App (myApp)
main :: IO ()
main = run 8080 $ clacks gnuTerryPratchett myApp
```You can use the `Clacks` type to build a custom configuration for the `clacks`
function, allowing you to pass anything into the header:```haskell
import Data.List.NonEmpty (NonEmpty(..))
import Network.Wai (Middleware)
import Network.Wai.Middleware.Clacks (Clacks(..), clacks)myClacks :: Middleware
myClacks = clacks $ Clacks $ "GNU Ada Lovelace" :| ["GNU Hoban Washburne", "GNU Shephard Book"]
```## Build
You can build the project with stack:
```
stack build
```For development, you can enable fast builds with file-watching,
documentation-building, & test-running:```
stack test --haddock --fast --file-watch --pedantic
```To build & open the documentation, run
```
stack haddock --open wai-middleware-clacks
```## LICENSE
BSD-3