• Stars
    star
    13,837
  • Rank 2,218 (Top 0.05 %)
  • Language
    Swift
  • License
    Apache License 2.0
  • Created about 9 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)

Perfect: Server-Side Swift 简体中文

Get Involed with Perfect!

Swift 5.2 Platforms macOS | Linux License Apache

Perfect: Server-Side Swift

Perfect is a complete and powerful toolbox, framework, and application server for Linux, iOS, and macOS (OS X). It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.

Perfect includes a suite of tools that will enhance your productivity as you use only one programming language to build your apps: Swift. The global development community’s most dynamic and popular server-side toolbox and framework available today, Perfect is the backbone for many live web applications and apps available on iTunes.

This guide is designed for developers at all levels of experience to get Perfect up and running quickly.

Working with Perfect

Compatibility with Swift

The master branch of this project currently compiles with Xcode 11 or the Swift 5 toolchain on Ubuntu.

Getting Started

Access a tutorial to help you get started using Perfect quickly. It includes straightforward examples of how Perfect can be used.

Documentation

Get started working with Perfect, deploy your apps, and find more detailed help by consulting our reference library.

We welcome contributions to Perfect’s documentation. If you spot a typo, bug, or other errata, or have additions or suggestions to recommend, please create a pull request or issue in Github.

Community

We all need a little help now and then. If you do too, don’t be shy, ask us or the friendly and supportive Perfect community:

Slack | Twitter

Deployment

Your Perfect project can be deployed to any Swift compatible Linux server. We provide a macOS desktop application, Perfect Assistant, to help with AWS and Google Cloud deployments. Additional deployment options are in the works.

Samples, Examples, and Tutorials

Our library continues to grow as members of the Swift-Perfect development community have shared many samples and examples of their projects in Perfect. Examples include:

There are many more examples you can explore. Please share yours!

Core Perfect Modules

Perfect project is divided into several repositories to make it easy for you to find, download, and install the components you need:

  • Perfect – This repository contains the core PerfectLib and will continue to be the main landing point for the project
  • Perfect Docs – Contains all API reference-related material

Examples

  • Perfect Template - A simple starter project which compiles with the Swift Package Manager into a standalone executable HTTP server. This repository is ideal for starting a Perfect-based project
  • Perfect Examples - All the Perfect example projects

DataSources

Utilities

More about Perfect

Perfect operates using either a standalone HTTP server, HTTPS server, or through FastCGI server. It provides a system for loading your Swift-based modules at startup, for interfacing those modules with its request/response objects, or to the built-in Mustache template processing system.

Perfect is built on a completely asynchronous, high-performance networking engine to provide a scalable option for internet services. It supports Secure Sockets Layer (SSL) encryption, and it features a suite of tools commonly required by internet servers such as WebSockets and iOS push notifications, but you are not limited to those options.

Feel free to use your favourite JSON or templating systems, etc.

Join and Contribute to the Community

The Swift-Perfect developer community is vital to improving Perfect and supporting one another.  

You can help other developers by sharing your expertise and tips, as well as learn from others, by joining the Perfect Slack channel. Contributions of all kinds are welcome: reporting issues, updating documentation, fixing bugs, building examples, sharing projects, and any other tips that may help the Swift-Perfect community.

If you would like to share your example project, tutorial, or video, please share the URL of your work on GitHub and Twitter, and the Perfect team will highlight it to the community.

Code of Conduct

The Perfect team welcomes people of all ethnicities, nationalities, ages, gender, disability, levels of experience, and religious beliefs to use and contribute to the Perfect project. We pledge to foster and enforce a harassment-free environment of openness, respect, and cooperation for everyone in all project and public spaces online or offline.

Please report any behaviour that violates our Code of Conduct to [email protected]. The Perfect team is committed to enforcing this Code of Conduct to ensure everyone who wishes to use, contribute to, and comment on the Perfect project may do so freely and openly and without fear of reprisal.

We will investigate all complaints of unacceptable or abusive behaviour or comments expediently, and we will maintain the confidentiality of the person who reports any perceived infraction or wrongdoing to us. We will not tolerate any form of direct or indirect harassment or discrimination within the Swift-Perfect community, and will take appropriate, fair, and corrective action to any instance of inappropriate behaviour.

The Perfect team maintains the right to remove, edit, or reject any comments, code, edits, or issues that do not align with our Code of Conduct.

More Repositories

1

PerfectDocs

Reference and documentation for Perfect (Server-side Swift). Perfect (支持服务器端Swift语言的软件函数库)使用文档和参考手册.
HTML
567
star
2

PerfectTemplate

Empty Perfect Starter Project.
Swift
222
star
3

Perfect-TensorFlow

TensorFlow C API Class Wrapper in Server Side Swift.
Swift
168
star
4

Perfect-MySQL

A stand-alone Swift wrapper around the MySQL client library, enabling access to MySQL servers.
Swift
128
star
5

Perfect-Notifications

Apple Push Notifications (APNs) Server-Side library.
Swift
115
star
6

Perfect-HTTPServer

HTTP server for Perfect.
Swift
108
star
7

Perfect-CRUD

CRUD is an object-relational mapping (ORM) system for Swift 4+.
Swift
63
star
8

Perfect-Python

An expressway to import Python 2.7 modules into Server Side Swift
Swift
62
star
9

Perfect-PostgreSQL

A stand-alone Swift wrapper around the libpq client library, enabling access to PostgreSQL servers.
Swift
54
star
10

Perfect-MongoDB

A stand-alone Swift wrapper around the mongo-c client library, enabling access to MongoDB servers.
Swift
52
star
11

Perfect-SQLite

A stand-alone Swift wrapper around the SQLite 3 client library.
Swift
49
star
12

Perfect-CURL

cURL support for Perfect.
Swift
41
star
13

Perfect-Markdown

A solution to convert markdown text into html presentation in Swift, based on GerHobbelt's "upskirt" project.
Swift
41
star
14

Perfect-Heroku-Buildpack

Swift + Perfect Buildpack for Heroku
Shell
37
star
15

Perfect-Ubuntu

Install Swift and Perfect dependencies into an Ubuntu 16.04 system.
Shell
35
star
16

Perfect-FileMaker

A stand-alone Swift wrapper around the FileMaker XML Web publishing interface, enabling access to FileMaker servers.
Swift
34
star
17

Perfect-HTTP

Base HTTP Support for Perfect.
Swift
31
star
18

Perfect-Crypto

Cryptographic Operations
Swift
28
star
19

Perfect-Redis

A Swift client for Redis.
Swift
28
star
20

Perfect-LDAP

A simple Swift class wrapper of OpenLDAP.
Swift
27
star
21

Perfect-Net

Core asynchronous networking package used in Perfect. Includes support for TCP, SSL, UNIX socket files and IO event handling.
Swift
27
star
22

Perfect-Kafka

An Express Swift Client of Apache Kafka 0.8, the Stream Processing Platform
Swift
24
star
23

Perfect-Mustache

Mustache template support for Perfect.
Swift
24
star
24

Perfect-WebSockets

WebSockets support for Perfect.
Swift
23
star
25

Perfect-SysInfo

This project provides a Swift library to monitor system performance in essential metrics.
Swift
23
star
26

Perfect-Mosquitto

A Swift Class Wrapper of Perfect-libMosquitto, the MQTT client
Swift
23
star
27

Perfect-SMTP

SMTP Client for Perfect.
Swift
22
star
28

Perfect-Zip

Perfect Zip compression utility.
Swift
21
star
29

PerfectAppTemplate

Provides a structure for a larger project to grow into. It contains an HTTP Server config that loads from pre-separated Filters and Routes, a JSON config loader, and directories into which you can organize your handlers, objects and utility functions.
Swift
21
star
30

Perfect-NIO

Perfect 4 NIO
Swift
20
star
31

Perfect-Logger

File-Based Logging.
Swift
19
star
32

Perfect-Thread

Core threading library for Perfect Server Side Swift. Includes support for serial and concurrent thread queues, locks, read/write locks and events.
Swift
18
star
33

Perfect-XML

XML support for Perfect.
Swift
16
star
34

Perfect-Authentication

OAuth2 Implementations with Facebook, Google, LinkedIn, Slack, SalesForce and GitHub providers.
Swift
15
star
35

Perfect-INIParser

A lightweight INI file parser in Server Side Swift
Swift
15
star
36

Perfect-LocalMirror

Perfect Server Local Image Builder 编译加速器
Shell
14
star
37

Perfect-COpenSSL

C module OpenSSL import for Perfect.
C
12
star
38

Perfect-OAuth2

OAuth2 Implementations with Facebook, Google, LinkedIn, Slack, SalesForce and GitHub providers.
Swift
10
star
39

Perfect-Stripe

Server Side Swift 3 Stripe API
Swift
10
star
40

Perfect-FastCGI

FastCGI server for Perfect.
Swift
9
star
41

Perfect-MariaDB

A stand-alone Swift wrapper around the MariaDB client library, enabling access to MariaDB servers. http://www.perfect.org
Swift
9
star
42

Perfect-libxml2

libxml2 support module for Perfect.
Swift
8
star
43

Perfect-Local-Auth-PostgreSQL-Template

Template starter template for a Local Authentication - equipped server
CSS
8
star
44

PerfectAPIGenerator

Documentation generator for the Perfect API, written in Perfect.
JavaScript
8
star
45

Perfect-Hadoop

Perfect Hadoop: WebHDFS, MapReduce & Yarn.
Swift
8
star
46

PerfectDocGenerator

The Perfect Documentation build process.
Swift
7
star
47

Perfect-FastCGI-Apache2.4

mod_perfect - Apache FastCGI connector
C++
7
star
48

Perfect-ZooKeeper

A ZooKeeper Client in Swift (LINUX ONLY)
Swift
7
star
49

Perfect-LocalAuthentication-PostgreSQL

Local Authentication processes and routes
Swift
6
star
50

Perfect-COpenSSL-Linux

C module OpenSSL import for Perfect (Linux).
C++
6
star
51

Perfect-libcurl

C module libcurl import for Perfect.
C
5
star
52

Perfect-Turnstile-MongoDB

A MongoDB ORM single-package integration for Turnstile authentication.
Swift
5
star
53

Perfect-OpenLDAP

OpenLDAP C Library for Swift.
Swift
5
star
54

Perfect-LinuxBridge

C module Linux compatibility import for Perfect
C
5
star
55

Perfect-Repeater

A simple library that takes a closure and executes it at the specified interval until the closure returns false or the application is terminated.
Swift
5
star
56

Perfect-Turnstile-MySQL

A MySQL ORM single-package integration for Turnstile authentication.
Swift
5
star
57

Perfect-WebRedirects

Filter for specified routes (including trailing wildcard routes) and perform redirects as instructed if a match is found.
Swift
5
star
58

Perfect-Session-MySQL

MySQL Driver for Perfect Sessions.
Swift
4
star
59

Perfect-LocalAuthentication-MySQL

Local Authentication, MySQL module
Swift
4
star
60

Perfect-Turnstile-PostgreSQL

A PostgreSQL ORM single-package integration for Turnstile authentication.
Swift
4
star
61

Perfect-libMosquitto

C library of Mosquitto (MQTT client) for Swift
Swift
4
star
62

Perfect-Session-MongoDB

Perfect Session Drivers for MongoDB.
Swift
4
star
63

Perfect-sqlite3-support

C module import for sqlite3.
Swift
4
star
64

Perfect-Turnstile-SQLite

An SQLite ORM single-package integration for Turnstile authentication.
Swift
4
star
65

Perfect-Session

Session drivers (for use in Perfect projects).
Swift
4
star
66

Perfect-CZlib-src

C
3
star
67

PerfectTemplateFCGI

Perfect Empty Starter Project for FastCGI.
Swift
3
star
68

Perfect-libSASL

SASL C library for Swift.
C
3
star
69

Perfect-Session-Redis

Redis Driver for Perfect Sessions
Swift
3
star
70

Perfect-CouchDB

CouchDB Database Connector for Perfect.
Swift
3
star
71

Perfect-Local-Auth-MySQL-Template

CSS
3
star
72

PerfectTemplateAppEngine

Perfect Empty Starter Project for Google App Engine.
Swift
3
star
73

Perfect-SPNEGO

A general Server Side Swift library that implements SPNEGO mechanism.
C
3
star
74

Perfect-Session-PostgreSQL

PostgreSQL Driver for Perfect Sessions.
Swift
3
star
75

Perfect-mysqlclient

C module import for MySQL client.
Swift
3
star
76

Perfect-GoogleAnalytics-MeasurementProtocol

Server side Google Analytics, using Swift / Perfect
Swift
2
star
77

Perfect-ODBC

Perfect connector for ODBC databases
Swift
2
star
78

Perfect-mariadbclient

C module import for MariaDB client.
Swift
2
star
79

Perfect-NewRelic-Linux

This project provides a Swift class wrapper for New Relic Agent SDK.
Swift
2
star
80

PerfectDocsUI

User interface for Perfect Docs Dev.
JavaScript
2
star
81

Archived-Perfect-Issues

JIRA Archive of Perfect.
Swift
2
star
82

Perfect-Turnstile-CouchDB

A CouchDB ORM single-package integration for Turnstile authentication.
Swift
2
star
83

Perfect-libpq

C module import for libpq.
Swift
2
star
84

Perfect-Session-SQLite

SQLite driver for Perfect Sessions.
Swift
2
star
85

Perfect-libpq-linux

C module import for libpq.
Swift
2
star
86

Perfect-mysqlclient-Linux

C module import for MySQL client Linux.
Swift
1
star
87

Perfect-Session-CouchDB

CouchDB Driver for Perfect Sessions.
Swift
1
star
88

Perfect-CloudFormation

Support for CloudFormation server instances.
Swift
1
star
89

Perfect-mongo-c-linux

Obsolete - Perfect Mongodb c-binding for linux.
Swift
1
star
90

Perfect-NIOCompat

Perfect 3 -> 4 compatability
Swift
1
star
91

Perfect-mongo-c

Obsolete - C module import for mongo-c.
Swift
1
star
92

Perfect-Assistant-Issues

Tracking issues with Perfect Assistant
1
star
93

Perfect-mariadbclient-Linux

C module import for MariaDB client Linux.
Swift
1
star