<font size=2 face="sans-serif">There's been a lot of discussion around
the HTTP API spec originally created by Johannes Weiss with input of a
number of other people (particularly Helga Hess):</font>
<br><font size=2 face="sans-serif"> </font><a href="https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/000422.html"><font size=2 color=blue face="sans-serif">https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/000422.html</font></a>
<br>
<br><font size=2 face="sans-serif">Since then some work has been done by
Carl Brown and others on a prototype of a clean (not derived from existing
code) implementation of that API. You can find that prototype here:
</font><a href=https://github.com/carlbrown/HTTPSketch><font size=2 color=blue face="sans-serif">https://github.com/carlbrown/HTTPSketch</font></a>
<br>
<br><font size=2 face="sans-serif">The API itself is essentially implemented
in three files:</font>
<br><font size=2 face="sans-serif">HTTPRequest: </font><a href=https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPRequest.swift><font size=2 color=blue face="sans-serif">https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPRequest.swift</font></a>
<br><font size=2 face="sans-serif">HTTPResponse: </font><a href=https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPResponse.swift><font size=2 color=blue face="sans-serif">https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPResponse.swift</font></a>
<br>
<br><font size=2 face="sans-serif">HTTPCommon: </font><a href=https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPCommon.swift><font size=2 color=blue face="sans-serif">https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPCommon.swift</font></a>
<br>
<br><font size=2 face="sans-serif">The prototype has some dependencies
on the CHTTParser and BlueSocket libraries from IBM-Swift in order to have
working implementation, but we've attempted to abstract those away so that
they're easily replaced with another implementation - eventually the aim
is to move to standard implementations from the Server API project and
to utilise the secure transport implementation being worked on under the
Security stream.</font>
<br>
<br><font size=2 face="sans-serif">We're proposing to use this as the starting
point and move it into the swift-server org on GitHub. From there we can
then collaborate and iterate on improving/evolving the API surface and
the implementation through discussion on the mailing list and PRs.</font>
<br>
<br><font size=2 face="sans-serif">The hope is that having an independent
concrete implementation should make it much easier for us to iterate on
and experiment with changes to the API and implementation as can all see
how it affects a real implementation, including being able to assess performance
and memory footprint costs of alternative approaches, etc. </font>
<br>
<br><font size=2 face="sans-serif">Please take a look. If people are happy
to use this as an initial implementation of HTTP API spec that's been layed
out so far, we'll move it over to the swift-server org on GitHub. This
is by no means the final API or implementation - there's definitely lots
that still needs to be discussed. Once its on the swift-server org we'll
start looking at the API and implementation choices in-depth via the mailing
list and PRs.</font>
<br>
<br><font size=2 face="sans-serif">Chris<br>
Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU<br>
</font>