wai-cli alternatives and similar packages
Based on the "wai" category.
Alternatively, view wai-cli alternatives based on common mentions on social networks and blogs.
-
wai-middleware-auth
Authentication middleware that secures WAI application -
wai-middleware-static
WAI middleware that intercepts requests to static files and serves them if they exist. -
wai-middleware-throttle
WAI Request Throttling Middleware -
wai-middleware-metrics
WAI middleware that collects requests metrics -
wai-middleware-rollbar
Middleware that communicates to Rollbar. -
wai-middleware-crowd
Middleware and utilities for using Atlassian Crowd authentication -
wai-session-postgresql
WAI Session that keeps its data in a PostgreSQL database -
wai-session-clientsession
Session store based on clientsession -
wai-middleware-hmac
WAI HMAC Authentication Middleware and Client -
wai-session-tokyocabinet
Session store based on Tokyo Cabinet -
wai-middleware-preprocessor
WAI middleware for static file preprocessors -
wai-digestive-functors
Helpers to bind digestive-functors onto wai requests -
wai-middleware-headers
addHeaders and cors for Haskell's Network.Wai -
wai-middleware-caching
WAI Middleware to cache (contains generic, LRUCache and Redis Cache backend) -
wai-middleware-delegate
A WAI middleware that enables proxying WAI requests to another server. -
wai-middleware-static-embedded
Serve static files embedded in your executable as a wai middleware. -
wai-middleware-static-caching
WAI middleware that intercepts requests to static files and serves them if they exist. -
wai-middleware-travisci
WAI middleware for authenticating webhook payloads from Travis CI -
wai-middleware-slack-verify
WAI Slack request verification middleware -
wai-handler-snap
Web Application Interface handler using snap-server. (deprecated)
Build time-series-based applications quickly and at scale.
Do you think we are missing an alternative of wai-cli or a related project?
README
wai-cli

A command line runner for Wai apps (using Warp) with support for:
--protocol http --port 8000
TCP sockets--protocol unix --socket /var/run/app/sock
UNIX domain sockets--protocol cgi
running as a CGI app (the original serverless lambda functions from the 90s)--protocol fastcgi
running as a FastCGI app (OPTIONAL! You need to build with thefastcgi
cabal flag and you need to havelibfcgi
(e.g.fcgi-devkit
package on FreeBSD) installed)--protocol activate
socket activation (systemd-compatible, but not restricted to systemd in any way. see soad for an interesting use of (de)activation!)--protocol (http+tls|unix+tls|activate+tls) --tlskey key.pem --tlscert cert.pem
TLS (can be turned off with a cabal flag to avoid compiling the TLS library)--graceful (none|serve-normally|serve-503)
graceful shutdown (on TERM signal)--devlogging
development logging (fromwai-extra
)- printing a pretty and colorful run message (e.g.
Running on http port 3000 with 4 CPUs
) (you can replace it with your own, or with nothing)
Extracted from sweetroll and microformats2-parser's demo web app.
Now used in the magicbane framework (which was also extracted from sweetroll).
Usage
Add a dependency on wai-cli
and write something like this:
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
import Network.Wai.Cli
import Data.Monoid (mconcat)
app = scottyApp $ do
get "/:word" $ do
beam <- param "word"
html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]
main = defWaiMain =<< app
Want to use command line args for your application-specific settings? Don't. Use environment variables instead. Possibly with dotenv to load some of them from a file. envy is a really awesome way to read them.
License
This is free and unencumbered software released into the public domain.
For more information, please refer to the UNLICENSE
file or unlicense.org.
*Note that all licence references and agreements mentioned in the wai-cli README section above
are relevant to that project's source code only.