É com grande satisfação que anunciamos a disponibilidade geral (GA) do SDK C++ para o Couchbase! Esta versão adiciona suporte para a linguagem C++ nativa ao nosso conjunto abrangente existente de Bibliotecas do SDK em 11 linguagens de programação e representa um marco significativo em nosso compromisso de fornecer ferramentas robustas e de alto desempenho para que os desenvolvedores criem aplicativos modernos e dimensionáveis. De fato, esse SDK C++ é a biblioteca principal por trás de nosso Python, NodeJS, Rubie PHP SDKs e se esforça para oferecer uma experiência consistente, eficiente e de alto desempenho em todas essas linguagens de programação.
Por que o SDK do C++?
O C++ continua sendo uma linguagem vital para muitos desenvolvedores devido ao seu desempenho, eficiência e controle sobre os recursos do sistema. Com a introdução do SDK C++, o Couchbase permite que os desenvolvedores aproveitem essas vantagens e, ao mesmo tempo, tirem o máximo proveito dos recursos avançados de NoSQL do Couchbase. Veja a seguir alguns dos principais motivos pelos quais esse lançamento é um divisor de águas:
Desempenho
O C++ é conhecido por sua velocidade e gerenciamento de memória de baixo nível, o que o torna ideal para aplicativos em que o desempenho é fundamental. O SDK C++ para Couchbase garante que você possa criar aplicativos de alto desempenho sem sacrificar a velocidade ou a eficiência.
Integração perfeita
O SDK C++ oferece integração perfeita com o Couchbase Server, permitindo que os desenvolvedores executem facilmente operações como operações KV, consultas SQL++ e transações. Essa integração estreita garante que seus aplicativos possam ser dimensionados com eficiência, mantendo o alto desempenho.
Design moderno de API
O SDK C++ apresenta uma API moderna e idiomática que se alinha aos mais recentes padrões C++. Isso o torna não apenas avançado, mas também intuitivo para os desenvolvedores de C++, reduzindo a curva de aprendizado e permitindo que você comece a criar aplicativos rapidamente.
Principais recursos
Aqui estão alguns dos recursos de destaque do SDK C++ para Couchbase:
Fácil gerenciamento de conexões
O SDK C++ simplifica gerenciamento de conexõespermitindo que você estabeleça e gerencie conexões com o cluster do Couchbase com o mínimo de esforço. Isso inclui a manipulação do pooling de conexões, o balanceamento de carga e o failover, garantindo que seu aplicativo permaneça resiliente e com bom desempenho. Isso significa que o SDK pode ler automaticamente a topologia do seu cluster e fornecer conexões contínuas durante alterações na topologia, como redimensionamento ou atualização do cluster. Abaixo está um exemplo de código C++ para conectar-se ao seu banco de dados couchbase.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Tentativa de conexão com o cluster do Couchbase automático [connect_err, agrupamento] = couchbase::agrupamento::conectar(configuração.connection_string, opções).obter(); se (connect_err) { // Emite a mensagem de erro se a conexão falhar padrão::cout << "Não foi possível conectar-se ao cluster. Código de erro: " << connect_err.mensagem() << "\n"; } mais { automático coleção = agrupamento.balde(configuração.nome_do_balde) .escopo(configuração.nome_do_escopo) .coleção(configuração.nome_da_coleção); // d algo interessante agrupamento.próximo().obter(); } |
Suporte à operação de chave-valor (KV)
O SDK do C++ suporta nativamente a execução de operações de valor-chave. As operações de valor-chave são exclusivas do couchbase e fornecem operações CRUD muito rápidas para documentos armazenados no couchbase. Abaixo está um exemplo de código C++ para executar uma KV simples obter e upsert de um 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 |
automático coleção = agrupamento.balde(configuração.nome_do_balde) .escopo(configuração.nome_do_escopo) .coleção(configuração.nome_da_coleção); // KV- get automático registro = coleção.obter(id_documento); padrão::cout << registro.content_as() << "\n"; // criar um novo documento const padrão::string id_documento{ "minimal_example" (exemplo mínimo) }; const tao::json::valor documento básico{ { "a", 1.0 }, { "b", 2.0 }, }; // KV automático [erro, resp] = coleção.upsert(id_documento, documento básico, {}).obter(); se (erro.ec()) { padrão::cout << "ec: " << erro.mensagem() << ", "; } mais { padrão::cout << "id: " << id_documento << ", CAS: " << resp.cas().valor() << "\n"; } agrupamento.próximo().obter(); |
Suporte avançado a consultas, pesquisas e pesquisas vetoriais
O SDK C++ oferece suporte a Consultas SQL++, pesquisa de texto completo (FTS), e pesquisa vetorialO SDK é uma ferramenta poderosa para executar operações de dados complexas. Não importa se você precisa executar consultas sofisticadas ou fazer pesquisas de texto completo, o SDK tem tudo o que você precisa.
Pesquisa de consulta
Abaixo está um trecho de código para executar um simples Consulta SQL++ para buscar registros da coleção de companhias aéreas:
1 2 3 4 5 6 |
automático escopo = agrupamento.balde(configuração.nome_do_balde).escopo(configuração.nome_do_escopo); automático [erro, resp] = escopo.consulta("SELECT * FROM airline LIMIT 10").obter(); padrão::cout << "--- Iterando como objetos JSON:\n"; para (automático fila : resp.linhas_como_json()) { padrão::cout << "Companhia aérea(id: " << fila["companhia aérea"]["id"] << ", name: \"" << fila["companhia aérea"]["name" (nome)] << "\")\n"; } |
Pesquisa de texto completo (FTS)
Abaixo está um trecho de código para executar um Consulta FTS para fazer uma pesquisa de texto completo para "bons restaurantes" o índice criado na coleção de referência:
1 2 3 4 5 6 7 8 9 10 |
automático escopo = agrupamento.balde(configuração.nome_do_balde).escopo(configuração.nome_do_escopo); automático [erro, resp] = escopo .pesquisa("marcos de inventário de viagem", couchbase::solicitação_de_pesquisa(couchbase::query_string_query("bons restaurantes")), couchbase::opções_de_pesquisa{}.campos({ "content" (conteúdo) })) .obter(); para (const automático& fila : resp.linhas()) { automático campos = fila.campos_como<couchbase::codec::tao_json_serializer>(); padrão::cout << "score: " << fila.pontuação() << ", id: \"" << fila.id() << "\", conteúdo: \"" << campos["content" (conteúdo)].get_string() << "\"\n"; } |
Pesquisa de vetores
Abaixo está um trecho de código para executar um pesquisa vetorial consulta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
automático escopo = agrupamento.balde(configuração.nome_do_balde).escopo(configuração.nome_do_escopo); // os pesos podem ser recuperados de seu modelo llm ou do openAI padrão::vetor<duplo> pesos{ 0.1, 0.2, 0.3, 0.4 }; automático [erro, resp] = escopo .pesquisa("marcos de inventário de viagem", couchbase::solicitação_de_pesquisa(couchbase::vector_search( couchbase::vector_query(nome_do_campo, pesos)))) .obter(); para (const automático& fila : resp.linhas()) { automático campos = fila.campos_como<couchbase::codec::tao_json_serializer>(); padrão::cout << "score: " << fila.pontuação() << ", id: \"" << fila.id() << "\", conteúdo: \"" << campos["content" (conteúdo)].get_string() << "\"\n"; } |
Programação assíncrona
O SDK oferece suporte a programação assíncrona permitindo que você crie aplicativos responsivos e sem bloqueio. Isso é particularmente útil para aplicativos de alto rendimento em que a manutenção da capacidade de resposta é essencial. Veja a seguir um exemplo de execução de uma transação em um contexto assíncrono:
1 2 3 4 5 6 |
padrão::shared_ptr<async_attempt_context> ctx) -> couchbase::erro { ctx->obter( coleção, algum_id, // fazer algo nessa transação } |
Transações
Esse novo SDK C++ inclui suporte para transações e substitui nosso suporte a transações C++ existente, acrescentando mais recursos e aprimoramentos de desempenho. Abaixo está um exemplo de trecho de código para criar um contexto de transação:
1 2 3 4 |
padrão::shared_ptr<couchbase::transações::attempt_context> ctx) -> couchbase::erro { ctx.inserir(coleção, "doc-a", nlohmann::json({})); couchbase::transações::transaction_get_result doc_a = ctx->obter( coleção, "doc-a") } |
Tratamento robusto de erros
Tratamento de erros é crucial em qualquer aplicativo, e o SDK do C++, assim como nossos outros SDKs, oferece recursos abrangentes de tratamento de erros, incluindo novas tentativas para quedas de conexão, pooling de conexões e mensagens de erro informativas. Isso garante que você possa manipular e se recuperar de erros de forma elegante, aumentando a estabilidade e a confiabilidade dos seus aplicativos.
Primeiros passos
Para ajudá-lo a começar a usar o SDK C++ para Couchbase, preparamos um guia de introdução detalhado em nosso site de documentação. Aqui está uma visão geral rápida de como começar:
-
- Instalar o SDK: Siga as instruções de instalação na documentação para configurar o SDK em seu ambiente de desenvolvimento.
- Conecte-se ao seu cluster: Conecte-se ao seu cluster do Couchbase.
- Executar Operações CRUD, executar consultase aproveitando os recursos avançados do Couchbase.
Comunidade e suporte
Acreditamos no poder da comunidade e no desenvolvimento de código aberto. O SDK C++ para o Couchbase é de código abertoe incentivamos você a contribuir, fornecer feedback e participar da conversa. Para obter suporte, se você for nosso cliente licenciado empresarial, poderá entrar em contato por meio do suporte; caso contrário, poderá acessar nosso abrangente documentação, junte-se ao Fóruns do Couchbase ou Discórdia do Couchbaseou entre em contato por meio de nosso portal de suporte.
Leitura adicional
Para saber mais, consulte nosso site de documentação. Ele detalha mais a API, especialmente no que se refere a transações e operações assíncronas, e fornece outros materiais de referência e links de vinculação de amostra para você se aprofundar:
Sistemas operacionais suportados estão listados em nosso site de documentação.
Boa codificação!
A equipe do Couchbase