Estamos encantados de anunciar la Disponibilidad General (AG) del SDK PARA C ¡para Couchbase! Esta versión añade soporte para el lenguaje nativo C++ a nuestro completo conjunto de Bibliotecas SDK en 11 lenguajes de programación y marca un hito importante en nuestro compromiso de ofrecer herramientas sólidas y de alto rendimiento para que los desarrolladores creen aplicaciones modernas y escalables. De hecho, este kit de desarrollo de software para C++ es la biblioteca central de nuestro actual kit de desarrollo de software para C++. Python, NodeJS, Rubyy PHP SDK y se esfuerza por ofrecer una experiencia coherente, eficaz y eficiente en todos estos lenguajes de programación.
¿Por qué C++ SDK?
C++ sigue siendo un lenguaje vital para muchos desarrolladores debido a su rendimiento, eficiencia y control sobre los recursos del sistema. Con la introducción del SDK de C++, Couchbase permite a los desarrolladores aprovechar estas ventajas y sacar el máximo partido de las avanzadas capacidades NoSQL de Couchbase. Estas son algunas de las razones por las que esta versión cambia las reglas del juego:
Rendimiento
C++ es conocido por su velocidad y su gestión de memoria de bajo nivel, lo que lo hace ideal para aplicaciones donde el rendimiento es crítico. El SDK de C++ para Couchbase garantiza que puedas crear aplicaciones de alto rendimiento sin sacrificar la velocidad ni la eficiencia.
Integración perfecta
El SDK de C++ proporciona una integración perfecta con Couchbase Server, permitiendo a los desarrolladores realizar fácilmente operaciones como operaciones KV, consultas SQL++ y transacciones. Esta estrecha integración garantiza que tus aplicaciones puedan escalar eficazmente manteniendo un alto rendimiento.
Diseño moderno de API
El SDK de C++ presenta una API moderna e idiomática que se ajusta a los últimos estándares de C++. Esto hace que no solo sea potente, sino también intuitivo para los desarrolladores de C++, lo que reduce la curva de aprendizaje y permite empezar a crear aplicaciones rápidamente.
Características principales
Estas son algunas de las características más destacadas del SDK de C++ para Couchbase:
Gestión sencilla de las conexiones
El SDK de C++ simplifica gestión de conexioneste permite establecer y gestionar conexiones a tu clúster de Couchbase con el mínimo esfuerzo. Esto incluye el manejo de la agrupación de conexiones, el equilibrio de carga y la conmutación por error, lo que garantiza que tu aplicación siga siendo resistente y tenga un buen rendimiento. Esto significa que el SDK puede leer automáticamente la topología de su clúster y proporcionar conexiones sin problemas durante los cambios de topología, tales como cambios de tamaño de clúster o actualizaciones de clúster. A continuación se muestra un ejemplo de código C++ para conectarse a su base de datos couchbase.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Intento de conexión al cluster Couchbase auto [connect_err, grupo] = couchbase::grupo::conecte(config.cadena_de_conexión, opciones).consiga(); si (connect_err) { // Emite el mensaje de error si falla la conexión std::cout << "No se ha podido conectar al clúster. Código de error: " << connect_err.mensaje() << "\n"; } si no { auto colección = grupo.cubo(config.nombre_cubo) .alcance(config.nombre_ámbito) .colección(config.nombre_colección); // d algo interesante grupo.cerrar().consiga(); } |
Soporte de operaciones clave-valor (KV)
El SDK de C++ soporta de forma nativa la realización de operaciones clave-valor. Las operaciones clave-valor son exclusivas de couchbase y proporcionan operaciones CRUD muy rápidas para documentos almacenados en couchbase. A continuación se muestra un ejemplo de código C++ para ejecutar una simple KV consiga & upsert de un documento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
auto colección = grupo.cubo(config.nombre_cubo) .alcance(config.nombre_ámbito) .colección(config.nombre_colección); // KV- get auto registro = colección.consiga(document_id); std::cout << registro.contenido_como() << "\n"; // crear un nuevo documento const std::cadena document_id{ "ejemplo_mínimo" }; const tao::json::valor documento_de_base{ { "a", 1.0 }, { "b", 2.0 }, }; // KV auto [err, resp] = colección.upsert(document_id, documento_de_base, {}).consiga(); si (err.ec()) { std::cout << "ec: " << err.mensaje() << ", "; } si no { std::cout << "id: " << document_id << ", CAS: " << resp.cas().valor() << "\n"; } grupo.cerrar().consiga(); |
Soporte enriquecido para consultas, búsquedas y búsquedas vectoriales
El SDK de C++ admite Consultas SQL, búsqueda de texto completo (FTS), y búsqueda vectorialle proporciona potentes herramientas para realizar operaciones de datos complejas. Tanto si necesita ejecutar consultas sofisticadas como realizar búsquedas de texto completo, el SDK tiene todo lo que necesita.
Búsqueda de consultas
A continuación se muestra un fragmento de código para ejecutar un simple Consulta SQL para obtener registros de la colección de aerolíneas:
1 2 3 4 5 6 |
auto alcance = grupo.cubo(config.nombre_cubo).alcance(config.nombre_ámbito); auto [err, resp] = alcance.consulta("SELECT * FROM aerolínea LIMIT 10").consiga(); std::cout << "--- Iterando como objetos JSON:\n"; para (auto fila : resp.rows_as_json()) { std::cout << " Aerolínea(id: " << fila["aerolínea"]["id"] << ", nombre: \"" << fila["aerolínea"]["nombre"] << "\")\n"; } |
Búsqueda de texto completo (FTS)
A continuación se muestra un fragmento de código para ejecutar un Consulta FTS para realizar una búsqueda de texto completo de "buenos restaurantes" el índice creado en la colección de puntos de referencia:
1 2 3 4 5 6 7 8 9 10 |
auto alcance = grupo.cubo(config.nombre_cubo).alcance(config.nombre_ámbito); auto [err, resp] = alcance .busque en("viajes-inventario-marcas", couchbase::petición_de_búsqueda(couchbase::query_string_query("bonitos restaurantes")), couchbase::opciones_de_busqueda{}.campos({ "contenido" })) .consiga(); para (const auto& fila : resp.filas()) { auto campos = fila.campos_como<couchbase::códec::serializador_tao_json>(); std::cout << "puntuación: " << fila.puntuación() << ", id: \"" << fila.id() << "\", contenido: \"" << campos["contenido"].get_string() << "\"\n"; } |
Búsqueda vectorial
A continuación se muestra un fragmento de código para ejecutar un búsqueda vectorial consulta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
auto alcance = grupo.cubo(config.nombre_cubo).alcance(config.nombre_ámbito); // los pesos pueden obtenerse de tu modelo llm o de openAI std::vector<doble> pesos{ 0.1, 0.2, 0.3, 0.4 }; auto [err, resp] = alcance .busque en("viajes-inventario-marcas", couchbase::petición_de_búsqueda(couchbase::búsqueda_vectorial( couchbase::consulta_vectorial(nombre_campo, pesos)))) .consiga(); para (const auto& fila : resp.filas()) { auto campos = fila.campos_como<couchbase::códec::serializador_tao_json>(); std::cout << "puntuación: " << fila.puntuación() << ", id: \"" << fila.id() << "\", contenido: \"" << campos["contenido"].get_string() << "\"\n"; } |
Programación asíncrona
El SDK admite programación asíncrona lo que permite crear aplicaciones con capacidad de respuesta y sin bloqueos. Esto es especialmente útil para aplicaciones de alto rendimiento en las que es esencial mantener la capacidad de respuesta. He aquí un ejemplo de ejecución de una transacción en un contexto asíncrono:
1 2 3 4 5 6 |
std::shared_ptr<async_attempt_context> ctx) -> couchbase::error { ctx->consiga( colección, algún_id, // hacer algo en esta transacción } |
Transacciones
Este nuevo SDK de C++ incluye compatibilidad con transacciones y reemplaza nuestro soporte de transacciones C++ existente añadiendo más mejoras de rendimiento y características. A continuación se muestra un fragmento de código de ejemplo para crear un contexto de transacción:
1 2 3 4 |
std::shared_ptr<couchbase::transacciones::contexto_intento> ctx) -> couchbase::error { ctx.insertar(colección, "doc-a", nlohmann::json({})); couchbase::transacciones::transaction_get_result doc_a = ctx->consiga( colección, "doc-a") } |
Gestión de errores robusta
Tratamiento de errores es crucial en cualquier aplicación, y el SDK de C++, al igual que nuestros otros SDK, proporciona funciones completas de gestión de errores, como reintentos en caso de caída de la conexión, agrupación de conexiones y mensajes de error informativos. De este modo, podrá gestionar los errores con elegancia y recuperarse de ellos, mejorando la estabilidad y fiabilidad de sus aplicaciones.
Primeros pasos
Para ayudarte a empezar con el SDK de C++ para Couchbase, hemos preparado una detallada guía de inicio en nuestro sitio web de documentación. Aquí tienes un resumen rápido de cómo empezar:
-
- Instalar el SDK: Siga las instrucciones de instalación de la documentación para configurar el SDK en su entorno de desarrollo.
- Conéctese a su clúster: Conéctese a su clúster Couchbase.
- Realice Operaciones CRUD, ejecutar consultasy aprovechando las potentes funciones de Couchbase.
Comunidad y apoyo
Creemos en el poder de la comunidad y el desarrollo de código abierto. El SDK de C++ para Couchbase es de código abiertoy le animamos a que contribuya, aporte sus comentarios y se una a la conversación. Para obtener asistencia, si es cliente con licencia para empresas, puede ponerse en contacto con nosotros a través del servicio de asistencia. documentaciónúnete al Foros de Couchbase o Couchbase Discordo a través de nuestro portal de asistencia.
Lecturas complementarias
Para obtener más información, consulte nuestro sitio web de documentación. En ella encontrarás más información sobre la API, especialmente sobre transacciones y operaciones asíncronas, así como material de referencia y enlaces a enlaces de ejemplo para que puedas profundizar en el tema:
Sistemas operativos compatibles figuran en nuestro sitio web de documentación.
¡Feliz codificación!
El equipo de Couchbase