C++Web框架,如Java的弹簧

2022-09-03 06:32:02

C++中是否有任何Web框架,就像Java的Spring一样,我目前正在开发一个位于Web领域的应用程序。我们现有的应用程序都是用c ++开发的,我们正在寻找一些学习曲线很小并提供令人兴奋的功能的框架。有没有人遇到过这样的框架。请让我知道。


答案 1

如果你正在寻找它的DI;C++中的依赖注入并没有真正完成很多工作,因为尽管您可以将指针注入到一个类中,但要说谁将释放它并不容易。这里已经有一个SO讨论


答案 2

我认为开源项目“Drogon”就是你想要的。Drogon可以在github中找到,这是Drogon的描述:

Drogon是一个基于C++14/14的HTTP应用程序框架。Drogon可用于使用C++轻松构建各种类型的Web应用程序服务器程序。Drogon的主要应用平台是Linux,它还支持Mac OS/UNIX。其主要特点如下:

  • 使用基于 epoll 的非阻塞 I/O 网络库(MacOS/FreeBSD 下的 kqueue),提供高并发、高性能的网络 IO;
  • 提供完全异步的编程模式;
  • 支持Http1.0/1.1(服务器端和客户端);
  • 基于模板,实现简单的反射机制,将主程序框架、控制器和视图完全解耦。
  • 支持 Cookie 和内置会话;
  • 支持后端渲染,控制器生成数据到视图生成Html页面,视图由“类似JSP”的CSP文件描述,C++代码由CSP标签嵌入到Html页面中,drogon命令行工具自动生成C++代码文件进行编译;
  • 支持视图页面动态加载(动态编译和运行时加载);
  • 提供从路径到控制器处理程序的便捷灵活的路由解决方案;
  • 支持滤波链,便于控制器前执行统一逻辑(如登录验证、Http方法约束验证等);
  • 支持https(基于OpenSSL);
  • 支持WebSocket(服务器端和客户端);
  • 支持JSON格式的请求和响应,对Restful API应用开发非常友好;
  • 支持文件下载和上传;
  • 支持gzip压缩传输;
  • 支持流水线;
  • 提供轻量级的命令行工具,drogon_ctl,以简化Drogon中各种类的创建和视图代码的生成;
  • 支持基于非阻塞I/O异步读写数据库(PostgreSQL和MySQL(MariaDB)数据库);
  • 支持基于线程池异步读写sqlite3数据库;
  • 支持ARM架构;
  • 提供方便的轻量级ORM实现,支持常规的对象到数据库双向映射;
  • 支持可以在加载时通过配置文件安装的插件;
  • 通过内置连接点支持 AOP。

推荐