IHttpCore 服务器框架简介¶
引言¶
在服务器领域,Java中 Spring框架大行其道。Go语言以其简洁、高效、并发性能优异的特点,成为微服务和云原生应用开发的热门选择。Python和 Node.js 中的各种框架作为补充,来满足各种小众需求和个性开发。
然而,当涉及到性能要求极高的服务器开发时,C++凭借其出色的性能和对底层硬件的控制能力,成为许多高性能服务器应用的首选语言。但是由于 c++ 语言所构成的框架的表达能力的问题,并没有成为主流服务器开发语言。
IHttpCore 的提出赋予C++语言在服务器领域以表达能力。让服务器的开发更加简洁,快速高效。
IHttpCore 的优势¶
c++17 / Qt 平台支持。¶
- *大量的c++17库和 Qt 库支持*
- *成熟的编程语言*
目前主流的c++开发是基于c++17, 而Qt开发也是 c++ 开发的主流之一。
- *跨平台开发和运行*
软件目前支持在所有Qt能够运行的环境上编译开发,实现软件的跨平台支持。所以开发者可以在windows 上面进行快速开发编译,而在完成开发之后部署到linux主机上面再次编译并运行。
高效¶
- 运行速度快
- 内存使用率低
- 软件运行速度快。
- 秒速启动运行。
c++ 拥有很高的运行效率,对比与其他的主流网络框架,它能够节省更多内存的使用,cpu使用,进而带动服务器数量的减少和能源消耗的减少,降低碳排放。(参见文章: Why C++ ? 王者归来 | 酷 壳 - CoolShell
快速开发。¶
- 易于上手
- 提供 类似Spring和 FastApi 等主流web开发框架的操作逻辑
c++ 开发很多人觉得困难是因为c++本身带来的复杂性。IWebCore 对于新手非常友好,开发人员初期并不需要了解C++复杂的特性也可以 使用controller,并进行数据库的增删改查等操作。降低了开发者的学习难度。
Controller¶
- controller 自动注册
- url灵活配置,动态url
- 函数参数从请求中动态解析和注入绑定
- 灵活的返回方式,可以返回 text,json, xml, status等内容。
- 严格的参数检查。
完整的Http协议支持¶
- 支持
GET,POST,PUT,HEAD,DELETE,PATCH,OPTION等方法。 - HttpMime, HttpStatus支持。
- iocp / io_uring 支持
方便高效的配置方式¶
- 支持 System和 Application两种级别的配置
- 提供包括 代码,
json,yaml,宏注解等多种配置方式
严格的安全策略¶
- 友好的运行前检查,
在实例运行之前,会对软件的逻辑进行详细的检查,在有问题的地方生成有好的 warning 或者 fatal 信息
- Invalid 支持
- Exception 支持