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.
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()
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.