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.
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 :
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é.
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.
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.
Voici quelques-unes des fonctionnalités remarquables du SDK C++ pour Couchbase :
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(); }
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();
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.
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"; }
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"; }
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"; }
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 }
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”) }
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.
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 :
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.
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 :
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!