aws-lambda-haskell-runtime-wai: Run wai applications on AWS Lambda

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on GitHub at

[Skip to Readme]


Versions 1.0.0, 1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.0.1, 2.0.2
Change log
Dependencies aeson, aws-lambda-haskell-runtime (>=3.0.0), base (>=4.7 && <5), binary, bytestring, case-insensitive, http-types, iproute, network, text, unordered-containers, vault, wai [details]
License BSD-3-Clause
Copyright Eir Försäkring
Author Dobromir Nikolov
Category AWS
Home page
Bug tracker
Source repo head: git clone
Uploaded by dnikolovv at 2020-06-19T12:28:53Z



Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for aws-lambda-haskell-runtime-wai-1.0.0

[back to package description]

aws-lambda-haskell-runtime-wai Haskell CI

Quick start

  1. Set up your project to use AWS Lambda by following the instructions on the aws-lambda-haskell-runtime website.
  2. Use the waiHandler function from AWS.Lambda.Wai to convert your wai application to a handler. There are two ways to do this.
-- 1. Pass in the initializeApplicationFunction
-- this will call initializeApplication per each call
handler :: WaiHandler ()
handler = waiHandler initializeApplication

-- Wai application initialization logic
initializeApplication :: IO Application
initializeApplication = ...
-- 2. Store the Application inside your custom context and provide a getter function
-- this will initialize the application once per cold start and keep it alive while the lambda is warm
handler :: WaiHandler MyAppConfig
handler = waiHandler' getWaiApp

data MyAppConfig =
    { getWaiApp :: Application }