on master help sign in
adding HCAR articles.
commit8c2d54860752b4253a7fef3d74cfe43ca1f91b57 authorKazu Yamamoto <kazu@iij.ad.jp> dateTue 12 Apr 2016, 17:27 (11 years ago) parent41e2b08
2 files changed+58
hcar-wai.tex+35 hcar-warp.tex+23
hcar-wai.texnew file+35
@@ -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}
hcar-warp.texnew file+23
@@ -0,0 +1,23 @@
1+% Warp-MW.tex
2+\begin{hcarentry}{Warp}
3+\label{warp}
4+\report{Michael Snoyman}%11/14
5+%\status{stable}
6+\makeheader
7+
8+Warp is a high performance, easy to deploy HTTP server backend for
9+WAI \cref{wai}. Since the last HCAR, Warp has followed WAI in its move from conduit to a lower level streaming data abstraction. We've additionally continued work on more optimizations, and improved support for power efficiency by using the auto-update package.
10+
11+Due to the combined use of ByteStrings, blaze-builder, conduit, and GHC's improved I/O manager, WAI+Warp has consistently proven to be Haskell's most performant web deployment option.
12+
13+Warp is actively used to serve up most of the users of WAI (and Yesod).
14+
15+``Warp: A Haskell Web Server'' by Michael Snoyman was published
16+in the May/June 2011 issue of IEEE Internet Computing:
17+\begin{compactitem}
18+\item
19+ Issue page: \url{http://www.computer.org/portal/web/csdl/abs/mags/ic/2011/03/mic201103toc.htm}
20+\item
21+ PDF: \url{http://steve.vinoski.net/pdf/IC-Warp\_a\_Haskell\_Web\_Server.pdf}
22+\end{compactitem}
23+\end{hcarentry}