Giter VIP home page Giter VIP logo

hairy's Introduction

Version badge Build badge

Hairy is a JSON REST API built in Haskell. It uses Scotty to create a WAI application served by the Warp web server. The Aeson library handles encoding and decoding JSON, while Persistent manages the PostgreSQL database. Hairy features an Hspec test suite and Criterion benchmarks.

The entire project is meant to be easy to build, understand, and use. It doesn't really do anything useful, but it shows how to do anything at all. Take a look at the literate source to see how it all works.

Requirements

Hairy works best with the latest Haskell Platform, but it also supports GHC 7.8 and 7.6. PostgreSQL 9.1 or later is also required.

Installation

Add it to your Cabal file:

library
  build-depends:
    hairy ==0.1.*

Or install it manually:

$ cabal update
$ cabal install hairy-0.1.3

This package uses Semantic Versioning.

Setup

First create a database user for Hairy.

$ createuser --createdb postgres

Then create databases for each environment.

$ psql --username postgres --command 'CREATE DATABASE hairy_development'
$ psql --username postgres --command 'CREATE DATABASE hairy_production'
$ psql --username postgres --command 'CREATE DATABASE hairy_test'

Then just start the server!

$ hairy
# => http://localhost:3000

Configuration

Hairy can be configured through environment variables.

To configure the environment, use the SCOTTY_ENV environment variable. Possible environments include Development, Production, and Test.

$ env SCOTTY_ENV=Production hairy

To configure the port, use the PORT environment variable.

$ env PORT=8080 hairy

To configure the database, use the DATABASE_URL environment variable.

$ env DATABASE_URL=postgres://postgres:postgres@localhost:5432/hairy_development hairy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.