写点什么

Perfect:Swift 语言服务端开发工具包

  • 2015-11-27
  • 本文字数:1123 字

    阅读完需:约 4 分钟

Perfect 是一个使用 Swift 编程语言开发 Web 和其他 REST 服务的框架,其主要目标是简化需要后端服务器软件的移动应用的开发,使开发人员可以使用同一种语言进行客户端和服务端开发。

Perfect 能为开发人员带来如下好处:

  • 开发人员只需要学习 Swift 一种语言,就可以进行 iOS 移动应用、后端、Web 及可穿戴设备开发;
  • 客户端和服务端开发使用了许多相同的类和工具,减少了代码重复;
  • 完全支持 Xcode 开发和调式,开发人员可以使用相同的工具同时调试客户端和服务端。

Perfect 主要包含以下组件。

PerfectLib

PerfectLib 是一个 Swift 模块,提供了一套进行服务端和客户端开发的核心工具。在许多情况下,客户端和服务端使用相同的 API。不过,其目标是在客户端使用平台提供的 API,降低应用膨胀的可能性,并提供一个可以同时支持 Linux 和 OS X 的、完整的服务端解决方案。

PerfectLib 客户端模块主要提供以下特性:

  • JSON 编码 / 解码
  • 基于 JSON 的对象封送
  • 原始字节流管理
  • 简化的 UTF-8/16 编码和解码
  • UUID 创建及与 String 类型之间的转换
  • cURL 支持
  • 简化的 SQLite 访问
  • 用于字符验证的相关 Unicode 工具

PerfectLib 服务器端模块包含除最后两项之外的所有客户端特性,同时还提供了如下特性:

  • TCP 和 UNIX 套接字网络
  • 集成 LibEvent
  • 集成 ICU,完全支持 Unicode
  • 文件和目录对象
  • 进程管理
  • 基于 FastCGI 的应用服务
  • 基于独立 HTTP 服务器的应用服务
  • 支持 FastCGI 和独立 HTTP 服务器的 Web 请求和响应 API
  • 多部分 POST/MIME 解析和文件上传处理
  • 服务器扩展模块动态加载
  • Mustache 模板解析和处理
  • 将 Swift 类同 Mustache 模板联系起来的 Web 请求处理系统
  • 服务端状态 / 会话管理
  • MySQL PostgreSQL 、SQLite 和 MongoDB 数据库连接器

Perfect Server

Perfect Server 是一个让 Perfect 能够运转的服务端组件。它是一个始终处于运行状态的独立进程,接受客户端连接、处理请求并返回响应。它提供了一种插件机制,允许开发人员向系统中添加自己的应用程序逻辑模块,即“请求处理程序(Handler)”。在启动时,Perfect Server 会加载这些开发人员自定义的 Swift 模块,并将它们同定义响应格式的 Mustache 模板相关联。这种方法遵循经典的 MVC 架构实现了逻辑与展示的完全分离。

Perfect Server 有两个版本:一个版本基于 FastCGI,通过 mod_perfect 嵌入 Apache 2.4;另一个版本是一个独立 HTTP 服务器的变种。

关于 Perfect 的更多信息,可以查看官方网站 GitHub 页面相关示例


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015-11-27 18:005267
用户头像

发布了 1008 篇内容, 共 397.0 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务

阿里云云效

阿里云 云原生 云效

微创软件荣获"SSCL金链奖----优秀数字化转型奖"

财见

流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务

阿里巴巴云原生

阿里云 云原生 yaml

Partisia Blockchain 质押 APR 教程一览,可以随时取消

大瞿科技

组织架构图如何制作?用这个AI绘图软件一键生成!

彭宏豪95

人工智能 在线白板 AIGC 绘图软件 组织架构图

CSS布局概念与技术教程

不在线第一只蜗牛

CSS 前端 布局

桌面虚拟化的技术架构全解析

青椒云云电脑

桌面云 云桌面 云桌面解决方案 虚拟云桌面系统

桌面虚拟化的技术架构全解析

青椒云云电脑

桌面云 云桌面 云桌面解决方案 虚拟云桌面系统

选云桌面厂家,该怎么挑?

青椒云云电脑

云桌面 云桌面厂家

Partisia Blockchain 质押 APR 教程一览,可以随时取消

加密眼界

科普:DO-178B

DevOps和数字孪生

航空航天 DO-178B

前端面试题 - vue的双向绑定原理是什么?

Geek_fed966

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

百度Geek说

百度 大模型 企业号 5 月 PK 榜 企业号2024年5月PK榜

碳课堂|ISO 14064-3 温室气体核查规范与指南

AMT企源

双碳 碳管理 ISO 14064

TikTok直播可能遇到的问题以及解决方案

Ogcloud

TikTok Tik Tok tiktok运营 tiktok直播

HUAWEI Pura 70系列搭载HarmonyOS 4.2,玩转小艺AI智慧体验!

Geek_2d6073

软件测试学习笔记丨Pytest编写插件—为第三方插件添加命令行参数

测试人

软件测试 自动化测试 测试开发 pytest

VMware 网络连接的几种方式

玄兴梦影

蜗牛游戏宣布2024年第一季度财报业绩

财见

关于spring与springmvc整合

伤感汤姆布利柏

5月21日相聚上海张江!与文心大模型一起共建大模型产业应用生态圈

飞桨PaddlePaddle

百度 飞桨 大模型 文心一言 文心中国行

Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?

EquatorCoco

桌面云服务是什么?桌面云服务厂家推荐

青椒云云电脑

桌面云 云桌面 云桌面厂家 桌面云服务

学校选择云桌面厂家需要考虑哪些因素?

青椒云云电脑

云桌面 云桌面厂家 云桌面系统

软件测试学习笔记丨黑盒测试-等价类划分

测试人

软件测试 测试开发 测试用例 黑盒测试 等价类

线上展厅怎么做?如何打造一个成功的线上展厅?

点量实时云渲染

云渲染 实时云渲染 3D实时云渲染 线上展厅 数字展厅

字节跳动打响大模型价格战;苹果将在 iPhone、iPad 上推出眼球追踪功能丨 RTE 开发者日报 Vol.205

声网

云桌面部署注意事项

青椒云云电脑

桌面云 云桌面 云桌面解决方案

云桌面的三大基本架构

青椒云云电脑

桌面云 云桌面 云桌面解决方案

虚拟云桌面是否适合部署在学校机房

青椒云云电脑

云桌面 虚拟云桌面系统

容器内存可观测性新视角:WorkingSet 与 PageCache 监控

阿里巴巴云原生

阿里云 云原生 可观测

Perfect:Swift语言服务端开发工具包_REST_谢丽_InfoQ精选文章