A powerful Cocoa based web application framework
 for macOS and iOS

Version StatusPlatformMIT LicenseTwitter

Criollo helps create fast standalone web apps that deliver content directly over HTTP or FastCGI. You can write code in Swift or Objective-C, using the technologies you are already familiar with. It's as easy as this:

let server = CRHTTPServer()
server.get("/") { (request, response, completionHandler) in
  response.send("Hello world!")

... and in Objective-C:

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

Getting Started

Head over to the GitHub Project Page, check out the Getting Started Guide and the Criollo Wiki.

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

How to Use

Criollo can easily be embedded as a web-server inside your macOS or iOS 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.


Criollo was created in order to take advantage of the truly awesome tools and APIs that macOS and iOS 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.