Swift服务端框架Perfect

pshjob 6年前

来自: https://realm.io/cn/news/perfect-swift-server-framework/

Apple(苹果公司)宣布开源Swift已经是去年12月份的事情了,在那之前有一个令整个Swift社区颤抖的开源项目,那就是基于Swift的服务器开发框架 Perfect 。Perfect是一个使用Switft编程语言开发WEB和其他REST服务的框架,使开发人员可以使用同一种语言进行客户端和服务端开发,这意味着,通过在整个应用程序生态系统中使用同一种语言,开发人员可以节省时间,缩短学习曲线,减少所需的代码。

绝佳时机

所有事情时机很重要。虽然说最先问世的框架不一定会是使用最广泛的框架,但是就像现在Swift除了开发IOS/OS X,还能用作于服务器开发的事实,并且一些完成度非常高的项目不断获取开发者的视线。最近 使用Swift 替代其他脚本语言 , 使用Swift开发Android 等(已经成功使用Swift在Android上 渲染出 “Hello World”) 很多项目正在剥夺开发者的眼球。

是谁开发的?

首先开发Perfect的是一个来自加拿大,名叫PerfectlySoft的创业公司。通过 Perfect的Github主页 我们可以看到一个有趣的事实,虽然一共有6名开源代码贡献者,但是主要开发者一共有2名,一名开发者是从2015年10月开始开发,另一名开发者在11月之后就中断了开发,分支也只有一个,提交量在200多。赏心悦目的网站,完整的Github社区,高品质的服务端框架让很多人很难相信这么多工作都是由一个人开发的,但事实上这些确实是都是由1个人开发的。

支持什么样的环境

最初Perfect发布的时候是在Swift开源之前,所以当时只支持 Mac OS,随着苹果最近将Swift开源,Perfect承诺支持跨多种平台的跨平台开发,包括OS X、Linux、Windows等其他平台。但是据笔者了解目前只支持Ubuntu。Perfect服务器目前有两个版本:一个版本基于FastCGI,通过 mod_perfect 嵌入Apache 2.4,另一个版本是一个独立HTTP服务器的变种。在服务启动是提供动态模块加载,并且使用Mustache模板引擎进行渲染。通过没有任何关于支持nginx的消息表明。现在暂时只支持Apache。

Perfect还提供了在服务端开发中非常重要的MySQL, PostgreSQL, MondoDB数据库连接器。还有提供 丰富的示例代码 ,并遵循GNU Affero GPL 3.0开源协议。

PerfectLib

PerfectLib是一个Swift模块,提供了一套进行服务端和客户端开发的核心工具。在许多情况下,客户端和服务端使用相同的API。

轻量级客户端模块主要提供JSON编码/解码,原始字节流管理,UTF-8/16编码和解码,用于字符验证的相关Unicode工具,cURL支持,简化的SQLite访问等特性。

服务端模块包含客户端模块提供的所有特性之外还集成了可扩展,高性能的网络支持LibEvent,文件和目录对象,进程管理,基于FastCGI的应用服务,多部分POST/MIME解析和文件上传处理,Mustache模板解析和处理,服务器扩展模块动态加载,服务端状态/会话管理。

是否值得一试?

虽然说 Perfect的文档 整理的仅仅有条。但是作为商用还为时尚早,各种示例,关联的文档,书籍等可参考的资料还是非常少。

。如果作为说仅仅作为学习,兴趣之用还可以尝试的。希望Swift服务器开发中Pefect能发挥重要作用。

</div>