@@ -0,0 +1,35 @@
1+% WAI-MW.tex
2+\begin{hcarentry}{WAI}
3+\label{wai}
4+\report{Michael Snoyman}%11/14
5+\participants{Greg Weber}
6+\status{stable}
7+\makeheader
8+
9+The Web Application Interface (WAI) is an interface between Haskell web
10+applications and Haskell web servers. By targeting the WAI, a web framework or web application gets access to multiple deployment platforms. Platforms in use include CGI, the Warp web server, and desktop webkit.
11+
12+WAI is also a platform for re-using code between web applications and web frameworks through WAI middleware and WAI applications. WAI middleware can inspect and transform a request, for example by automatically gzipping a response or logging a request. The Yesod~\cref{yesod} web framework provides the ability to embed arbitrary WAI applications as subsites, making them a part of a larger web application.
13+
14+By targeting WAI, every web framework can share WAI code instead of wasting
15+effort re-implementing the same functionality. There are also some new web
16+frameworks that take a completely different approach to web development that
17+use WAI, such as webwire (FRP), MFlow (continuation-based) and dingo (GUI).
18+The Scotty~\cref{scotty} web framework also continues to be developed, and
19+provides a lighter-weight alternative to Yesod. Other frameworks- whether
20+existing or newcomers- are welcome to take advantage of the existing WAI
21+architecture to focus on the more innovative features of web development.
22+
23+WAI applications can send a response themselves. For example, wai-app-static is used by Yesod to serve static files. However, one does not need to use a web framework, but can simply build a web application using the WAI interface alone. The Hoogle %\cref{hoogle}
24+web service targets WAI directly.
25+
26+Since the last HCAR, WAI has successfully released version 3.0, which removes dependency on any specific streaming data framework. A separate wai-conduit package provides conduit bindings, and such bindings can easily be provided for other streaming data frameworks.
27+
28+The WAI community continues to grow, with new applications and web frameworks continuing to be added. We've recently started a new mailing list to discuss WAI related topics. Interested parties are strongly encouraged to join in!
29+
30+\FurtherReading
31+\begin{compactitem}
32+\item\url{http://www.yesodweb.com/book/wai}
33+\item\url{https://groups.google.com/d/forum/haskell-wai}
34+\end{compactitem}
35+\end{hcarentry}