• Stars
    star
    2,621
  • Rank 17,470 (Top 0.4 %)
  • Language
    Haskell
  • License
    MIT License
  • Created over 15 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A RESTful Haskell web framework built on WAI.

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.

More Repositories

1

wai

Haskell Web Application Interface
Haskell
828
star
2

persistent

Persistence interface for Haskell allowing multiple storage methods.
Haskell
463
star
3

yesod-cookbook

Cookbook documentation
Haskell
226
star
4

shakespeare

Haml-like template files that are compile-time checked
Haskell
136
star
5

yesod-scaffold

The Yesod scaffolding, with branches for different versions.
Haskell
75
star
6

yesodweb.com-content

Content for the www.yesodweb.com site
HTML
67
star
7

benchmarks

Collection of various Haskell web benchmarks
Shell
44
star
8

yesodweb.com

The http://www.yesodweb.com/ site
Haskell
41
star
9

cabal-meta

avoid cabal dependency hell by installing all your cabal dependencies at the same time
Haskell
36
star
10

stack-templates

Yesod's scaffoldings, for use with the stack new command
29
star
11

serversession

Secure, modular server-side sessions.
Haskell
29
star
12

clientsession

Stores web session data in a client cookie, protected with authentication and encryption.
Haskell
24
star
13

css-text

CSS parser and renderer.
Haskell
16
star
14

path-pieces

Components of paths.
Haskell
14
star
15

cabal-src

Haskell cabal installation tool
Haskell
8
star
16

scripts

common shell scripts for installing Yesod projects.
Shell
6
star
17

deploy

Automated single-file deployments of Yesod apps.
Haskell
3
star
18

hcar

HCAR entries
TeX
2
star
19

maintenance

Collection of helper utilities for managing Yesod and its releases.
Haskell
2
star
20

wai-handlers

Some handlers split off from the main `wai` repo because they are less used and harder to build/test.
Haskell
2
star
21

install

Yesod source installer
Haskell
1
star