userver - C++ 非同期フレームワーク (ベータ)

(The C++ Asynchronous Framework (beta))

Created at: 2021-12-16 22:06:27
Language: C++
License: Apache-2.0

ユーザーバー

userverは、C++ マイクロサービス、サービス、およびユーティリティを迅速かつ快適に作成するための豊富な抽象化セットを備えたオープン ソースの非同期フレームワークです。

このフレームワークは、効率的な I/O 相互作用の問題を開発者に対して透過的に解決します。通常は実行スレッドを中断する操作は、中断しません。その代わりに、スレッドは他のリクエストとタスクを処理し、すぐに実行されることが保証されている場合にのみ操作の処理に戻ります。

std::size_t Ins(storages::postgres::Transaction& tr, std::string_view key) {
  // Asynchronous execution of the SQL query in transaction. Current thread
  // handles other requests while the response from the DB is being received:
  auto res = tr.Execute("INSERT INTO keys VALUES ($1)", key);
  return res.RowsAffected();
}

その結果、フレームワークを使用すると、簡単なソース コードを取得し、CPU を消費する OS からのコンテキスト スイッチを回避し、少量の実行スレッドで CPU を効率的に使用できます。

その他の機能

  • データベース (MongoDB、PostgreSQL、Redis など) とデータ転送プロトコル (HTTP、GRPC、TCP など) の効率的な非同期ドライバー、タスクの構築とキャンセル。
  • キャッシュ、タスク、分散ロック、ロギング、トレース、統計、メトリック、JSON/YAML/BSON のための高レベル コンポーネントの豊富なセット。
  • サービス構成をオンザフライで変更する機能。
  • オンザフライで構成可能なドライバー、期限の伝播のオプション、タイムアウト、輻輳制御。
  • 非同期の低レベル同期プリミティブと OS 抽象化の包括的なセット。

詳細については、ドキュメントを参照してください