Spock: Another Haskell web framework for rapid development

[ bsd3, library, web ] [ Propose Tags ]
This version is deprecated.

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 spock.li


[Skip to Readme]

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.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, 0.9.0.0, 0.9.0.1, 0.10.0.0, 0.10.0.1, 0.11.0.0, 0.12.0.0, 0.13.0.0, 0.14.0.0 (info)
Dependencies aeson (>=0.7), base (>=4 && <5), base64-bytestring (>=1.0), bytestring (>=0.10), case-insensitive (>=1.1), containers (>=0.5), crypto-random (>=0.0.8), directory (>=1.2), focus (>=0.1), hashable (>=1.2), http-types (>=0.8), hvect (>=0.2), list-t (>=0.4), monad-control (>=1.0), mtl (>=2.1), old-locale (>=1.0), path-pieces (>=0.1.4), random (>=1.0), reroute (>=0.3.1 && <0.4), resource-pool (>=0.2), resourcet (>=0.4), stm (>=2.4), stm-containers (>=0.2 && <0.3), text (>=0.11.3.1), time (>=1.4), transformers (>=0.3), transformers-base (>=0.4), unordered-containers (>=0.2), vault (>=0.3), wai (>=3.0), wai-extra (>=3.0), warp (>=3.0) [details]
License BSD-3-Clause
Copyright (c) 2013 - 2015 Alexander Thiemann
Author Alexander Thiemann <mail@athiemann.net>
Maintainer Alexander Thiemann <mail@athiemann.net>
Revised Revision 1 made by HerbertValerioRiedel at 2019-05-20T23:31:25Z
Category Web
Home page http://www.spock.li
Bug tracker https://github.com/agrafix/Spock/issues
Source repo head: git clone https://github.com/agrafix/Spock
Uploaded by AlexanderThiemann at 2015-11-08T23:36:33Z
Distributions
Reverse Dependencies 9 direct, 0 indirect [details]
Downloads 53204 total (92 in the last 30 days)
Rating 2.75 (votes: 7) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-12-08 [all 3 reports]

Readme for Spock-0.10.0.0

[back to package description]

Spock

Build Status Hackage

Intro

Hackage: Spock Stackage: Spock

Another Haskell web framework for rapid development

Library Usage Example

{-# LANGUAGE OverloadedStrings #-}
import Web.Spock

import qualified Data.Text as T

main =
    runSpock 3000 $ spockT id $
    do get ("echo" <//> var) $ \something ->
        text $ T.concat ["Echo: ", something]

For more examples check the examples/ directory.

Install

  • Using cabal: cabal install Spock
  • Using Stack: stack install Spock
  • From Source (cabal): git clone https://github.com/agrafix/Spock.git && cd Spock && cabal install
  • From Source (stack): git clone https://github.com/agrafix/Spock.git && cd Spock && stack build

Features

Another Haskell web framework for rapid development: This toolbox provides everything you need to get a quick start into web hacking with haskell:

  • fast routing (both typesafe and "untyped")
  • middleware
  • json
  • sessions
  • cookies
  • database helper
  • csrf-protection
  • typesafe contexts

Talks

Candy

Extensions

The following Spock extensions exist:

Works well with Spock

Benchmarks

Please note that these benchmarks might not be up to date anymore.

Example Projects

Notes

Since 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.

Since version 0.5.0.0 Spock is no longer built on top of scotty. The design and interface is still influenced by scotty, but the internal implementation differs from scotty's.

Thanks to

  • Tim Baumann Github (lot's of help with typesafe routing)
  • Tom Nielsen Github (much feedback and small improvements)
  • ... and all other awesome contributors!

Hacking

Pull requests are welcome! Please consider creating an issue beforehand, so we can discuss what you would like to do. Code should be written in a consistent style throughout the project. Avoid whitespace that is sensible to conflicts. (E.g. alignment of = signs in functions definitions) Note that by sending a pull request you agree that your contribution can be released under the BSD3 License as part of the Spock package or related packages.

Misc

Supported GHC Versions

  • 7.6.3
  • 7.8.4
  • 7.10.2

License

Released under the BSD3 license. (c) 2013 - 2015 Alexander Thiemann