Difference between revisions of "Web/Cloud"

From HaskellWiki
< Web
Jump to navigation Jump to search
(14 intermediate revisions by the same user not shown)
Line 7: Line 7:
   
 
{| class="wikitable"
 
{| class="wikitable"
! License:
 
| GPL3
 
|-
 
 
! GHC version:
 
! GHC version:
| 7.6.3
+
| 7.6.3 / 7.8.2
 
|-
 
|-
 
! Author:
 
! Author:
Line 23: Line 20:
 
|}
 
|}
   
The cartridge is built in several flavours, with different pre-installed packages:
+
The cartridge comes in several flavours, with just the network package (GHC 7.8.2) or a pre-installed framework (GHC 7.6.3 *):
   
 
{| class="wikitable"
 
{| class="wikitable"
! Packages || Cartridge || Installation Link
+
! Framework || Cartridge || QuickStart || Deploy
 
|-
 
|-
  +
| network
| networking
 
| [https://haskell-accursoft.rhcloud.com/build/manifest/master manifest]
+
| [http://www.accursoft.com/cartridges/network.yml manifest]
  +
| [https://www.openshift.com/quickstarts/haskell quickstart]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fmaster create application]
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fnetwork.yml deploy]
 
|-
 
|-
  +
| Yesod
| yesod-platform esqueleto happy
 
| [https://haskell-accursoft.rhcloud.com/build/manifest/yesod manifest]
+
| [http://www.accursoft.com/cartridges/yesod.yml manifest]
  +
| [https://www.openshift.com/quickstarts/yesod quickstart]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fyesod create application]
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fyesod.yml deploy]
 
|-
 
|-
| snap
+
| Snap
| [https://haskell-accursoft.rhcloud.com/build/manifest/snap manifest]
+
| [http://www.accursoft.com/cartridges/snap.yml manifest]
  +
| [https://www.openshift.com/quickstarts/snap quickstart]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fsnap create application]
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fsnap.yml deploy]
 
|-
 
|-
  +
| Happstack
| happstack-foundation hsx2x happy
 
| [https://haskell-accursoft.rhcloud.com/build/manifest/happstack manifest]
+
| [http://www.accursoft.com/cartridges/happstack.yml manifest]
  +
| [https://www.openshift.com/quickstarts/happstack quickstart]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fhappstack create application]
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fhappstack.yml deploy]
 
|-
 
|-
 
| MFlow
 
| MFlow
| [https://haskell-accursoft.rhcloud.com/build/manifest/mflow manifest]
+
| [http://www.accursoft.com/cartridges/mflow.yml manifest]
  +
| [https://www.openshift.com/quickstarts/mflow quickstart]
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fhaskell-accursoft.rhcloud.com%2Fbuild%2Fmanifest%2Fmflow create application]
+
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fmflow.yml deploy]
 
|-
  +
| Scotty
  +
| [http://www.accursoft.com/cartridges/scotty.yml manifest]
  +
| [https://www.openshift.com/quickstarts/scotty quickstart]
  +
| [https://openshift.redhat.com/app/console/application_type/custom?cartridges%5B%5D=http%3A%2F%2Fwww.accursoft.com%2Fcartridges%2Fscotty.yml deploy]
 
|}
 
|}
   
  +
<small>* GHC 7.8 requires dynamic libraries for Template Haskell and Quasiquoting. OpenShift gears default to a 1Gb quota, which is insufficient for a full web framework with two copies (dynamic and static) of every library.</small>
If one of the application links isn't working, check [https://haskell-accursoft.rhcloud.com/ which builds are available]. (Snap is unavailable pending an [https://github.com/meteficha/skein/pull/8 update] to skein.)
 
   
 
== Heroku ==
 
== Heroku ==
Line 71: Line 78:
 
* [http://docs.dotcloud.com/services/custom/ dotCloud]
 
* [http://docs.dotcloud.com/services/custom/ dotCloud]
 
* [https://www.stormcloudsystems.com/ Storm Cloud Systems]
 
* [https://www.stormcloudsystems.com/ Storm Cloud Systems]
  +
* [https://www.fpcomplete.com/ FP Haskell Center]

Revision as of 13:01, 30 April 2014

Haskell Web Development

Software:
Servers - Libraries - Frameworks
Deploy - Cloud
Interfaces to frameworks
Databases and Persistence
Testing and Verification
Content Management

Community & Research:
Forums and Discussion
Literature (research, talks and blogs)
Existing Haskell web applications
Ongoing projects and ideas

PaaS (platform as a service) cloud providers generally limit you to a fixed technology stack. However, OpenShift and Heroku allow third-party extensions, which can be used to support Haskell.

OpenShift

GHC version: 7.6.3 / 7.8.2
Author: Gideon Sireling
Home page: https://github.com/accursoft/Haskell-Cloud
Documentation: https://github.com/accursoft/Haskell-Cloud/blob/master/README.md

The cartridge comes in several flavours, with just the network package (GHC 7.8.2) or a pre-installed framework (GHC 7.6.3 *):

Framework Cartridge QuickStart Deploy
network manifest quickstart deploy
Yesod manifest quickstart deploy
Snap manifest quickstart deploy
Happstack manifest quickstart deploy
MFlow manifest quickstart deploy
Scotty manifest quickstart deploy

* GHC 7.8 requires dynamic libraries for Template Haskell and Quasiquoting. OpenShift gears default to a 1Gb quota, which is insufficient for a full web framework with two copies (dynamic and static) of every library.

Heroku

GHC version: 7.4.1
Author: Brian McKenna
Home page: https://github.com/puffnfresh/heroku-buildpack-haskell
Documentation: https://github.com/puffnfresh/heroku-buildpack-haskell/blob/master/README.md

See also