C++ Web框架-paozhu
2023-12-26 11:12:01 阿炯

Paozhu(炮竹)是一个全面、快速的C++ web framework 开发框架,集成C++ ORM,开发速度跟脚本语言一样,日写1000行业务代码没有压力,框架集成了WebServer,自己原生解析HTTP/1-2、JSON协议,GET、POST全部解析出来,POST几种方式都做了区分,框架自带一个OBJ微型对象,可以存放char int string float等,框架自动解析URL、POST参数到微型对象里面,使用urlpath映射到函数挂载点,使用协程、线程池、数据库链接池。采用MIT协议授权。



运行环境
C++ standard request c++20
asio mysql libmysqlclient-dev zlib brotli(br) [可选](boost gd qrencode)

作为新的一代服务器容器程序,Paozhu 可以承担 PHP 开发迁移,老代码可以不动,新业务使用 C++20 等现代快速开发,Paozhu 使用 FastCGI+PHP-FPM 方式,C++20 完善,开发速度也可以比肩脚本语言,加上三大编译器支持内存泄漏检查 asan,能过编译器,运行起来就没有问题,有问题可以自动定位。

Paozhu C++ Web 框架内置强大的 C++ ORM 模块,简单易用,自动从数据库生成 ORM 实体类,内置分页,几行代码可以代替 Java 几百行代码。包括经典内容列表,包括搜索、分页程序,鉴权等。


特性

1. 自带json编解码不用第三方库,标准json支持
2. 支持多域名网站
3. 支持多域名ssl 服务端
4. 支持http/1.1、http/2协议
5. 支持websocket服务端
6. 框架自带websocket推送,支持定时推送到webscoket客户端
7. 支持httpclient get post,同步异步、协程模式,数据采集
8. 框架自带ORM,使用链接池方式,目前支持mysql
9. 框架自带线程池,和用户代码运行的线程池
10. 框架使用asio自带的协程
11. 框架特色是I/O 使用协程池 用户代码运行使用线程池,类似GO那种调度,只是针对http请求调度
12. 框架支持普通文件gzip、br,并支持缓存到磁盘,下次不用cpu再压缩
13. URL、POST和上传文件,解析结果client.get[] client.post[] client.files[]方式获取内容
14. 自带sendmail类库
15. 生成二维码(qrcode),需要gd、qrencode库
16. 插件化编程,热动态更新,使用动态库方式
17. 框架内置通用数据缓存模块,ORM结果缓存,提高并发能力
18. 框架controller目录注解功能,方便添加URL路由映射,降低入门心智
19. 结构和类注解JSON功能,使用json_encode json_decode操作复杂C++结构体和JSON互转,可以参考Wiki
20. 提供一个完整admin后台管理框架(见后面图片), 访问URL为 /admin/main
21. 支持PHP-FPM fastcgi运行模式,代替Apache做PHP前端,让PHP程序员平稳过渡到 C++ 开发模式


最新版本:1.5
2023年12月下旬发布的1.5.4 版,大范围重构、代码更加现代化和稳定,全球几乎唯一自己开发解析 http2 协议的 C++ 框架,跟系统高度集成没有性能开销。

项目主页:https://github.com/hggq/paozhu