Welcome to OpenKitten

OpenKitten is a Server Side Swift ecosystem. It contains many libraries for creating backends and full stack swift applications.

We're active on Slack and Github.

The libraries

The libraries can be categorized into 3 categories.

HTTP

Leopard is a high performance web framework based on Lynx.

Puma is a Lynx based HTTP client. Designed to work seamlessly with Leopard .

Lynx is the HTTP core, containing an HTTP server and all basic features of HTTP messages. It relies on Schrodinger to provide clean asynchronous data flows.

MongoDB

MongoKitten is the fastest MongoDB driver. It's also the only pure-swift MongoDB driver. It relies heavily upon BSON and assumes familiarity with BSON.

Meow is a codable ORM based on MongoKitten. It's flexible and boilerplate-free, allowing your models to stay clean.

Utility

Cheetah is a JSON library that supports Swift 4 codables. In addition to that, it shares an API that fits right in with Swift and other OpenKitten libraries.

Ocelot is a JWT library that also supports codables for decoding JWTs. It leans on Cheetah for JSON data.

Schrodinger is the promise library, used for asynchronous data flow.

MailKitten is used for sending emails over SMTP.

Third party

We're happy to work with the community and assist writing good libraries. Some problems are already solved by a third party without much room for improvement. These are such libraries.

The following libraries are not supported by us directly, although we advice using them if they're useful to you.

Jobs is a minimalistic job system in Swift. It doesn't store jobs on application exit/restart.

Requirements

These projects require the Swift 4 07-20 snapshot or the Xcode 9 build for macOS.

Linux - Ubuntu 16.04

Linux - Ubuntu 14.04

macOS - Manual download

Or just install the latest Xcode 9 beta (beta 4 or greater).

Linux

For SSL, Linux requires the installation of libssl-dev, openssl and Swift 4.