[swift-server-dev] HTTP Parser
Helge Heß
me at helgehess.eu
Sun Nov 20 12:08:08 CST 2016
Hi Dave,
thanks for your post, this detail is indeed quite helpful.
I don’t think anyone seriously suggested using a Swift port of the http_parser but instead just the upstream C one. But it sounds like MIT licensed code can’t be used as part of the effort, maybe that should be added the the front-page of the effort.
I assume it is not a huge issue though as a libhttp_parser can be shipped separately from Swift itself, similar to what you would do for OpenSSL etc (and what is already being done with libcurl on Linux).
In any case: Whatever is decided, it at least establishes a performance characteristic, I think any replacement should accomplish a comparable one - preferably faster of course :-)
hh
> On 20 Nov 2016, at 16:58, David Sperling via swift-server-dev <swift-server-dev at swift.org> wrote:
>
> I would like to provide some additional detail to the discussion on November 4 (which I missed since I joined recently).
>
> The team pointed out this thread in Kitura which I initially opened:
> https://github.com/IBM-Swift/Kitura-net/issues/52
>
> Here is the referenced Swift http_parser project which I initially ported as a thought experiment. The goals, API and performance are described in the readme.
> https://github.com/smithmicro/HTTPParser
>
> Michael Gottesman from Apple (@gottesmm) contacted me 2 weeks ago to see if we could add the project into the Swift Benchmark Suite. See the bottom of this PR for the request:
> https://github.com/IBM-Swift/Kitura-net/pull/55
>
> 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. Here is that discussion, but in summary, a dual license is not realistic.
> https://github.com/nodejs/http-parser/issues/344
>
> So, a http_parser Swift port:
> - Would not have the proper license to be included in Swift
> - Does not take full advantage of Swift
> - Has the issues previously pointed out (UnsafePointers, asserts, throws simulating gotos)
> - Does, however, demonstrate a Swift HTTP parser performance of 500K requests per second
>
>
> Looking forward to meeting everyone on our call tomorrow. Hopefully this detail was helpful.
>
>
> Dave Sperling
> Smith Micro
More information about the swift-server-dev
mailing list