类似spring for Java的C++web框架

C++ web framework like spring for Java

本文关键字:C++web 框架 Java spring for 类似      更新时间:2023-10-16

C++中是否有类似Spring for Java的web框架,我目前正在开发一个web域中的应用程序。我们现有的应用程序都是用c++开发的,我们正在寻找一些具有小学习曲线并提供令人兴奋功能的框架。有人遇到过这样的框架吗。请告诉我。

如果您要查找的是DI;C++中的依赖注入并没有做太多,因为尽管你可以将指针注入到一个类中,但很难说谁会释放它。这里已经有一个SO讨论了。

我认为开源项目"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

我还推荐Oat++,它是专为您的用例设计的:

  • 与Java Spring相同的项目结构
  • 跨平台
  • 支撑型锻
  • 授权流程
  • 零依赖性

我所知道的最接近的东西——我没有第一手经验,我只听说过——是一个名为Autumn的框架。

我刚刚在浏览类似线程时发现ffead-cpp,有人能评估这个框架吗?或者知道这是否是一个合适的选择。我想它已经回答了我的一些问题。你们能评论一下吗?

我尝试了RESTINIO现代c++web框架。。这是精心设计的。值得一试。https://github.com/Stiffstream/restinio