A powerful Cocoa web framework and HTTP server for macOS, iOS and tvOS.

Version StatusPlatformCarthage compatibleMIT LicenseTwitterGitter

Criollo helps create fast standalone or embedded web apps that deliver content directly over HTTP or FastCGI. You can write code in Swift or Objective-C and you can use the Cocoa technologies you already know. It's as easy as this:

let server = CRHTTPServer()
server.get("/") { (req, res, next) in
 res.send("Hello world!")
}
server.startListening()

... and in Objective-C:

CRServer* server = [[CRHTTPServer alloc] init];
[server get:@"/" block:^(CRRequest *req, CRResponse *res, CRRouteCompletionBlock next) {
 [res send:@"Hello world!"];
}];
[server startListening];

Key Features

Criollo is designed with speed, security and flexibility in mind, that's why it comes with a few very useful features out of the box, thus allowing you to focus on the actual job your project needs to do, without having to jump through hoops in order to make it happen.

Getting Started

Head over to the GitHub Project Page, check out the examples. Hava a look at the Getting Started Guide to quickly get up and running.

For a more real-world example, check out this very website, made using Criollo (v1.0.1) and available for your cloning pleasure on GitHub.

How to Use

Criollo can easily be embedded as a web-server inside your macOS, iOS or tvOS app, should you be in need of such a feature, however it was designed to create standalone, long-lived daemon style apps.

It is fully  launchd compatible and replicates the lifecycle and behaviour of NSApplication, so that the learning curve should be as smooth as possible.

Why?

Criollo was created in order to take advantage of the truly awesome tools and APIs that macOS, iOS and tvOS provide and serve content produced with them over the web.

It incorporates an HTTP web server and a FastCGI application server that are used to deliver content. The server is built on Grand Central Dispatch and designed for speed.