Contents

bjtj/swift-http-server

Swift HTTP Server

Swift version

$ swift --version
Swift version 4.2.3 (swift-4.2.3-RELEASE)
Target: x86_64-unknown-linux-gnu
$ swift --version
Swift version 5.5 (swift-5.5-RELEASE)
Target: x86_64-unknown-linux-gnu

Dependencies

  • BlueSocket: <https://github.com/IBM-Swift/BlueSocket>

Build, Test

swift build
swift test

How to use it?

Add it to dependency (package.swift)

dependencies: [
    .package(url: "https://github.com/bjtj/swift-http-server.git", from: "0.1.20"),
  ],

Import package into your code

import SwiftHttpServer

Example

let server = HttpServer(port: 0)

class GetHandler: HttpRequestHandler {

    var dumpBody: Bool = true

    func onHeaderCompleted(header: HttpHeader, request: HttpRequest,  response: HttpResponse) throws {
    }
    
    func onBodyCompleted(body: Data?, request: HttpRequest, response: HttpResponse) throws {
        response.status = .ok
        response.data = "Hello".data(using: .utf8)
    }
}

try server.route(pattern: "/", handler: GetHandler())
let queue = DispatchQueue.global(qos: .default)
queue.async {
    do {
        try server.run()
    } catch let error {
        print(error)
    }
}

Package Metadata

Repository: bjtj/swift-http-server

Stars: 0

Forks: 0

Open issues: 1

Default branch: master

Primary language: swift

License: Apache-2.0

README: README.md