Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yesodweb/yesod
A RESTful Haskell web framework built on WAI.
https://github.com/yesodweb/yesod
Last synced: about 1 month ago
JSON representation
A RESTful Haskell web framework built on WAI.
- Host: GitHub
- URL: https://github.com/yesodweb/yesod
- Owner: yesodweb
- License: mit
- Created: 2009-06-27T22:54:51.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2024-08-27T06:53:33.000Z (4 months ago)
- Last Synced: 2024-10-29T22:00:01.379Z (about 1 month ago)
- Language: Haskell
- Homepage: http://www.yesodweb.com/
- Size: 8.93 MB
- Stars: 2,636
- Watchers: 98
- Forks: 373
- Open Issues: 113
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- my-awesome - yesodweb/yesod - 12 star:2.6k fork:0.4k A RESTful Haskell web framework built on WAI. (Haskell)
- awesome-starred - yesodweb/yesod - A RESTful Haskell web framework built on WAI. (others)
README
![Tests](https://github.com/yesodweb/yesod/workflows/Tests/badge.svg)
# Yesod Web Framework
An advanced web framework using the Haskell programming language. Featuring:
* safety & security guaranteed at compile time
* developer productivity: tools for all your basic web development needs
* raw performance
* fast, compiled code
* techniques for constant-space memory consumption
* asynchronous IO
* this is built in to the Haskell programming language (like Erlang)## Getting Started
Learn more about Yesod on [its main website](http://www.yesodweb.com/). If you
want to get started using Yesod, we strongly recommend the [quick start
guide](http://www.yesodweb.com/page/quickstart), based on [the Haskell build
tool stack](https://github.com/commercialhaskell/stack#readme).Here's a minimal example!
```haskell
{-# LANGUAGE OverloadedStrings, QuasiQuotes, TemplateHaskell, TypeFamilies #-}import Yesod
data App = App -- Put your config, database connection pool, etc. in here.
-- Derive routes and instances for App.
mkYesod "App" [parseRoutes|
/ HomeR GET
|]instance Yesod App -- Methods in here can be overridden as needed.
-- The handler for the GET request at /, corresponds to HomeR.
getHomeR :: Handler Html
getHomeR = defaultLayout [whamlet|Hello World!|]main :: IO ()
main = warp 3000 App
```To read about each of the concepts in use above (routing, handlers,
linking, JSON), in detail, visit
[Basics in the Yesod book](https://www.yesodweb.com/book/basics#basics_routing).## Hacking on Yesod
Yesod consists mostly of four repositories:
```bash
git clone --recurse-submodules http://github.com/yesodweb/shakespeare
git clone --recurse-submodules http://github.com/yesodweb/persistent
git clone --recurse-submodules http://github.com/yesodweb/wai
git clone --recurse-submodules http://github.com/yesodweb/yesod
```Each repository can be built with `stack build`.