/NWHTTPProtocol

An HTTP protocol implementation (an `NWProtocolFramer`) and a tiny HTTP server for Network.framework

Primary LanguageCApache License 2.0Apache-2.0

NWHTTPProtocol

Swift5 macOS iOS

An HTTP protocol parser (aka NWProtocolFramer) for the Apple Network.framework.

How it works is described in the ARI blog entry: Intro to Network.framework Servers.

Network.framework requires iOS 13+ / macOS 10.15+.

This is intentionally kept very simple and basic. E.g. it does not define Swift types for HTTP requests and the like, but puts the status/request/URI in plain Message metadata fields.

The protocol is just wrapping the (embedded) http_parser.c/h developed as part of the Node.js project.

NWHTTPServer

It also includes NWHTTPServer, a very simple HTTP server based on the NWHTTPProtocol.

Example:

let server = HTTPServer { request, response in
    print("Received:", request)
    try response.send("Hello!\n")
}
server.run()

Who

NWHTTPProtocol is brought to you by the Always Right Institute and ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.