Go to file
2024-01-18 02:48:17 +01:00
.github Drop newstack 2023-07-02 08:35:55 +03:00
demo Fix typo 2021-04-14 13:46:03 +02:00
yesod Support GHC 9.4 (#1769) 2022-09-07 11:49:14 -06:00
yesod-auth Update ChangeLog.md for 1.6.11.2 2023-09-14 06:04:05 +02:00
yesod-auth-oauth Allow newer GHC 2022-02-11 06:01:35 +02:00
yesod-bin Remove bounds on fsnotify 2022-09-18 11:08:53 +03:00
yesod-core Merge branch 'master' into uni2work 2024-01-18 02:48:02 +01:00
yesod-eventsource New cabal-version for Hackage 2020-11-08 12:52:23 +02:00
yesod-form Update the Changelog.md file with a link to PR 2023-08-31 03:55:54 +03:00
yesod-form-multi Version bumps for bounds 2021-04-15 09:18:55 +03:00
yesod-newsfeed Drop LTS 9 2020-01-07 13:36:58 +02:00
yesod-persistent Support GHC 9.4 (#1769) 2022-09-07 11:49:14 -06:00
yesod-sitemap Drop LTS 9 2020-01-07 13:36:58 +02:00
yesod-static One more sort for #1684 2020-07-04 19:09:50 +03:00
yesod-test Use haddock @since notation 2023-09-19 17:50:20 +03:00
yesod-websockets fix websocket chat examples 2022-11-17 08:29:58 -06:00
.envrc Merge branch 'master' into uni2work 2021-06-27 13:59:35 +02:00
.gitignore Support GHC 9.4 (#1769) 2022-09-07 11:49:14 -06:00
cabal.project Support GHC 9.4 (#1769) 2022-09-07 11:49:14 -06:00
CODE_OF_CONDUCT.md Switch CoC to Contributor Covenant 2017-12-06 16:02:01 +02:00
CONTRIBUTING.md Respond to @psibi's comments 2017-11-08 22:43:51 -08:00
Dockerfile add a Dockerfile for haskell development 2015-05-27 11:43:16 -04:00
flake.lock update flake.nix 2024-01-18 02:48:17 +01:00
flake.nix update flake.nix 2024-01-18 02:48:17 +01:00
LICENSE Switch to copyright year range #617 2017-02-27 09:47:45 +02:00
nixpkgs.nix Merge branch 'master' into uni2work 2021-06-27 13:59:35 +02:00
README.md Move to actions, test persistent 2.11 2020-11-06 07:15:17 +02:00
stack.nix Merge branch 'master' into uni2work 2021-06-27 13:59:35 +02:00
stack.yaml Merge branch 'master' into uni2work 2024-01-18 02:48:02 +01:00
stack.yaml.lock Merge branch 'master' into uni2work 2024-01-18 02:48:02 +01:00

Tests

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. If you want to get started using Yesod, we strongly recommend the quick start guide, based on the Haskell build tool stack.

Here's a minimal example!

{-# 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.

Hacking on Yesod

Yesod consists mostly of four repositories:

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.