Awesome
Taylor
Disclaimer: Not actively working on it anymore. You can check out some alternatives
Swift 2.0 required. Working with Xcode 7.1.
Disclaimer: It is a work in progress, it may break. Use it at your own risk.
Taylor is a library which allows you to create web server applications in Swift
Status
At this moment, Taylor only supports GET, POST and PUT HTTP requests. Better documentation is on the way.
Hello World
import Taylor
let server = Taylor.Server()
server.get("/") { req, res in
res.bodyString = "Hello, world!"
return .Send
}
let port = 3002
do {
print("Starting server on port: \(port)")
try server.serveHTTP(port: port, forever: true)
} catch {
print("Server start failed \(error)")
}
More advanced usage instructions coming soon!
Playground
The easiest way to try out Taylor is using a playground.
For this, you need to have Carthage installed in your computer, is what it is used for fetching the dependencies.
$ git clone https://github.com/izqui/Taylor.git -b playground
$ cd taylor
$ sh setup.sh
And that's it, you should be good to go. Have fun!
Usage
You can use Taylor from the command line using CocoaPods Rome or Carthage as dependency managers.
Carthage
Create a Cartfile
:
github "izqui/taylor"
And then run:
$ carthage update
$ xcrun swift -F Carthage/Build/Mac yourfile.swift
CocoaPods Rome
Create a Podfile
:
platform :osx, '10.10'
plugin 'cocoapods-rome'
pod 'Taylor'
And then run:
$ pod install
$ xcrun swift -F Rome yourfile.swift
Credits to Ayaka Nonaka's Swift Summit talk for sharing this method for doing Scripting in Swift
Dependencies
Right now Taylor relies on an Swift library called SwiftSockets.
Development
For the development of the Taylor framework we use Carthage for managing dependencies.
To contribute to Taylor, clone the project on your local machine and run:
$ carthage bootstrap
Then you can open Taylor.xcodeproj
and start developing.
The reason there is a Mac app inside the project is for testing purposes given that you cannot have frameworks linked with a Command Line application in Xcode using Carthage. See here.