No description
b1a6d88845
We've previously used functions in the Router type to provide information for subrouters. But this accesses the Requests too early, and breaks sharing of the router structure in general, causing the Router or large parts of the Router to be recomputed on every request. We now do not use functions anymore, and properly compute all static parts of the router first, and gain access to the request only in Delayed. This also turns the code used within Delayed into a proper monad now called DelayedIO, making some of the code using it a bit nicer. |
||
---|---|---|
doc | ||
scripts | ||
servant | ||
servant-blaze | ||
servant-cassava | ||
servant-client | ||
servant-docs | ||
servant-foreign | ||
servant-js | ||
servant-lucid | ||
servant-mock | ||
servant-server | ||
.gitignore | ||
.stylish-haskell.yaml | ||
.travis.yml | ||
CONTRIBUTING.md | ||
HLint.hs | ||
README.md | ||
servant.png | ||
sources.txt | ||
stack-ghc-7.8.4.yaml | ||
stack.yaml | ||
travis.sh |
servant - A Type-Level Web DSL
Getting Started
We have a tutorial that introduces the core features of servant. After this article, you should be able to write your first servant webservices, learning the rest from the haddocks' examples.
Other blog posts, videos and slides can be found on the website.
If you need help, drop by the IRC channel (#servant on freenode) or mailing list.
Contributing
See CONTRIBUTING.md