scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp

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

A Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.

{-# LANGUAGE OverloadedStrings #-}

import Web.Scotty

main = scotty 3000 $
  get "/:word" $ do
    beam <- captureParam "word"
    html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]

Scotty is the cheap and cheerful way to write RESTful, declarative web applications.

  • A page is as simple as defining the verb, url pattern, and Text content.

  • It is template-language agnostic. Anything that returns a Text value will do.

  • Conforms to WAI Application interface.

  • Uses very fast Warp webserver by default.

As for the name: Sinatra + Warp = Scotty.

WAI
http://hackage.haskell.org/package/wai
Warp
http://hackage.haskell.org/package/warp

[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.0.1, 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.11.5, 0.11.6, 0.12, 0.12.1, 0.20, 0.20.1, 0.21, 0.22 (info)
Change log changelog.md
Dependencies aeson (>=0.6.2.1 && <2.3), base (>=4.14 && <5), base-compat-batteries (>=0.10 && <0.14), blaze-builder (>=0.3.3.0 && <0.5), bytestring (>=0.10.0.2 && <0.12), case-insensitive (>=1.0.0.1 && <1.3), cookie (>=0.4), data-default-class (>=0.1), exceptions (>=0.7 && <0.11), fail, http-types (>=0.9.1 && <0.13), monad-control (>=1.0.0.3 && <1.1), mtl (>=2.1.2 && <2.4), nats (>=0.1 && <2), network (>=2.6.0.2 && <3.2), regex-compat (>=0.95.1 && <0.96), stm, text (>=0.11.3.1 && <2.1), time (>=1.8), transformers (>=0.3.0.0 && <0.7), transformers-base (>=0.4.1 && <0.5), transformers-compat (>=0.4 && <0.8), unliftio (>=0.2), wai (>=3.0.0 && <3.3), wai-extra (>=3.0.0 && <3.2), warp (>=3.0.13 && <3.4) [details]
License BSD-3-Clause
Copyright (c) 2012-Present, Andrew Farmer and the Scotty contributors
Author Andrew Farmer <xichekolas@gmail.com>
Maintainer The Scotty maintainers
Revised Revision 1 made by ocramz at 2023-10-03T12:02:04Z
Category Web
Home page https://github.com/scotty-web/scotty
Bug tracker https://github.com/scotty-web/scotty/issues
Source repo head: git clone git://github.com/scotty-web/scotty.git
Uploaded by ocramz at 2023-10-02T21:36:40Z
Distributions Arch:0.21, Debian:0.11.6, Fedora:0.12.1, LTSHaskell:0.20.1, NixOS:0.20.1, Stackage:0.22
Reverse Dependencies 63 direct, 42 indirect [details]
Downloads 61967 total (277 in the last 30 days)
Rating 2.5 (votes: 5) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-10-02 [all 1 reports]

Readme for scotty-0.20

[back to package description]

Scotty Hackage CI

A Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.

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

main = scotty 3000 $
    get "/:word" $ do
        beam <- captureParam "word"
        html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]

Scotty is the cheap and cheerful way to write RESTful, declarative web applications.

  • A page is as simple as defining the verb, URL pattern, and Text content.
  • It is template-language agnostic. Anything that returns a Text value will do.
  • Conforms to the web application interface (WAI).
  • Uses the very fast Warp webserver by default.

See examples/basic.hs to see Scotty in action. (basic.hs needs the wai-extra package)

> runghc examples/basic.hs
Setting phasers to stun... (port 3000) (ctrl-c to quit)
(visit localhost:3000/somepath)

As for the name: Sinatra + Warp = Scotty.

More Information

Tutorials and related projects can be found in the Scotty wiki.

Contributing

Feel free to ask questions or report bugs on the Github issue tracker.

Github issues are now (September 2023) labeled, so newcomers to the Haskell language can start with easy fix ones and gradually progress to new features, bugs and R&D :)

Package versions

Scotty adheres to the Package Versioning Policy.

FAQ

  • Fails to compile regex-posix on Windows
    • If you are using stack, add the following parameters to stack.yaml:
      •   extra-deps:
          - regex-posix-clib-2.7
          flags:
            regex-posix:
              _regex-posix-clib: true
        
    • If you are using cabal, update the constraints section of cabal.project.local as follows:
      • constraints:
          regex-posix +_regex-posix-clib 
        

Contributors

Copyright

(c) 2012-Present, Andrew Farmer and Scotty contributors