Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/izqui/Taylor

A lightweight library for writing HTTP web servers with Swift
https://github.com/izqui/Taylor

Last synced: 3 months ago
JSON representation

A lightweight library for writing HTTP web servers with Swift

Awesome Lists containing this project

README

        

# Taylor [![Version](https://img.shields.io/cocoapods/v/Taylor.svg?style=flat)](http://cocoapods.org/pods/Taylor) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Slack Status](https://taylor-framework.herokuapp.com/badge.svg)](https://taylor-framework.herokuapp.com)

### Disclaimer: Not actively working on it anymore. You can check out [some](https://github.com/qutheory/vapor) [alternatives](https://github.com/IBM-Swift/Kitura)

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](https://developer.apple.com/swift/)

## Status
At this moment, Taylor only supports GET, POST and PUT HTTP requests. Better documentation is on the way.

## Hello World

```swift

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.

```sh
$ 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](https://github.com/neonichu/Rome) or [Carthage](https://github.com/Carthage/Carthage) as dependency managers.

### Carthage
Create a `Cartfile`:

```
github "izqui/taylor"
```

And then run:

```sh
$ 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:

```sh
$ pod install
$ xcrun swift -F Rome yourfile.swift
```

Credits to [Ayaka Nonaka](https://twitter.com/ayanonagon)'s [Swift Summit](http://swiftsummit.com) talk for sharing this method for doing Scripting in Swift

## Dependencies
Right now Taylor relies on an Swift library called [SwiftSockets](https://github.com/AlwaysRightInstitute/SwiftSockets/).

## Development
Join our Slack [![Slack Status](https://taylor-framework.herokuapp.com/badge.svg)](https://taylor-framework.herokuapp.com)

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:

```sh
$ 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](https://github.com/Carthage/Carthage/issues/287).

## Inspiration
- [Go's Martini](https://github.com/go-martini/martini)
- [Barista](https://github.com/SteveStreza/barista)