/Perfect

Server-side Swift. The Perfect library, application server, connectors and example apps.

Primary LanguageSwiftGNU Affero General Public License v3.0AGPL-3.0

Perfect

Perfect logo

Swift 2.2 Platforms OS X | iOS | Linux License AGPL Docs Issues Donate Twitter Join the chat at https://gitter.im/PerfectlySoft/Perfect

Perfect now runs on Linux! Perfect now builds and runs on Linux with the open source release of Swift. We've currently been working only with Ubuntu 15.10. Consult the readmes for the individual components for build instructions.

Perfect is an application server which provides a framework for developing web and other REST services in the Swift programming language. Its primary focus is on facilitating mobile apps which require backend server software. It enables you to use one language for both front and back ends.

Perfect operates using either its own stand-alone HTTP server or through FastCGI with Apache 2.4. It provides a system for loading your own Swift based modules at startup and for interfacing those modules with its built-in mustache template processing system.

Perfect consists of the following components:

  • PerfectLib - Framework components and utilities for client and server.
  • Perfect Server - Backend server supporting FastCGI or stand-alone HTTP.
    • Perfect Server FastCGI - Server process which accepts connections over FastCGI.
    • Perfect Server HTTP - Stand-alone HTTP server.
    • Perfect Server HTTP App - Development focused stand-alone HTTP server OS X app.
  • Connectors - Server-side connectivity.
    • mod_perfect - FastCGI connectivity for Apache 2.4.
    • MySQL - Provides connectivity for MySQL databases.
    • PostgreSQL - Provides connectivity for PostgreSQL databases.
    • MongoDB - Provides connectivity for MongoDB databases.
  • Examples - A set of examples which show how to utilize Perfect.
    • Mobile iOS Examples
    • Web Site Examples
    • Game Examples (coming soon!)

Getting Started

Check the README in the Examples directory for further instructions.

More Information

For more information on the Perfect project, please visit perfect.org.