Maison  >  Article  >  développement back-end  >  Annonce de la disponibilité générale du SDK C++ pour Couchbase

Annonce de la disponibilité générale du SDK C++ pour Couchbase

王林
王林original
2024-07-19 16:37:42665parcourir

Announcing General Availability of the C++ SDK for Couchbase

Nous sommes ravis d'annoncer la disponibilité générale (GA) du SDK C++ pour Couchbase ! Cette version ajoute la prise en charge du langage C++ natif à notre ensemble complet existant de bibliothèques SDK dans 11 langages de programmation et marque une étape importante dans notre engagement à fournir des outils robustes et hautes performances permettant aux développeurs de créer des applications modernes et évolutives. En fait, ce SDK C++ est la bibliothèque principale derrière nos SDK Python, NodeJS, Ruby et PHP existants et s'efforce de fournir une expérience cohérente, performante et efficace dans tous ces langages de programmation.

Pourquoi le SDK C++ ?

C++ reste un langage vital pour de nombreux développeurs en raison de ses performances, de son efficacité et de son contrôle sur les ressources système. En introduisant le SDK C++, Couchbase permet aux développeurs de tirer parti de ces avantages tout en tirant pleinement parti des capacités NoSQL avancées de Couchbase. Voici quelques raisons clés pour lesquelles cette version change la donne :

Performance

C++ est réputé pour sa rapidité et sa gestion de la mémoire de bas niveau, ce qui le rend idéal pour les applications où les performances sont critiques. Le SDK C++ pour Couchbase garantit que vous pouvez créer des applications hautes performances sans sacrifier la vitesse ou l'efficacité.

Intégration transparente

Le SDK C++ offre une intégration transparente avec Couchbase Server, permettant aux développeurs d'effectuer facilement des opérations telles que des opérations KV, des requêtes SQL++ et des transactions. Cette intégration étroite garantit que vos applications peuvent évoluer efficacement tout en conservant des performances élevées.

Conception d'API moderne

Le SDK C++ propose une API moderne et idiomatique qui s'aligne sur les dernières normes C++. Cela le rend non seulement puissant mais également intuitif pour les développeurs C++, réduisant ainsi la courbe d'apprentissage et vous permettant de commencer à créer des applications rapidement.

Principales fonctionnalités

Voici quelques-unes des fonctionnalités remarquables du SDK C++ pour Couchbase :

Gestion facile des connexions

Le SDK C++ simplifie la gestion des connexions, vous permettant d'établir et de gérer les connexions à votre cluster Couchbase avec un minimum d'effort. Cela inclut la gestion du regroupement de connexions, l’équilibrage de charge et le basculement, garantissant ainsi que votre application reste résiliente et performante. Cela signifie que le SDK peut lire automatiquement la topologie de votre cluster et fournir des connexions transparentes lors des modifications de topologie telles que le redimensionnement ou la mise à niveau du cluster. Vous trouverez ci-dessous un exemple de code C++ pour vous connecter à votre base de données couchbase.

// 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 << "Unable to connect to the cluster. Error code: " << connect_err.message() << "\n";
} else {
    auto collection = cluster.bucket(config.bucket_name)
                             .scope(config.scope_name)
                             .collection(config.collection_name);

    // d something interesting

    cluster.close().get();
}

Prise en charge des opérations par valeur clé (KV)

Le SDK C++ prend en charge nativement l'exécution d'opérations clé-valeur. Les opérations clé-valeur sont uniques à Couchbase et fournissent des opérations CRUD très rapides pour les documents stockés dans Couchbase. Vous trouverez ci-dessous un exemple de code C++ pour exécuter une simple obtention et insertion KV d'un document.

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 << record.content_as() << "\n";

// create a new document
const std::string document_id{ "minimal_example" };
const tao::json::value basic_doc{
  { "a", 1.0 },
  { "b", 2.0 },
};

// KV 
auto [err, resp] = collection.upsert(document_id, basic_doc, {}).get();
if (err.ec()) {
  std::cout << "ec: " << err.message() << ", ";
} else {
  std::cout << "id: " << document_id << ", CAS: " << resp.cas().value() << "\n";
}

cluster.close().get();

Prise en charge des requêtes riches, de la recherche et de la recherche de vecteurs

Le SDK C++ prend en charge les requêtes SQL++, la recherche en texte intégral (FTS) et la recherche vectorielle, vous offrant ainsi des outils puissants pour effectuer des opérations de données complexes. Que vous ayez besoin d'exécuter des requêtes sophistiquées ou d'effectuer des recherches en texte intégral, le SDK est là pour vous.

Recherche de requête

Vous trouverez ci-dessous un extrait de code permettant d'exécuter une simple requête SQL++ pour récupérer les enregistrements de la collection des compagnies aériennes :

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
  auto [err, resp] = scope.query("SELECT * FROM airline LIMIT 10").get();
  std::cout << "--- Iterating as JSON objects:\n";
  for (auto row : resp.rows_as_json()) {
    std::cout << "Airline(id: " << row["airline"]["id"] << ", name: \"" << row["airline"]["name"] << "\")\n";
  }

Recherche en texte intégral (FTS)

Vous trouverez ci-dessous un extrait de code pour exécuter une requête FTS afin d'effectuer une recherche en texte intégral pour « bons restaurants » l'index créé sur la collection de points de repère :

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<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

Recherche de vecteurs

Vous trouverez ci-dessous un extrait de code pour exécuter une requête de recherche vectorielle :

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

// weights could be retrieved from your llm model or openAI
std::vector<double> 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<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

Programmation asynchrone

Le SDK prend en charge les modèles de programmation asynchrone, vous permettant de créer des applications réactives et non bloquantes. Ceci est particulièrement utile pour les applications à haut débit où le maintien de la réactivité est essentiel. Voici un exemple d'exécution d'une transaction dans un contexte asynchrone :

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

Transactions

Ce nouveau SDK C++ inclut la prise en charge des transactions et remplace notre prise en charge existante des transactions C++ en ajoutant davantage d'améliorations de performances et de fonctionnalités. Vous trouverez ci-dessous un exemple d'extrait de code pour créer un contexte de transaction :

std::shared_ptr<couchbase::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”)
}

Gestion robuste des erreurs

La gestion des erreurs est cruciale dans toute application, et le SDK C++, tout comme nos autres SDK, fournit des fonctionnalités complètes de gestion des erreurs, notamment de nouvelles tentatives en cas d'interruption de connexion, de regroupement de connexions et de messages d'erreur informatifs. Cela garantit que vous pouvez gérer et récupérer facilement les erreurs, améliorant ainsi la stabilité et la fiabilité de vos applications.

Commencer

Pour vous aider à démarrer avec le SDK C++ pour Couchbase, nous avons préparé un guide de démarrage détaillé sur notre site Web de documentation. Voici un bref aperçu de la façon de commencer :

    • Installer le SDK : Suivez les instructions d'installation dans la documentation pour configurer le SDK dans votre environnement de développement.
    • Connectez-vous à votre cluster : Connectez-vous à votre cluster Couchbase.
    • Effectuez des opérations CRUD, exécutez des requêtes et tirez parti des puissantes fonctionnalités de Couchbase.

Communauté et soutien

Nous croyons au pouvoir du développement communautaire et open source. Le SDK C++ pour Couchbase est open source et nous vous encourageons à contribuer, à fournir des commentaires et à rejoindre la conversation. Pour obtenir de l'aide, si vous êtes notre client sous licence d'entreprise, vous pouvez nous contacter via l'assistance, sinon vous pouvez accéder à notre documentation complète, rejoindre les forums Couchbase ou Couchbase Discord, ou nous contacter via notre portail d'assistance.

Lectures complémentaires

Pour en savoir plus, consultez notre site de documentation. Il entre plus en détail sur l'API, en particulier sur les transactions et les opérations asynchrones et fournit d'autres documents de référence et des exemples de liens de liaisons pour que vous puissiez approfondir :

    • Exemples de code du SDK Couchbase C++
    • Documentation du SDK Couchbase C++
    • Téléchargez et installez le SDK Couchbase C++

Les systèmes d'exploitation pris en charge sont répertoriés sur notre site Web de documentation.

Bon codage !

L'équipe Couchbase

Le message annonçant la disponibilité générale du SDK C++ pour Couchbase est apparu en premier sur le blog Couchbase.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn