蒸汽vs. Kitura vs.完美—三种出色的Swift框架的比较研究

我们在App开发人员博客上的最新文章之一介绍了Vapor,Kitura和Perfect –三种出色的Swift框架的比较研究。

2年前,才刚刚在服务器端领域使用Swift。 在Swift逐渐成为移动应用程序开发的潜在参与者的同时,服务器端Swift也对开发人员寄予了很高的期望,希望开发出一种完全由Swift在前端和后端驱动的产品。

这个想法似乎对开发社区很有吸引力,并且得到了IBM,Qutheory,PerfectlySoft等组织的大力支持。

Swift快速,这就是为什么它在开发领域占据了最大份额的原因。 随着新服务器端功能的推出,让我们探讨一下哪些框架可以为其提供最佳支持。

由Qutheory团队开发的Vapor是唯一纯粹支持Swift的框架。 Vapor于2016年初推出,拥有一个非常活跃的社区。 Vapor受欢迎的主要原因在于,它为开发人员提供了可可开发人员熟悉的环境。 它为开发人员提供了一个独立的环境,由于其语法简单,因此易于阅读。 API的开发非常简单,因为它们是在Swift中独家开发的,而且可读性更高。 它的某些功能使其比竞争对手更胜一筹,例如它支持Apple的Push Notification Service,并促进SMTP发送电子邮件。 当我们谈论Vapor的数据库支持时,精通Swift的开发人员可以使它与任何数据库一起使用。 它提供了一组本机连接器,用于连接MySQL,PostgreSQL,Sqlite,Redis和MongoDB。

蒸气标榜自己独有的功能:

  • 它支持诸如Mustache和Markdown之类的模板引擎,同时还具有称为Leaf的本机模板引擎,这使其非常自立。
  • 蒸气专门提供SwiftyBeaver集成。
  • 命令行工具,可轻松创建和操作现有项目
  • 独有的工具库使创建命令行应用程序变得容易。

蒸气是当今最大的社区,因为其语法非常适合初学者。 活跃的社区使Vapor框架的采用变得更加容易,因为有许多教育资料可供使用。 它的排他性是由它除了Swift之外不使用其他任何库这一事实所驱动。 目前,Vapor框架的Github追随者达到了13k,使其成为服务器端工作非常流行的框架。

完善

快速且大型的服务器端脚本的功能丰富的框架。 它的很大一部分归因于它是由Apple本身的前Lasso语言团队开发的。 该团队具有多年的服务器端技术经验。 它为其开源社区关注者提供了5个不同的GitHub库。 仓库是

  • PerfectlySoft-框架和引擎
  • PerfectExamples —示例项目
  • SwiftORM —数据库连接器
  • PerfectServers-已经编写的应用程序,可以立即进行配置和部署。

Perfect秉承其名称,并为用户提供了众多功能,包括路由,SSL,模板引擎(例如Mustache,Markdown,JSON),但没有像Vapor这样的本地模板引擎。 对于电子邮件支持,它提供了SMTP以及MqTT,还启用了Apple Push Notifications。

它总是更接近Vapor,但没有本地路由类型验证和命令行扩展支持。 由于功能强大,Perfect的社区支持正在迅速增加。 数据库支持范围很广,远不如Vapor。 该框架支持MySQL,SQLite,PostgreSQL,MariaDB,MongoDB,Redis,CouchDB和FileMaker。 对于安全性和身份验证功能的实现,框架取决于Turnstile。 该框架非常适合即时设置登录Facebook,Google,LinkedIN,Slack和GitHub的登录名。

Perfect的排他性在于本机cURL包装器,并允许开发人员使用各种文件格式,目录类型和Zip文件保存。 已经编写的应用程序是开发人员需要准备部署代码的地方的附加优点。 它还提供对Swift代码的支持,并提供拖放样式以促进快速部署。

其专用的IDE SCADE允许开发人员创建可在iOS和Android平台上使用的混合代码。 SCADE使之成为可能,因为它以可执行格式分别为iOS和Android编译了相同的代码。 拥有一个活跃的社区,Perfect为新成员提供了大量的教育和学习材料。如果您是中国人,那么您会喜欢Perfect,因为整套文档也都以中文提供。

尽管Perfect可能不是唯一的Swift框架,但它是一个生动的框架,可让您通过第三方集成来探索Swift的服务器端。 它为如此广泛的第三方工具(例如BSON,cURL,ODBC,Kerberos和Hadoop)提供了支持,它是进行高级开发的理想框架。 无论您要处理复杂项目还是简单项目,Perfect都是您所需要的。

Kitura

Kitura来自IBM和Apple,他们共同开发了一个功能丰富的框架,而又不影响开发速度。 它是标准功能和高级功能的理想组合,可以促进服务器端开发。 Kitura是唯一支持IoT消息传递的框架,因为它支持Aphid MqTT的第三方插件。 就像Perfect一样,它允许通过Google,Facebook和Github的第三方插件进行身份验证。 Kitura通过称为Kuery的本地SQL数据库抽象提供数据库支持,还支持MySQL,SQLite,PostgreSQL,Redis,CouchDB,ScylaDB和Apache Cassandra。 由于它是IBM产品,它提供了本机连接器以引入Watson以使用诸如Weather Analytics之类的功能。

没有本地模板引擎,它也支持Mustache,Markdown和Stencil。 它不如Perfect或Vapor广泛,但为初学者提供了良好的社区支持,使他们可以使用Swift和其他第三方工具来学习服务器端开发。 Kitura将聚集许多项目,这些项目需要Stencil模板引擎,Apache Cassandra和ScyllaDB等数据库的专有功能支持。 它在社区实力方面落后于Perfect和Vapor,但对于某些特定应用而言却非常有用。

结论性意见

在安装,身份验证支持,它们可以处理的数据格式,模板引擎,数据库支持,语法,Heroku和AWS的云支持(仅Kitura支持Bluemix)的基础上,所有三个顶级Swift服务器端框架都存在很大差异。 万一开发人员愿意使用非Swift元素,Perfect似乎是一个明显的赢家。

每个框架都提供了一些独有的功能,使其获得了活跃社区成员的大量关注和支持。 根据您是否需要本地cURL包装器,Bluemix,多个文件,目录和.zip处理,Watson API支持,本地模板引擎(如Leaf和Toolbox)来进行命令行扩展,这绝对是您的个人选择。

Swift的服务器端开发仍处于起步阶段,但对于开发人员来说似乎是一个非常诱人的想法。 借助Perfect,Vapor和Kitura这三个框架的活跃社区以及大量可用的信息和教育资料,我们很快就会看到一波开发人员转移到完全基于Swift的项目,该项目的前端和后端都在同一项目上开发。


最初在 www.appfutura.com上 发布