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。