Oat++ は、C++ 用の最新の Web フレームワークです。これには完全にロードされており、効果的な運用レベルの開発に必要なコンポーネントがすべて含まれています。動作も軽く、メモリ使用量も小さいです。
1.3.0-latest
タグを使用してください。バージョン1.4.0
のニュースと機能については、変更履歴を参照してください。
GitHub スポンサー ページ経由で Oat++ をサポートすることを検討してください。
@Atarasin による oatpp-mysql
@lilltiger による oatpp-mariadb
始めましょう
Unix/Linux 向けのビルド
Windows 向けのビルド
例
このプロジェクトの維持と開発には、多大な時間とリソースが必要です。使用を楽しんでおり、継続的な開発をサポートしたい場合は、GitHub スポンサーを通じてサポートすることを検討してください。
GitHub でスポンサーになる
大小を問わず、あらゆる貢献がプロジェクトの改善と維持に役立ちます。ご支援ありがとうございます!
Webサイト
サポートされているプラットフォーム
最新のベンチマーク: 500 万 WebSocket
Oat++ への貢献
ショートカット:
Oat++ の高レベルの概要 - Oat++ の機能の概要を簡単に説明します。
サンプル プロジェクト - Oat++ で構築された「CRUD」サービス (UserService) の完全な例。 REST + Swagger-UI + SQLite。
詳細については、「ApiController」を参照してください。
ENDPOINT_INFO(getUserById) { info->summary = "userId で 1 人のユーザーを取得"; info->addResponse<Object<UserDto>>(Status::CODE_200, "application/json"); info->addResponse<Object<StatusDto>>(Status::CODE_404, "application/json"); info->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, "INSERT INTO users (username, email, role) VALUES (:username, :email, :role);", PARAM(oatpp::String, username), PARAM(oatpp::String, 電子メール)、 PARAM(oatpp::Enum<UserRoles>::AsString, role))
Gitter - Oat++ 開発者や他の Oat++ ユーザーと話してください。
Twitter - Twitter で Oat++ をフォローしてください。
Reddit - Oat++ サブレディットをフォローしてください。
StackOverflow (新規) - 質問を投稿します。
REST サービス - Oat++ で構築された「CRUD」サービス (UserService) の完全な例。 REST + Swagger-UI + SQLite。
REST クライアント - Retrofit 風のクライアント ラッパー (ApiClient) の使用方法とその動作方法を示すサンプル プロジェクト。
Can Chat - 数万人のユーザー向けの機能を完備したルームベースのチャット。クライアントとサーバー。
WebSocket - oatpp WebSocket の例のコレクション。
YUV Websocket ストリーム - WebSocket を使用して V4L デバイス (iE Webcam) から YUV 画像ストリームを作成するサンプル プロジェクトの方法。
SQLite - 「CRUD」サービスの完全な例。 REST + Swagger-UI + SQLite。
PostgreSQL - PostgreSQL に情報を保存する運用グレードのエンティティ サービスの例。 Swagger-UI と構成プロファイルを使用します。
MongoDB - oatpp-mongo mondule を使用して MongoDB を操作する方法のサンプル プロジェクト。 Project は、基本的な CRUD と Swagger-UI を備えた Web サービスです。
Example-IoT-Hue - Amazon Alexa や Google Echo などの Hue 互換のスマートホーム デバイスによって検出および制御可能な Philips Hue 互換の REST-API を作成するサンプル プロジェクトの方法。
HTTP ライブ ストリーミング サーバー - Oat++ 非同期 API を使用して HLS ストリーミング サーバーを構築する方法に関するサンプル プロジェクト。
YUV Websocket ストリーム - WebSocket を使用して V4L デバイス (iE Webcam) から YUV 画像ストリームを作成するサンプル プロジェクトの方法。
TLS With Libressl - 安全な接続をセットアップし、HTTPS 経由でサービスを提供するサンプル プロジェクトの方法。
Consul Integration - oatpp::consul::Client の使用方法に関するサンプル プロジェクト。領事の統合。
マイクロサービス - Oat++ を使用してマイクロサービスを構築する方法に関するサンプル プロジェクト、およびモノリシック化技術を使用してそれらのマイクロサービスを統合する方法に関するサンプル。
非同期サービス - 非同期 API を使用して多数の同時接続を処理する方法に関するサンプル プロジェクト。
「オーツ麦」とは、軽くて有機的で緑色のものです。手間をかけずに簡単に調理して食べることができます。
「++」は、それが C++ の「何か」であることを示唆しています。
Oat++ は、組み込みデバイス上で実行される REST API の構築から、マイクロサービスや高負荷のクラウド アプリケーションの構築まで、さまざまな目的で使用されます。
しかし、ユースケースの大部分はIoTとロボティクスにあるようです。
理論的には、Oat++ はスレッドとネットワーク スタックがある場所ならどこにでも簡単に移植できます。追加の比較的小さな労力で、どの程度削除するか、そして最終的なバイナリ サイズに応じて、ほぼどこにでも移植できます。
詳細については、サポートされているプラットフォームを参照してください。
C/C++ std-lib および oatpp のバージョンに応じて、約1Mb 。
可能な限り常にSimple API を選択してください。シンプル API はより開発されており、コードがすっきりしています。
非同期 API は、高い同時実行レベルで実行される小規模で特定のタスク向けに設計されています。例:
ファイルのダウンロードを多数の同時ユーザー (1,000 ユーザー以上) に提供します。
多数のクライアント (1K 以上) へのストリーミング。
WebSocket チャット サーバー。
他のすべての目的には、単純な API を使用してください。