<commit_before>homepage: http://www.spock.li
changelog-type: ''
hash: d044edbf916656c7e2c709b627c97b08e300a425479c5b2490aa3403220cc0fb
test-bench-deps:
  Spock: -any
  bytestring: -any
  wai: -any
  stm: -any
  base: -any
  hspec: ! '>=2.0'
  text: -any
  reroute: -any
  hspec-wai: ! '>=0.6'
  http-types: -any
maintainer: <NAME> <<EMAIL>>
synopsis: Another Haskell web framework for rapid development
changelog: ''
basic-deps:
  warp: ! '>=3.0'
  bytestring: ! '>=0.10'
  wai: ! '>=3.0'
  case-insensitive: ! '>=1.1'
  stm: ! '>=2.4'
  base: ! '>=4 && <5'
  time: ! '>=1.4'
  base64-bytestring: ! '>=1.0'
  unordered-containers: ! '>=0.2'
  text: ! '>=0.11.3.1'
  list-t: ! '>=0.4'
  monad-control: ! '>=1.0'
  resource-pool: ! '>=0.2'
  reroute: ! '>=0.3'
  path-pieces: ! '>=0.1.4'
  containers: ! '>=0.5'
  hvect: ! '>=0.2'
  vault: ! '>=0.3'
  old-locale: ! '>=1.0'
  mtl: ! '>=2.1'
  hashable: ! '>=1.2'
  transformers-base: ! '>=0.4'
  wai-extra: ! '>=3.0'
  transformers: ! '>=0.3'
  random: ! '>=1.0'
  stm-containers: ! '>=0.2'
  resourcet: ! '>=0.4'
  http-types: ! '>=0.8'
  aeson: ! '>=0.7'
  directory: ! '>=1.2'
all-versions:
- '0.1.0.0'
- '0.1.1.0'
- '0.1.2.0'
- '0.2.0.0'
- '0.3.0.0'
- '0.4.0.0'
- '0.4.0.1'
- '0.4.1.0'
- '0.4.2.0'
- '0.4.2.1'
- '0.4.2.2'
- '0.4.2.3'
- '0.4.2.4'
- '0.4.3.0'
- '0.4.3.1'
- '0.4.3.2'
- '0.4.3.3'
- '0.4.3.4'
- '0.4.3.5'
- '0.4.4.0'
- '0.4.4.1'
- '0.5.0.0'
- '0.5.0.1'
- '0.5.1.0'
- '0.6.0.0'
- '0.6.1.0'
- '0.6.1.1'
- '0.6.1.2'
- '0.6.1.3'
- '0.6.2.0'
- '0.6.2.1'
- '0.6.2.2'
- '0.6.2.3'
- '0.6.3.0'
- '0.6.4.0'
- '0.6.5.0'
- '0.6.6.0'
- '0.6.6.1'
- '0.7.0.0'
- '0.7.1.0'
- '0.7.2.0'
- '0.7.3.0'
- '0.7.4.0'
- '0.7.5.0'
- '0.7.5.1'
- '0.7.5.2'
- '0.7.6.0'
- '0.7.7.0'
- '0.7.8.0'
- '0.7.9.0'
- '0.7.10.0'
- '0.7.11.0'
- '0.7.12.0'
- '0.8.0.0'
author: <NAME> <<EMAIL>>
latest: '0.8.0.0'
description-type: haddock
description: ! 'This toolbox provides everything you need to get a quick start into
  web hacking with haskell:


  * fast routing


  * middleware


  * json


  * sessions


  * cookies


  * database helper


  * csrf-protection


  A tutorial is available at <http://www.spock.li/tutorial/ spock.li>'
license-name: BSD3<commit_msg>Update from Hackage at 2015-08-12T13:38:45+0000<commit_after>homepage: http://www.spock.li
changelog-type: ''
hash: d489e2a5d60f105f7f8511a149c2a361de31f7cf450ad6dbad2fbece885735bb
test-bench-deps:
  Spock: -any
  bytestring: -any
  wai: -any
  stm: -any
  base: -any
  hspec: ! '>=2.0'
  text: -any
  reroute: -any
  hspec-wai: ! '>=0.6'
  http-types: -any
maintainer: <NAME> <<EMAIL>>
synopsis: Another Haskell web framework for rapid development
changelog: ''
basic-deps:
  warp: ! '>=3.0'
  focus: ! '>=0.1'
  bytestring: ! '>=0.10'
  wai: ! '>=3.0'
  case-insensitive: ! '>=1.1'
  stm: ! '>=2.4'
  base: ! '>=4 && <5'
  time: ! '>=1.4'
  base64-bytestring: ! '>=1.0'
  unordered-containers: ! '>=0.2'
  text: ! '>=0.11.3.1'
  list-t: ! '>=0.4'
  monad-control: ! '>=1.0'
  resource-pool: ! '>=0.2'
  reroute: ! '>=0.3'
  path-pieces: ! '>=0.1.4'
  containers: ! '>=0.5'
  hvect: ! '>=0.2'
  vault: ! '>=0.3'
  old-locale: ! '>=1.0'
  mtl: ! '>=2.1'
  hashable: ! '>=1.2'
  transformers-base: ! '>=0.4'
  wai-extra: ! '>=3.0'
  transformers: ! '>=0.3'
  random: ! '>=1.0'
  stm-containers: ! '>=0.2'
  resourcet: ! '>=0.4'
  http-types: ! '>=0.8'
  aeson: ! '>=0.7'
  directory: ! '>=1.2'
all-versions:
- '0.1.0.0'
- '0.1.1.0'
- '0.1.2.0'
- '0.2.0.0'
- '0.3.0.0'
- '0.4.0.0'
- '0.4.0.1'
- '0.4.1.0'
- '0.4.2.0'
- '0.4.2.1'
- '0.4.2.2'
- '0.4.2.3'
- '0.4.2.4'
- '0.4.3.0'
- '0.4.3.1'
- '0.4.3.2'
- '0.4.3.3'
- '0.4.3.4'
- '0.4.3.5'
- '0.4.4.0'
- '0.4.4.1'
- '0.5.0.0'
- '0.5.0.1'
- '0.5.1.0'
- '0.6.0.0'
- '0.6.1.0'
- '0.6.1.1'
- '0.6.1.2'
- '0.6.1.3'
- '0.6.2.0'
- '0.6.2.1'
- '0.6.2.2'
- '0.6.2.3'
- '0.6.3.0'
- '0.6.4.0'
- '0.6.5.0'
- '0.6.6.0'
- '0.6.6.1'
- '0.7.0.0'
- '0.7.1.0'
- '0.7.2.0'
- '0.7.3.0'
- '0.7.4.0'
- '0.7.5.0'
- '0.7.5.1'
- '0.7.5.2'
- '0.7.6.0'
- '0.7.7.0'
- '0.7.8.0'
- '0.7.9.0'
- '0.7.10.0'
- '0.7.11.0'
- '0.7.12.0'
- '0.8.0.0'
- '0.8.1.0'
author: <NAME> <<EMAIL>>
latest: '0.8.1.0'
description-type: markdown
description: ! "Spock\n=====\n\n[![Build Status](https://travis-ci.org/agrafix/Spock.svg)](https://travis-ci.org/agrafix/Spock)\n\n[![Hackage
  Deps](https://img.shields.io/hackage-deps/v/Spock.svg)](http://packdeps.haskellers.com/reverse/Spock)\n\nFor
  more information and tutorials, visit [spock.li](http://www.spock.li)\n\n## Intro\n\nHackage:
  [Spock](http://hackage.haskell.org/package/Spock)\nTutorial: [Spock Tutorial](https://www.spock.li/tutorial/)\n\nAnother
  Haskell web framework for rapid development: This toolbox provides\neverything you
  need to get a quick start into web hacking with haskell:\n\n* fast routing (both
  typesafe and \"untyped\")\n* middleware\n* json\n* sessions\n* cookies\n* database
  helper\n* csrf-protection\n\nBenchmarks:\n\n* https://github.com/philopon/apiary-benchmark\n*
  https://github.com/agrafix/Spock-scotty-benchmark\n\n## Usage (Typesafe, recommended)\n\n```haskell\n{-#
  LANGUAGE OverloadedStrings #-}\nimport Web.Spock\n\nimport qualified Data.Text as
  T\n\nmain =\n    runSpock 3000 $ spockT id $\n    do get (\"echo\" <//> var) $ \\something
  ->\n        text $ T.concat [\"Echo: \", something]\n```\n\n(read more at [Type-safe
  routing in Spock](https://www.spock.li/2015/04/19/type-safe_routing.html))\n\n##
  Usage (Simple)\n\n```haskell\n{-# LANGUAGE OverloadedStrings #-}\nimport Web.Spock.Simple\n\nimport
  qualified Data.Text as T\n\nmain =\n    runSpock 3000 $ spockT id $\n    do get
  (\"echo\" <//> \":something\") $\n        do Just something <- param \"something\"\n
  \          text $ T.concat [\"Echo: \", something]\n       get (\"regex\" <//> \"{number:^[0-9]+$}\")
  $\n        do Just number <- param \"number\"\n           text $ T.concat [\"Just
  a number: \", number]\n```\n\n## Install\n\n* Using cabal: `cabal install Spock`\n*
  From Source: `git clone https://github.com/agrafix/Spock.git && cd Spock && cabal
  install`\n\n## Candy\n\n### Extensions\n\nThe following Spock extensions exist:\n\n*
  Background workers for Spock: [Spock-worker](http://hackage.haskell.org/package/Spock-worker)\n*
  Digestive functors for Spock: [Spock-digestive](http://hackage.haskell.org/package/Spock-digestive)\n\n###
  Works well with Spock\n\n* User management [users](http://hackage.haskell.org/package/users)\n*
  Data validation [validate-input](http://hackage.haskell.org/package/validate-input)\n*
  Blaze bootstrap helpers [blaze-bootstrap](http://hackage.haskell.org/package/blaze-bootstrap)\n*
  digestive-forms bootstrap helpers [digestive-bootstrap](http://hackage.haskell.org/package/digestive-bootstrap)\n\n##
  Example Projects\n\n* [funblog](https://github.com/agrafix/funblog)\n* [makeci](https://github.com/openbrainsrc/makeci)\n*
  [curry-recipes](https://github.com/timjb/reroute-talk/tree/06574561918b50c1809f1e24ec7faeff731fddcf/curry-recipes)\n\n##
  Talks\n\n* German: [Moderne typsichere Web-Entwicklung mit Haskell](https://dl.dropboxusercontent.com/u/15078797/talks/typesafe-webdev-2015.pdf)
  (by <NAME>)\n* German: [reroute-talk](https://github.com/timjb/reroute-talk)
  (by <NAME>)\n\n## Companies / Projects using Spock\n\n* http://cp-med.com/\n*
  http://openbrain.co.uk/\n* http://findmelike.com/\n* https://www.tramcloud.net\n*
  http://thitp.de\n\n## Notes\n\nSince version 0.7.0.0 Spock supports typesafe routing.
  If you wish to continue using the untyped version of Spock you can Use `Web.Spock.Simple`.
  The implementation of the routing is implemented in a separate haskell package called
  `reroute`.\n\nSince version 0.5.0.0 Spock is no longer built on top of scotty. The\ndesign
  and interface is still influenced by scotty, but the internal\nimplementation differs
  from scotty's.\n\n## Thanks to\n\n* <NAME> [Github](https://github.com/timjb)
  (lot's of help with typesafe routing)\n* <NAME> [Github](https://github.com/glutamate)
  \ (much feedback and small improvements)\n"
license-name: BSD3
{'fraction_non_alphanumeric': 0.24767456281780975, 'fraction_numerical': 0.09363760386952748, 'mean_word_length': 2.7541899441340782, 'pattern_counts': {'":': 1, '<': 27, '<?xml version=': 0, '>': 89, 'https://': 16, 'lorem ipsum': 0, 'www.': 7, 'xml': 0}, 'pii_count': 115, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1840163', 'n_tokens_mistral': 4178, 'n_tokens_neox': 3976, 'n_words': 649}