<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Courier New";
        panose-1:2 7 3 9 2 2 5 2 4 4;}
@font-face
        {font-family:"MS 明朝";}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:Calibri;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Courier New";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Courier New";}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:Calibri;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText"><span style="font-size:10.0pt">I would like to provide some additional detail to the discussion on November 4 (which I missed since I joined recently).<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">The team pointed out this thread in Kitura which I initially opened:<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><a href="https://github.com/IBM-Swift/Kitura-net/issues/52">https://github.com/IBM-Swift/Kitura-net/issues/52</a><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Here is the referenced Swift http_parser project which I initially ported as a thought experiment.&nbsp; The goals, API and performance are described in the readme.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><a href="https://github.com/smithmicro/HTTPParser">https://github.com/smithmicro/HTTPParser</a><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Michael Gottesman from Apple (@gottesmm) contacted me 2 weeks ago to see if we could add the project into the Swift Benchmark Suite.&nbsp; See the bottom of this PR for the request:<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><a href="https://github.com/IBM-Swift/Kitura-net/pull/55">https://github.com/IBM-Swift/Kitura-net/pull/55</a><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Michael and I approached the Node.js Foundation to see if they were willing to dual license http_parser under Apache 2 so it would be compatible with the Swift license.&nbsp; Here is that discussion, but in
 summary, a dual license is not realistic.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><a href="https://github.com/nodejs/http-parser/issues/344">https://github.com/nodejs/http-parser/issues/344</a><o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">So, a http_parser Swift port:<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">- Would not have the proper license to be included in Swift<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">- Does not take full advantage of Swift<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">- Has the issues previously pointed out (UnsafePointers, asserts, throws simulating gotos)<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">- Does, however, demonstrate a Swift HTTP parser performance of 500K requests per second<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Looking forward to meeting everyone on our call tomorrow.&nbsp; Hopefully this detail was helpful.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Dave Sperling<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-size:10.0pt">Smith Micro<o:p></o:p></span></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>