What is Perfect?

Perfect is a framework for developing web and other REST services using Apple’s open source Swift programming language. Its primary focus is on facilitating mobile apps, which require backend server connections, allowing you to use Swift for both client-facing and server-side development. It’s the ideal backbone for building cloud and mobile technologies, and for web and cross-platform applications. Developers can now write less code and work in the powerful, modern, and elegant Swift language for all of their programming needs.

Perfect operates using either a standalone HTTP server or through FastCGI, but it is flexible enough to be attached to the server of your choice, or to a custom server. It provides a system for loading Swift-based modules at startup, and for interfacing those modules with its request/response objects or to the built-in mustache template processing system.

Perfect runs on a high-performance, completely asynchronous networking engine with the goal of providing a scalable option for internet services. It supports SSL out-of-the box, and a suite of tools commonly required by internet servers such as WebSockets and iOS push notifications.

Perfect is the world’s first freely available toolkit for server-side Swift development. It was made publicly available in November 2015, 10 days before Apple officially made Swift open source on December 5, 2015. Version 2.0 of Perfect was released on September 8, 2016, to coincide with Apple's release of Swift 3.0. Find out more about Perfect 2.0.

The evolution of Perfect owes much to another programming language formerly owned by Apple called Lasso. Thus, Perfect represents about 20 years of server-side language development knowledge and codebase.

What software license is Perfect available under?

Perfect is free to use, and it is available under the Apache License, version 2.0 (ASLv2). That means all of the source code, including the code for a new package manager, is available to edit and compile. Any programs or apps built with Swift can be created without attribution.

What is Swift?

Swift is Apple’s general-purpose programming language for iOS, OS X, tvOS, watchOS, and Linux development. It is designed to be more concise and resilient to erroneous code. Originally a proprietary language, it was introduced at Apple’s Worldwide Developers Conference in 2014, and it was made open source and available under the Apache License v2 in December 2015.

How is Perfect different from other backend development toolkits?

Perfect utilizes one single programming language, Swift. It removes the need for programmers to code in multiple languages for both client-side and server-side infrastructures. This all-in-one, flexible functionality will save them a significant amount of time and money, and reduce the number of errors and bugs in the programs and applications they create.

How can someone get access to Perfect?

Perfect can be downloaded for free through GitHub.

Who created Perfect?

PerfectlySoft Inc. introduced the Perfect server-side Swift development toolset in November 2015. Headquartered a short drive north of the City of Toronto in Newmarket, Ontario, Canada, PerfectlySoft provides developers with high-performance, stable tools, and support to complete their iOS-, OS X-, and Linux-based projects efficiently and cost-effectively using only the Swift programming language.

How popular is the Swift programming language with the global developer community?

According to the respondents to Stack Overflow’s “2015 Developer Survey”, Swift is the “most loved” programming language.

Is Perfect suitable to use in enterprise environments?

Yes. Perfect is the ideal solution for server-side Swift development for businesses of all sizes and in all industries. It is a stable, high-performance toolset. It can be used to develop mobile apps, cloud- and web-based apps, games, and apps for wearable technology products.

On what operating systems does Perfect run?

The Perfect server-side Swift development toolkit runs natively in iOS, OS X, and Linux environments.

Can Perfect be used for server-side development in a cloud environment?

Yes. The Perfect server-side toolkit is an excellent framework to complement and use in cloud-based Swift runtime development projects for building enterprise and mobile applications.

Perfect v1.0 buildpacks are available for the Heroku cloud platform and Amazon Web Services’ platform-as-a-service. Additionally, there is a version of Perfect that runs on Ubuntu Linux available on Docker. Please see our Deployment Options page for links and more information.

Are there tutorials or examples I can reference?

Yes. There are several examples and tutorials that have been built by developers using Perfect, which you can access from here. As more tutorials and examples are created, we will update this page.

I’m having difficulty using Perfect. Where can I get help?

If you require assistance accessing or deploying Perfect, or have questions about using Perfect, please contact us directly.

I am a journalist. I want to schedule an interview to speak to a Perfect spokesperson. Who should I contact?

Please direct all media inquiries and interview requests to Liam Lahey, PerfectlySoft, media@perfect.org or +1 (647) 823-1944, or to Tannis Baldock, H+K Strategies, tannis.baldock@hkstrategies.com or +1 (415) 281-7135.