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(.html("You asked for \($0)")) }
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({ (session, text) in
session.writeText(text)
}, { (session, binary) in
session.writeBinary(binary)
})
server.start()
CocoaPods? Yes.
# Use version >= 1.4.0 (sudo gem install cocoapods)
use_frameworks!
pod 'Swifter', '~> 1.3.3'
Carthage? Also yes.
# Use version >= 0.18 (https://github.com/Carthage/Carthage/releases/tag/0.18)
github "glock45/swifter" == 1.4.0
Swift Package Manager.
import PackageDescription
let package = Package(
name: "MyServer",
dependencies: [
.package(url: "https://github.com/httpswift/swifter.git", .upToNextMajor(from: "1.4.0"))
]
)
Docker.
docker run -d -p 9080:9080 -v `pwd`:/Swifter -w /Swifter --name Swifter swift bash -c "swift run"