非同期Cドライバー:パブリック プレビュー
C開発者とMongoDB:amongoc
ライブラリとのやり取りを再構築する可能性がある新しいプロトタイプのリリースを共有できることをときごとに共有します。この実験的なドライバーは、非同期プログラミングの能力を活用して、 MongoDB操作のための効率的で非ブロッキングなインターフェースを提供します。まだpublic previewで、本番環境の準備はできていませんが、フィードバックはこのプロジェクトの将来の方向性を形成する上で重要な役割を果たします。
重要
プレビュー機能
プレビュー機能には技術的およびセキュリティ上の制限があるため、本番環境で使用することは推奨されません。機能のプレビューに関する考慮事項の詳細については、「 プレビュー機能 」を参照してください。
とは何ですか。
amongoc
、つまり「非同期MongoDB Cドライバー」は、 MongoDB用のパフォーマンスが高く、非同期のクライアントライブラリを必要とする開発者向けに設計されています。これはMongoDBドライバー API の選択されたサブセットを実装し、C ベースの非同期クライアントがどのようになるかをスナップショットで提供します。このプロトタイプを評価することで、開発者は近い将来、本番環境に対応できるソリューションの開発に影響を与える可能性のある重要なインサイトを収集するのに役立ちます。
非同期をGo理由
amongoc
をビルドする理由は、パフォーマンスの最適化と高い同時実行性の提供にあります。非同期プログラミングは、タスクの開始をその継続から分離するため、同期操作、特に I/O の非効率的であり、本質的に遅く、他のプロセスをブロックする可能性がある問題に対処します。非同期プログラミングを使用すると、I/O 操作が完了するのを待っている間もアプリケーションが応答性を維持できるため、高パフォーマンスでネットワークを集中的に使用するケースに最適です。amongoc
は、 MongoDBを Drogon のような非同期フレームワークに統合することも容易にします。注目すべき機能として、 Cドライバーに対するユーザーからのリクエスト上位機能でもあります。
Within
amongoc
を確認するには、 Githubリポジトリ にアクセスし、 包括的なドキュメント にアクセスします。以下のリソースが含まれます。
チュートリアル では、一般的なユースケースについて説明し、非同期操作の可能性を紹介します。
次の例では、非同期イベントループを初期化し、amongoc
ライブラリを使用してローカルMongoDBサーバーへの接続を確立しようとするアプリケーションです。
amongoc_box on_connect(amongoc_box userdata, amongoc_status *status, amongoc_box result); int main(void) { amongoc_loop loop; amongoc_status status = amongoc_default_loop_init(&loop); amongoc_if_error(status, msg) { fprintf(stderr, "Failed to prepare the event loop: %s\n", msg); return 2; } // Initiate a connection amongoc_emitter em = amongoc_client_new(&loop, "mongodb://localhost:27017"); // Set the continuation em = amongoc_then(em, &on_connect); // Run the program amongoc_detach_start(em); amongoc_default_loop_run(&loop); // Clean up amongoc_default_loop_destroy(&loop); return 0; } amongoc_box on_connect(amongoc_box userdata, amongoc_status *status, amongoc_box result) { // We aren't using the userdata for this example. (void)userdata; // Check for an error amongoc_if_error(*status, msg) { fprintf(stderr, "Error while connecting to server: %s\n", msg); } else { printf("Successfully connected!\n"); amongoc_client *client; amongoc_box_take(client, result); // `client` now stores a valid client. We don't do anything else, so just delete it: amongoc_client_delete(client); } amongoc_box_destroy(result); return amongoc_nil; }
フィードバック: あなたの言語は重要
このpublic previewリリースは、amongoc
の本番環境向けバージョンのアーキテクチャ上の決定を通知するために、ユーザーフィードバックの収集に焦点を当てています。Githubディスカッションと問題で考えや提案を共有するよう招待します。特に、 インターフェースと、ビルドおよびランタイムの要件に関するご質問は含みます。当社の目的は、ユーザー コミュニティのニーズと期待に一致するよう、可能な限り多くのユーザーからの評価を収集することです。フィードバックは重要ではなく、amongoc
を使用して作成するものをご覧ください。