What is Swifter?
Tiny http server engine written in Swift programming language.
Branches
* stable
- lands on CocoaPods and others. Supports the latest non-beta Xcode and SPM. Stable.
* master
- stable branch plus experimental web-framework layer.
* 2.0
- next version of Swifter (async IO). Experimental.
How to start?
let server = HttpServer()
server["/hello"] = { .ok(.htmlBody("You asked for \($0)")) }
server.start()
How to load HTML by string?
let server = HttpServer()
server[path] = { request in
return HttpResponse.ok(.text("<html string>"))
}
server.start()
How to share files?
let server = HttpServer()
server["/desktop/:path"] = shareFilesFromDirectory("/Users/me/Desktop")
server.start()
How to redirect?
let server = HttpServer()
server["/redirect"] = { request in
return .movedPermanently("http://www.google.com")
}
server.start()
How to HTML ?
let server = HttpServer()
server["/my_html"] = scopes {
html {
body {
h1 { inner = "hello" }
}
}
}
server.start()
How to WebSockets ?
let server = HttpServer()
server["/websocket-echo"] = websocket(text: { session, text in
session.writeText(text)
}, binary: { session, binary in
session.writeBinary(binary)
})
server.start()
CocoaPods? Yes.
use_frameworks!
pod 'Swifter', '~> 1.5.0'
Carthage? Also yes.
github "httpswift/swifter" ~> 1.5.0
Swift Package Manager.
import PackageDescription
let package = Package(
name: "MyServer",
dependencies: [
.package(url: "https://github.com/httpswift/swifter.git", .upToNextMajor(from: "1.5.0"))
]
)
Docker.
docker run -d -p 9080:9080 -v `pwd`:/Swifter -w /Swifter --name Swifter swift bash -c "swift run"