Docs Menu
Docs Home
/ / /
C ドライバー

非同期Cドライバー:パブリック プレビュー

C開発者とMongoDB:amongoc ライブラリとのやり取りを再構築する可能性がある新しいプロトタイプのリリースを共有できることをときごとに共有します。この実験的なドライバーは、非同期プログラミングの能力を活用して、 MongoDB操作のための効率的で非ブロッキングなインターフェースを提供します。まだpublic previewで、本番環境の準備はできていませんが、フィードバックはこのプロジェクトの将来の方向性を形成する上で重要な役割を果たします。

重要

プレビュー機能

プレビュー機能には技術的およびセキュリティ上の制限があるため、本番環境で使用することは推奨されません。機能のプレビューに関する考慮事項の詳細については、「 プレビュー機能 」を参照してください。

amongoc、つまり「非同期MongoDB Cドライバー」は、 MongoDB用のパフォーマンスが高く、非同期のクライアントライブラリを必要とする開発者向けに設計されています。これはMongoDBドライバー API の選択されたサブセットを実装し、C ベースの非同期クライアントがどのようになるかをスナップショットで提供します。このプロトタイプを評価することで、開発者は近い将来、本番環境に対応できるソリューションの開発に影響を与える可能性のある重要なインサイトを収集するのに役立ちます。

amongoc をビルドする理由は、パフォーマンスの最適化と高い同時実行性の提供にあります。非同期プログラミングは、タスクの開始をその継続から分離するため、同期操作、特に I/O の非効率的であり、本質的に遅く、他のプロセスをブロックする可能性がある問題に対処します。非同期プログラミングを使用すると、I/O 操作が完了するのを待っている間もアプリケーションが応答性を維持できるため、高パフォーマンスでネットワークを集中的に使用するケースに最適です。amongoc は、 MongoDBを Drogon のような非同期フレームワークに統合することも容易にします。注目すべき機能として、 Cドライバーに対するユーザーからのリクエスト上位機能でもあります。

amongoc を確認するには、 Githubリポジトリ にアクセスし、 包括的なドキュメント にアクセスします。以下のリソースが含まれます。

次の例では、非同期イベントループを初期化し、amongoc ライブラリを使用してローカルMongoDBサーバーへの接続を確立しようとするアプリケーションです。

#include <amongoc/amongoc.h> // Make all APIs visible
#include <stdio.h>
#include <stdlib.h>
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 を使用して作成するものをご覧ください。

戻る

MongoDB C ドライバー

項目一覧