Oat++ 是 C++ 的现代 Web 框架。它已满载并包含有效生产级开发所需的所有组件。它也很轻,内存占用也很小。
1.3.0-latest
标签。请关注版本1.4.0
中的新闻和功能的变更日志。
考虑通过 GitHub 赞助商页面支持 Oat++。
oatpp-mysql 作者:@Atarasin
oatpp-mariadb 作者:@lilltiger
开始使用
为 Unix/Linux 构建
为 Windows 构建
示例
维护和开发该项目需要大量的时间和资源。如果您喜欢使用它并希望支持其持续开发,请考虑通过 GitHub 赞助商支持我们。
成为 GitHub 上的赞助商
每一个贡献,无论大小,都有助于我们不断改进和维护项目。感谢您的支持!
网站
支持的平台
最新基准:500 万个 WebSocket
为 Oat++ 做出贡献
快捷键:
Oat++ 高级概述 - 快速概述 Oat++ 功能。
示例项目 - 使用 Oat++ 构建的“CRUD”服务 (UserService) 的完整示例。 REST + Swagger-UI + SQLite。
有关更多详细信息,请参阅 ApiController。
ENDPOINT_INFO(getUserById) { info->summary = "通过 userId 获取一个用户"; 信息->addResponse<Object<UserDto>>(Status::CODE_200, "application/json"); 信息->addResponse<Object<StatusDto>>(Status::CODE_404, "application/json"); 信息->addResponse<Object<StatusDto>>(Status::CODE_500, "application/json"); info->pathParams["userId"].description = "用户标识符"; }ENDPOINT("GET", "users/{userId}", getUserById, PATH(Int32, userId)) { return createDtoResponse(Status::CODE_200, m_userService.getUserById(userId)); }
有关更多详细信息,请参阅 Oat++ ORM。
QUERY(createUser,“插入用户(用户名,电子邮件,角色)值(:用户名,:电子邮件,:角色);”,PARAM(oatpp ::字符串,用户名), PARAM(oatpp::字符串,电子邮件), PARAM(oatpp::Enum<UserRoles>::AsString, 角色))
Gitter - 与 Oat++ 开发人员和其他 Oat++ 用户交谈。
Twitter - 在 Twitter 上关注 Oat++。
Reddit - 关注 Oat++ subreddit。
StackOverflow(新)- 发布问题。
REST 服务 - 使用 Oat++ 构建的“CRUD”服务 (UserService) 的完整示例。 REST + Swagger-UI + SQLite。
REST 客户端 - 如何使用类似 Retrofit 的客户端包装器 (ApiClient) 及其工作原理的示例项目。
Can Chat - 功能齐全的基于房间的聊天,适合数以万计的用户。客户端加服务器。
WebSocket - oatpp WebSocket 示例的集合.
YUV Websocket Stream - 示例项目如何使用 websockets 从 V4L 设备(即网络摄像头)创建 YUV 图像流。
SQLite - “CRUD”服务的完整示例。 REST + Swagger-UI + SQLite。
PostgreSQL - 在 PostgreSQL 中存储信息的生产级实体服务示例。使用 Swagger-UI 和配置文件。
MongoDB - 如何使用oatpp-mongo mondule 来使用 MongoDB 的示例项目。项目是一个具有基本 CRUD 和 Swagger-UI 的 Web 服务。
Example-IoT-Hue - 示例项目如何创建 Philips Hue 兼容的 REST-API,该 API 可由 Amazon Alexa 或 Google Echo 等 Hue 兼容的智能家居设备发现和控制。
HTTP Live Streaming Server - 有关如何使用 Oat++ 异步 API 构建 HLS 流媒体服务器的示例项目。
YUV Websocket Stream - 示例项目如何使用 websockets 从 V4L 设备(即网络摄像头)创建 YUV 图像流。
TLS With Libressl - 示例项目如何设置安全连接并通过 HTTPS 提供服务。
Consul Integration - 有关如何使用 oatpp::consul::Client 的示例项目。领事整合。
微服务 - 有关如何使用 Oat++ 构建微服务的示例项目,以及如何使用整体化技术整合这些微服务的示例。
异步服务 - 有关如何使用异步 API 处理大量并发连接的示例项目。
“燕麦”是一种清淡、有机、绿色的东西。它可以轻松煮熟并食用,无需费力。
“++”暗示它是 C++ 的“东西”。
Oat++ 可用于许多不同的目的,从构建在嵌入式设备上运行的 REST API 到构建微服务和高负载云应用程序。
但大多数用例似乎都在物联网和机器人领域。
理论上,Oat++ 可以轻松移植到任何有线程和网络堆栈的地方。通过额外的相对较小的努力,它几乎可以移植到任何地方,具体取决于您剥离它的程度以及最终的二进制大小。
请参阅支持的平台以获取更多信息。
大约1Mb ,取决于 C/C++ std-lib 和 oatpp 版本。
尽可能始终选择Simple API 。简单的API更加发达并且使代码更清晰。
异步 API 专为在高并发级别运行的小型特定任务而设计,例如:
为大量并发用户(1K 用户及更多)提供文件下载服务。
流式传输到大量客户端(1K 或更多)。
Websocket 聊天服务器。
对于所有其他目的,请使用简单的 API。