Swiftpack.co - Package - enums/Pjango

一款基于 Swift 3.x 的服务端框架,使用 MVC 设计你的服务端软件。

更新

我正在计划结束这个项目,原因如下:

  • 早起参考了一些 Django 的设计,导致无论是架构还是 API 都非常不 Swifty。
  • 这个框架最早诞生于 Swift 3.x,经历了几次版本迁移,但都仅限于解决了编译问题。
  • 数据库方面薄弱,写页面依然需要写 HTML,整体完成度不高。
  • 早期的一些设计在今天有了更好的解决方法。

这是我第一个真正意义上的服务端项目,现如今它在线上跑了整整两年,目前依然在为我服务,但在不远的将来我会把它换下。

感谢关注。

—— 2019.07.23

新的解决方案已经开发完成,见:https://github.com/enums/Heze

—— 2019.09.10

今日发现在 Swift 5 的编译器下已无法正常工作,请不要再使用了。PCModel 的 meta 方法构造出了父类实例,是个空的模型描述。

—— 2019.12.02

使用方法

$ swift package generate-xcodeproj
  • Linux:使用Swift Package Manager编译:
$ swift build

范例

  • 基础模板:最基础的例子。
  • Calatrava:我的开源博客,Pjango 的深度使用。
  • Postman:HTTP 转发服务器,Calatrava 中的 Instagram 模块依赖在远程服务器部署的 Postman。

组件

模型组件

  • Pjango-Core-Model:内置的模型核心驱动。

视图组件

  • Pjango-Core-View:内置的视图核心驱动。
  • Pjango-Core-ListView:内置的列表类视图。
  • Pjango-Core-DetailView:内置的展示类视图。

数据库组件

  • Pjango-Core-DataBase:内置的数据库核心驱动。
  • Pjango-Core-FileDB:内置的文件驱动组件。
  • Pjango-MySQL:MySQL 数据库支持组件。

插件式组件

  • Pjango-Core-Plugin:内置的插件核心驱动。
  • Pjango-Core-TaskPlugin:内置的一次性任务组件。
  • Pjango-Core-TimerPlugin:内置的延时、定时、重复定时任务组件。
  • Pjango-Core-HTTPFilterPlugin:内置的 HTTP 服务过滤器组件。
  • Pjango-Core-LogFilterPlugin:内置的 HTTP 过滤器日志组件。

其他功能组件

联系我

发邮件给我:enum@enumsblog.com

协议

Apache-2.0 license

Pjango 基于 Apache-2.0 协议进行分发和使用,更多信息参见协议文件。

Github

link
Stars: 43

Releases

Fix model cache problem - 2019-07-04 08:27:39

Fix generic type - 2019-07-04 07:13:41

Add query methods - 2019-07-04 06:26:34

Fix bug - 2019-06-27 15:56:13

Fix bug - 2019-06-26 06:17:40

Add Watchdog support - 2019-03-24 06:42:18

Convert to Swift 4.2.1 - 2018-12-09 07:14:01

Add db long string support - 2018-06-20 05:09:00

Fix a cache bug - 2018-06-18 15:38:58

Add ext param in PCModel query - 2018-01-21 01:48:54

Bug fix - 2018-01-20 16:00:03

Add bytes response - 2018-01-18 11:00:08

Add fileDB support - 2017-07-02 08:28:41

Bug fix - 2017-07-01 08:06:42

Bug fix - 2017-06-28 14:51:22

Fix url dispatch - 2017-06-27 15:51:11

HTTPFilterPlugin support - 2017-06-26 15:25:09

More function support - 2017-06-25 11:23:33

Multi host support - 2017-06-24 09:13:56

Ready to support SQLite - 2017-06-23 15:01:46

HTTP Request & Response Filter Support - 2017-06-21 15:44:17

First release - 2017-06-20 13:10:08