Perfect:Swift 语言服务器端软件框架


Perfect 开源项目 参与 Perfect 开发 Slack 在线协同

Perfect:Swift 语言服务器端软件框架

Perfect是一组完整、强大的工具箱、软件框架体系和Web应用服务器,可以在Linux、iOS和macOS (OS X)上使用。该软件体系为Swift工程师量身定制了一整套用于开发轻量、易维护、规模可扩展的Web应用及其它REST服务的解决方案,这样Swift工程师就可以实现同时在服务器和客户端上采用同一种语言开发软件项目。

Perfect内建整套工具集,因为无论是客户端还是服务器都能够在此基础之上用同一种计算机语言Swift进行程序开发,因此能够为软件工程师大幅提高工作效率。在全球目前众多的服务器端框架体系和工具箱产品之中,Perfect目前已经成为许多iTunes在线应用程序的可靠后台应用。

无论您是资深程序员还是入门级的软件工程师,本文都能够帮助您快速启动Perfect实现服务器项目开发运行。

使用Perfect

Swift语言兼容性

目前本项目主干版本基于Xcode 8 GM release发行版本。

Current version: DEVELOPMENT-SNAPSHOT-2016-09-05-a,or Xcode 8 GM release

快速上手

在线教程(简体中文) 能够帮助您快速开始使用Perfect。该指南包括了如何使用Perfect的几个典型例子。

文档

Perfect帮助文档(简体中文) 如何部署应用程序、如何查找详细文档和帮助。

我们欢迎所有贡献以及对Perfect文档提高的宝贵意见。我们欢迎您为Perfect付出宝贵的支持。如果您发现了任何文字或者内容有错误,或者有任何建议,请提交一个代码上传请求,或在JIRA上报告问题.

社区

我们总会需要您的帮助。如果您真的有想法,不妨加入我们的Perfect支持社区:

Slack | Twitter

部署

目前,部署Perfect的方式可以选择Docker和Heroku。我们强烈推荐使用这种方式进行部署,因为这些部署方式是通过最新Swift 3.0 和 Perfect 2.0编译完成的。

教程和案例

我们的图书馆一直在随着社区成员的加入而不断增长,Swift-Perfect开发社区有许多源程序共分享,都是建立在Perfect程序框架之上。典型例子包括:

  • WebSockets 服务器

  • URL 路由

  • 文件上传

更多例子敬请关注!

Perfect 1.0教程 (支持 Swift 2.2) 由Swift-Perfect社区成员贡献。或者从Perfect 2.0开始 (支持 Swift 3.0).

核心 Perfect 模块

Perfect 项目由若干代码资源库构成,便于您按需查找、下载和安装必要的组件:

  • Perfect:核心的程序库和基础软件框架

  • Perfect Docs:所有必要的程序文档和帮助内容

参考和样例

  • Perfect 模板:一个使用SPM软件包管理器快速上手的入门项目,能够编译为一个独立运行的HTTP服务器。该代码资源非常适合基于Perfect的项目就此开始开发过程。

  • Perfect 样例:所有Perfect 项目的典型样例

数据源

  • Perfect Redis:Redis 数据库连接工具

  • Perfect SQLite:sqlite3 数据库连接工具

  • Perfect PostgreSQL:Postgresql 数据库连接工具

  • Perfect MySQL:MysqL 数据库连接工具

  • Perfect MariaDB:MariaDB 数据库连接工具- Perfect MongoDB:MongoDB 数据库连接工具

  • Perfect FileMaker:FileMaker 数据库连接工具

工具集

  • Perfect FastCGI Apache 2.4 - Apache 2.4 FastCGI 模块。如果您使用FastCGI用于基础Web服务,请使用该模块

  • Perfect XML - DOM文档对象二级核心只读函数库和XPath路径支持

  • Perfect HTTP Server - HTTP 1.1标准的 Perfect服务器

  • Perfect Mustache - Mustache静态模板支持

  • Perfect CURL - cURL网页传输支持

  • Perfect WebSockets - 网络套接字WebSockets支持

  • Perfect Zip - 提供简单的zip压缩和解压缩功能

  • Perfect Notifications - 提供苹果消息推送服务支持(APNS)

  • Perfect StORM 数据库对象关系管理

  • Perfect Turnstile 用户身份验证

更多内容

Perfect 可以作为一个独立的HTTP服务器或HTTPS加密服务器进行运行,或者通过FastCGI快速网关服务器进行运行。简单来说就是提供一个能够在系统启动是加载的Web服务,从而能够将您自行开发的Swift源码模块根据URL路由要求实现请求/响应,或者根据内建的Mustache模板处理页面。

Perfect是一个完全异步、高性能的网络引擎,并且能够为互联网服务提供大吞吐量控制。该软件体系支持安全套接字(SSL)加密,并且封装了一系列互联网服务器通用的特性,比如WebSockets 和 iOS消息推送。然而,您的开发可以不必受限于这些选项。

请根据您自己的喜好使用JSON或者其他的模板系统,等等。

加入我们的开发社区并贡献自己的力量

Swift-Perfect开发者社区是改进Perfect产品并实现客户支持的关键。

在社区里,您可以通过加入Perfect Slack 频道和Perfect Gitter 频道互相帮助、分享技术、互相学习和研究诀窍。任何一种贡献方式我们都非常欢迎:问题汇报、文档更新、补丁修复、编写案例、分享项目或者任何编程窍门,我们相信这些都能够极大地帮助我们的Swift-Perfect社区。

如果您发现了任何文字或者内容有错误,或者有任何建议,请查看我们的Perfect JIRA资源库.

如果您希望分享一下您的项目、教程或者视频,请将URL共享到我们的推特或者GitHub账号:Perfect 推特。之后我们的Perfect团队会继续推广。

Perfect:Swift 语言服务器端软件框架简介的更多相关文章

  1. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  2. 利用Node实现HTML5离线存储的方法

    这篇文章主要介绍了利用Node实现HTML5离线存储的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. 详解如何通过H5(浏览器/WebView/其他)唤起本地app

    这篇文章主要介绍了详解如何通过H5(浏览器/WebView/其他)唤起本地app的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. AmazeUI 折叠面板的实现代码

    这篇文章主要介绍了AmazeUI 折叠面板的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码

    这篇文章主要介绍了HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

  7. Html5 video标签视频的最佳实践

    这篇文章主要介绍了Html5 video标签视频的最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. html5唤起app的方法

    这篇文章主要介绍了html5唤起app的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. HTML5拍照和摄像机功能实战详解

    这篇文章主要介绍了HTML5拍照和摄像机功能实战详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部