Mengumumkan Ketersediaan Umum C++ SDK untuk Couchbase

王林
Lepaskan: 2024-07-19 16:37:42
asal
697 orang telah melayarinya

Announcing General Availability of the C++ SDK for Couchbase

Kami sangat teruja untuk mengumumkan Ketersediaan Umum (GA) C++ SDKfor Couchbase! Keluaran ini menambah sokongan untuk bahasa C++ asli kepada set lengkap perpustakaan SDK kami yang sedia ada dalam 11 bahasa pengaturcaraan dan menandakan pencapaian penting dalam komitmen kami untuk menyediakan alatan berprestasi tinggi yang teguh untuk pembangun membina aplikasi moden dan berskala. Malah, SDK C++ ini ialah perpustakaan teras di sebalik SDK Python, NodeJS, Ruby dan PHP kami yang sedia ada dan berusaha untuk memberikan pengalaman yang konsisten, berprestasi dan cekap merentas semua bahasa pengaturcaraan ini.

Mengapa C++ SDK?

C++ kekal sebagai bahasa penting bagi kebanyakan pembangun kerana prestasi, kecekapan dan kawalannya ke atas sumber sistem. Dengan memperkenalkan C++ SDK, Couchbase memperkasakan pembangun untuk memanfaatkan kelebihan ini sambil memanfaatkan sepenuhnya keupayaan NoSQL lanjutan Couchbase. Berikut ialah beberapa sebab utama mengapa keluaran ini mengubah permainan:

Prestasi

C++ terkenal dengan kepantasan dan pengurusan memori peringkat rendah, menjadikannya sesuai untuk aplikasi yang mempunyai prestasi kritikal. SDK C++ untuk Couchbase memastikan anda boleh membina aplikasi berprestasi tinggi tanpa mengorbankan kelajuan atau kecekapan.

Integrasi Yang Lancar

SDK C++ menyediakan penyepaduan yang lancar dengan Pelayan Couchbase, membolehkan pembangun melaksanakan operasi dengan mudah seperti operasi KV, pertanyaan SQL++ dan transaksi. Penyepaduan yang ketat ini memastikan aplikasi anda boleh berskala dengan berkesan sambil mengekalkan prestasi tinggi.

Reka Bentuk API Moden

SDK C++ menampilkan API idiomatik moden yang sejajar dengan piawaian C++ terkini. Ini menjadikannya bukan sahaja berkuasa tetapi juga intuitif untuk pembangun C++, mengurangkan keluk pembelajaran dan membolehkan anda mula membina aplikasi dengan cepat.

Ciri-ciri Utama

Berikut ialah beberapa ciri menonjol C++ SDK untuk Couchbase:

Pengurusan Sambungan Mudah

SDK C++ memudahkan pengurusan sambungan, membolehkan anda mewujudkan dan mengurus sambungan ke gugusan Couchbase anda dengan usaha yang minimum. Ini termasuk mengendalikan pengumpulan sambungan, pengimbangan beban dan failover, memastikan aplikasi anda kekal berdaya tahan dan berprestasi. Ini bermakna SDK boleh membaca topologi kluster anda secara automatik dan menyediakan sambungan lancar semasa perubahan topologi seperti saiz semula kluster atau naik taraf kluster. Di bawah ialah contoh kod C++ untuk disambungkan ke pangkalan data couchbase anda.

// 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();
}
Salin selepas log masuk

Sokongan Operasi Nilai-Kekunci (KV).

SDK C++ secara asli menyokong pelaksanaan operasi nilai utama. Operasi nilai kunci adalah unik untuk couchbase dan menyediakan operasi CRUD yang sangat pantas untuk dokumen yang disimpan dalam couchbase. Di bawah ialah contoh kod C++ untuk menjalankan KV get & upsert mudah dokumen.

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();
Salin selepas log masuk

Pertanyaan Kaya, Carian dan Sokongan Carian Vektor

SDK C++ menyokong pertanyaan SQL++, carian teks penuh (FTS) dan carian vektor, memberikan anda alatan berkuasa untuk melaksanakan operasi data yang kompleks. Sama ada anda perlu menjalankan pertanyaan yang sofistikated atau melakukan carian teks penuh, SDK telah membantu anda.

Carian Pertanyaan

Di bawah ialah coretan kod untuk melaksanakan pertanyaan SQL++ mudah untuk mengambil rekod daripada koleksi syarikat penerbangan:

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";
  }
Salin selepas log masuk

Carian Teks Penuh (FTS)

Di bawah ialah coretan kod untuk melaksanakan pertanyaan FTS untuk melakukan carian teks penuh untuk "restoran yang bagus" indeks yang dibuat pada koleksi mercu tanda:

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";
}
Salin selepas log masuk

Carian Vektor

Di bawah ialah coretan kod untuk melaksanakan pertanyaan carian vektor:

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";
}
Salin selepas log masuk

Pengaturcaraan Asynchronous

SDK menyokong model pengaturcaraan tak segerak, membolehkan anda membina aplikasi yang responsif dan tidak menyekat. Ini amat berguna untuk aplikasi berkemampuan tinggi yang mengekalkan responsif adalah penting. Berikut ialah contoh menjalankan transaksi dalam konteks tak segerak:

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

Transaksi

SDK C++ baharu ini termasuk sokongan untuk transaksi dan menggantikan sokongan transaksi C++ sedia ada kami dengan menambahkan lebih banyak peningkatan prestasi dan ciri. Di bawah ialah contoh coretan kod untuk membuat konteks transaksi:

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”)
}
Salin selepas log masuk

Pengendalian Ralat Teguh

Pengendalian ralat adalah penting dalam mana-mana aplikasi, dan SDK C++, sama seperti SDK kami yang lain, menyediakan keupayaan pengendalian ralat yang komprehensif termasuk cuba semula untuk sambungan terputus, pengumpulan sambungan dan mesej ralat bermaklumat. Ini memastikan anda boleh mengendalikan dan memulihkan ralat dengan anggun, meningkatkan kestabilan dan kebolehpercayaan aplikasi anda.

Bermula

Untuk membantu anda bermula dengan C++ SDK untuk Couchbase, kami telah menyediakan panduan permulaan yang terperinci di tapak web dokumentasi kami. Berikut ialah gambaran ringkas tentang cara memulakan:

    • Pasang SDK : Ikut arahan pemasangan dalam dokumentasi untuk menyediakan SDK dalam persekitaran pembangunan anda.
    • Sambung ke Kluster Anda : Sambung ke kluster Couchbase anda.
    • Lakukan operasi CRUD, jalankan pertanyaan dan memanfaatkan ciri hebat Couchbase.

Komuniti dan Sokongan

Kami percaya pada kuasa pembangunan komuniti dan sumber terbuka. SDK C++ untuk Couchbase ialah sumber terbuka dan kami menggalakkan anda untuk menyumbang, memberikan maklum balas dan menyertai perbualan. Untuk sokongan, jika anda pelanggan berlesen perusahaan kami, anda boleh menghubungi melalui sokongan, jika tidak, anda boleh mengakses dokumentasi komprehensif kami, menyertai Forum Couchbase atau Couchbase Discord, atau menghubungi melalui portal sokongan kami.

Bacaan Selanjutnya

Untuk mengetahui lebih lanjut, lihat tapak web dokumentasi kami. Ia menerangkan dengan lebih terperinci tentang API, terutamanya di sekitar transaksi dan operasi tak segerak serta menyediakan bahan rujukan lain dan pautan pengikatan sampel untuk anda gali lebih dalam:

    • Contoh kod SDK Couchbase C++
    • Dokumentasi SDK Couchbase C++
    • Muat turun dan pasang Couchbase C++ SDK

Sistem pengendalian yang disokong disenaraikan di tapak web dokumentasi kami.

Selamat mengekod!

Pasukan Couchbase

Siaran Mengumumkan Ketersediaan Umum SDK C++ untuk Couchbase muncul pertama kali di Blog Couchbase.

Atas ialah kandungan terperinci Mengumumkan Ketersediaan Umum C++ SDK untuk Couchbase. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan