• Stars
    star
    398
  • Rank 108,325 (Top 3 %)
  • Language
    Swift
  • License
    BSD 2-Clause "Sim...
  • Created almost 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Swift HTTP server using the pre-fork worker model

Curassow

Build Status

Curassow is a Swift Nest HTTP Server. It uses the pre-fork worker model and it's similar to Python's Gunicorn and Ruby's Unicorn.

It exposes a Nest-compatible interface for your application, allowing you to use Curassow with any Nest compatible web frameworks of your choice.

Documentation

Full documentation can be found on the Curassow website: https://curassow.fuller.li

Usage

To use Curassow, you will need to install it via the Swift Package Manager, you can add it to the list of dependencies in your Package.swift:

import PackageDescription

let package = Package(
  name: "HelloWorld",
  dependencies: [
    .Package(url: "https://github.com/kylef/Curassow.git", majorVersion: 0, minor: 6),
  ]
)

Afterwards you can place your web application implementation in Sources and add the runner inside main.swift which exposes a command line tool to run your web application:

import Curassow
import Inquiline


serve { request in
  return Response(.ok, contentType: "text/plain", body: "Hello World")
}

Then build and run your application:

$ swift build --configuration release

Example Application

You can find a hello world example application that uses Curassow.

License

Curassow is licensed under the BSD license. See LICENSE for more info.

More Repositories

1

Frank

Frank is a DSL for quickly writing web applications in Swift
Swift
373
star
2

WebLinking.swift

Swift implementation of web linking (RFC5988)
Swift
156
star
3

swim

Simple build system for the Swift language
Python
122
star
4

CardKit

Model structures for building playable card games in Swift
Swift
109
star
5

podenv

CocoaPods version manager
Shell
100
star
6

Curassow-example-helloworld

Example Swift web application that can be deployed to Heroku
Swift
69
star
7

Ploughman

Ploughman is a Swift tool for running automated tests written in a plain language.
Swift
62
star
8

KFData

Core Data done right for iOS 5+/OS X 10.7+
Objective-C
53
star
9

Expecta-ReactiveCocoa

Expecta matchers for ReactiveCocoa
Objective-C
43
star
10

hpack.swift

HTTP/2 Header Encoding in Swift
Swift
40
star
11

CGFloatType

Provides various methods and functions to deal with CGFloat on 64-bit systems (CGFLOAT_IS_DOUBLE).
Objective-C
38
star
12

fd

Swift file descriptor / socket library
Swift
34
star
13

Starship

A generic API client application for iOS using Hyperdrive.
Swift
28
star
14

Turnstone

Lightweight request routing for Nest
Swift
27
star
15

znc-contrib

A collection of third party modules for ZNC, an IRC bouncer
C++
23
star
16

Requests

Simple synchronous HTTP client in Swift
Swift
22
star
17

znc-bot

A python3 bot (znc module)
Python
21
star
18

spectre-build

Command line tool to build and run tests written using the Spectre Swift BDD testing framework
Swift
20
star
19

lithium

A set of applications for writing a Django website's, it includes a blog, a wiki, and many other useful applications.
Python
16
star
20

RxHyperdrive

RxSwift extensions for Hyperdrive, the generic Swift Web API client
Swift
16
star
21

wol

Small C application to wake a system via the lan
C
15
star
22

znc-xmpp

XMPP module for ZNC
C++
15
star
23

GoReactive

Go library for Functional Reactive Programming, a library for representing and consuming asyncronous data streams with Observables
Go
14
star
24

Mockingdrive

Testing framework for stubbing Hypermedia HTTP requests
Swift
12
star
25

learn-czech

Czech learning notes
11
star
26

BestKit

BestKit makes the Best Swift
Swift
11
star
27

zokket

zokket is an asynchronous socket networking library for python
Python
10
star
28

Frank-example

Example Swift web application using the Frank web framework
Swift
9
star
29

snippt

Easy to use paste site inspired by sprunge and dpaste.de
Python
9
star
30

jsonschema-test

A tool for writing and running tests against a given JSON Schema
Python
9
star
31

Etch

Etch, static website generating in Swift
Swift
8
star
32

Hyperplay

A playground for using Hyperdrive to communicate with a Hypermedia API.
Objective-C
8
star
33

Expecta-Comparison

The missing comparators for Expecta
Objective-C
7
star
34

zmb

A modular ruby-based IRC bot with a powerful but simple plugin interface
Ruby
6
star
35

result.go

Result is a go structure to represent a Result type. It can represent either a success or a failure
Go
6
star
36

bluepaste

API Blueprint paste service
Python
5
star
37

django-projects

django-projects is a Django web application for displaying documentation of a git project via sphinx. This works very much like djangoproject.com, but it is designed for multiple projects. See an example at: http://kylefuller.co.uk/projects/
Python
5
star
38

dnstk

Python DNS toolkit
Python
4
star
39

pyppp

PyPPP is a python implementation of Perfect Paper Passwords a single-use passcode system for multifactor authentication.
Python
4
star
40

lxc

C
3
star
41

geoffrey

Geoffrey is a IRC library written in C. It will eventually evolve into a IRC bot.
C
3
star
42

cod4-server-cfg

Example configuration for a cod4 server
2
star
43

ark

Kyle's Arch Repository
Shell
2
star
44

CommonCrypto

Swift
2
star
45

nginx-config

2
star
46

Refract.swift

A library for interacting with Refract elements.
Swift
2
star
47

repl.py

2
star
48

znc-arch

An arch package containing rc.d scripts for znc
Shell
2
star
49

spec-files

My repository of spec files for Solaris (OpenIndiana)
2
star
50

rack-mlog

rack-mlog is a rack middleware to provide statistics and request logging via a MongoDB collection.
Ruby
2
star
51

KFData.py

Code generator for KFData Core Data
Python
1
star
52

rivr.project

An example rivr project which works on heroku
Python
1
star
53

Podcast

CocoaPods as? Podcast
Ruby
1
star
54

demand-browserid

Python
1
star