「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Couchbase 用 C++ SDK の一般提供の発表

Couchbase 用 C++ SDK の一般提供の発表

2024 年 8 月 6 日に公開
ブラウズ:978

Announcing General Availability of the C   SDK for Couchbase

C SDKfor Couchbase の一般提供 (GA) を発表できることを嬉しく思います。このリリースでは、11 のプログラミング言語の既存の包括的な SDK ライブラリ セットにネイティブ C 言語のサポートが追加され、最新のスケーラブルなアプリケーションを構築するための堅牢で高性能なツールを開発者に提供するという当社の取り組みにおける重要なマイルストーンとなります。実際、この C SDK は、既存の Python、NodeJS、Ruby、および PHP SDK の背後にあるコア ライブラリであり、これらすべてのプログラミング言語にわたって一貫したパフォーマンスと効率的なエクスペリエンスを提供するよう努めています。

なぜ C SDK を使うのか?

C は、そのパフォーマンス、効率性、システム リソースの制御により、多くの開発者にとって依然として重要な言語です。 C SDK を導入することで、Couchbase は開発者がこれらの利点を活用しながら、Couchbase の高度な NoSQL 機能を最大限に活用できるようにします。このリリースがゲームチェンジャーである主な理由をいくつか示します:

パフォーマンス

C は、その速度と低レベルのメモリ管理で知られており、パフォーマンスが重要なアプリケーションに最適です。 C SDK for Couchbase を使用すると、速度や効率を犠牲にすることなく、高性能アプリケーションを構築できるようになります。

シームレス統合

C SDK は Couchbase Server とのシームレスな統合を提供し、開発者が KV 操作、SQL クエリ、トランザクションなどの操作を簡単に実行できるようにします。この緊密な統合により、アプリケーションは高いパフォーマンスを維持しながら効果的に拡張できます。

最新の API 設計

C SDK は、最新の C 標準に準拠した最新の慣用的な API を備えています。これにより、C 開発者にとって強力なだけでなく直観的なものとなり、学習曲線が短縮され、アプリケーションの構築を迅速に開始できるようになります。

主な特長

ここでは、Couchbase 用 C SDK の優れた機能をいくつか紹介します:

簡単な接続管理

C SDK は接続管理を簡素化し、最小限の労力で Couchbase クラスターへの接続を確立および管理できるようにします。これには、接続プーリング、負荷分散、フェイルオーバーの処理が含まれており、アプリケーションの回復力とパフォーマンスを確保します。これは、SDK がクラスターのトポロジを自動的に読み取り、クラスターのサイズ変更やクラスターのアップグレードなどのトポロジーの変更中にシームレスな接続を提供できることを意味します。以下は、couchbase データベースに接続するための C コードの例です。

// Attempt to connect to the Couchbase cluster
auto [connect_err, cluster] = couchbase::cluster::connect(config.connection_string, options).get();

if (connect_err) {
    // Output the error message if connection fails
    std::cout 



Key-Value (KV) 操作のサポート

C SDK は、キー値操作の実行をネイティブにサポートします。キーと値の操作は couchbase に固有であり、couchbase に保存されているドキュメントに対して非常に高速な CRUD 操作を提供します。以下は、ドキュメントの単純な KV get および upsert を実行する C コードの例です。

auto collection = cluster.bucket(config.bucket_name)
                         .scope(config.scope_name)
                         .collection(config.collection_name);

// KV- get
auto record = collection.get(document_id);
std::cout 



リッチクエリ、検索、ベクトル検索のサポート

C SDK は SQL クエリ、全文検索 (FTS)、およびベクトル検索をサポートし、複雑なデータ操作を実行するための強力なツールを提供します。高度なクエリを実行する必要がある場合でも、全文検索を実行する必要がある場合でも、SDK が対応します。

クエリ検索

以下は、航空会社のコレクションからレコードを取得するための単純な SQL クエリを実行するコード スニペットです:

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
  auto [err, resp] = scope.query("SELECT * FROM airline LIMIT 10").get();
  std::cout 



全文検索 (FTS)

以下は、FTS クエリを実行して、ランドマーク コレクションに作成されたインデックス「nice restaurant」の全文検索を実行するコード スニペットです。

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
     couchbase::search_request(couchbase::query_string_query("nice restaurants")),
     couchbase::search_options{}.fields({ "content" }))
  .get();
for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<:codec::tao_json_serializer>();
  std::cout 



ベクトル検索

以下は、ベクトル検索クエリを実行するコード スニペットです:

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);

// weights could be retrieved from your llm model or openAI
std::vector weights{ 0.1, 0.2, 0.3, 0.4 };
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
    couchbase::search_request(couchbase::vector_search(
    couchbase::vector_query(field_name, weights))))
  .get();

for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<:codec::tao_json_serializer>();
  std::cout 



非同期プログラミング

SDK は非同期プログラミング モデルをサポートしており、応答性の高いノンブロッキング アプリケーションを構築できます。これは、応答性の維持が不可欠な高スループットのアプリケーションに特に役立ちます。以下は、非同期コンテキストでトランザクションを実行する例です:

std::shared_ptr ctx) -> couchbase::error {
  ctx->get(
    collection,
    some_id,
    // do something in this transaction
}

取引

この新しい C SDK にはトランザクションのサポートが含まれており、パフォーマンスの向上と機能を追加することで既存の C トランザクション サポートを置き換えます。以下は、トランザクション コンテキストを作成するためのサンプル コード スニペットです:

std::shared_ptr<:transactions::attempt_context> ctx) -> couchbase::error {
  ctx.insert(collection, "doc-a", nlohmann::json({}));
  couchbase::transactions::transaction_get_result doc_a = ctx->get( collection, “doc-a”)
}

堅牢なエラー処理

エラー処理はどのアプリケーションでも重要です。C SDK は、他の SDK と同様に、接続ドロップの再試行、接続プーリング、有益なエラー メッセージなどの包括的なエラー処理機能を提供します。これにより、エラーを適切に処理して回復できるようになり、アプリケーションの安定性と信頼性が向上します。

はじめる

Couchbase の C SDK を使い始めるのに役立つように、ドキュメント Web サイトに詳細なスタート ガイドを用意しました。開始方法の簡単な概要は次のとおりです:

    • SDK をインストールします : ドキュメントのインストール手順に従って、開発環境に SDK をセットアップします。
    • クラスターに接続 : Couchbase クラスターに接続します。
    • CRUD 操作を実行し、クエリを実行し、Couchbase の強力な機能を活用します。

コミュニティとサポート

私たちはコミュニティとオープンソース開発の力を信じています。 Couchbase の C SDK はオープンソースなので、貢献し、フィードバックを提供し、会話に参加することをお勧めします。サポートについては、エンタープライズ ライセンスを取得した顧客の場合はサポート経由で問い合わせることができます。そうでない場合は、包括的なドキュメントにアクセスするか、Couchbase フォーラムまたは Couchbase Discord に参加するか、サポート ポータル経由で問い合わせることができます。

参考文献

詳細については、ドキュメント Web サイトをご覧ください。 API、特にトランザクションと非同期操作について詳しく説明し、さらに深く掘り下げるための他の参考資料とサンプル バインディングのリンクを提供します。

    • Couchbase C SDK コード例
    • Couchbase C SDK ドキュメント
    • Couchbase C SDKをダウンロードしてインストールします

サポートされているオペレーティング システムは、ドキュメント Web サイトにリストされています。

コーディングを楽しんでください!

カウチベースチーム

Couchbase 用 C SDK の一般提供の発表という投稿は、最初に The Couchbase Blog に掲載されました。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/couchbase/owned-general-availability-of-the-c-sdk-for-couchbase-51cg 侵害がある場合は、削除するために[email protected]に連絡してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3