CINXE.COM
Start Using the Kotlin SDK | Couchbase Docs
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv=content-security-policy content="default-src 'none'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; font-src 'self' https://fonts.gstatic.com; frame-src 'self' https:; img-src 'self' data: https:; connect-src 'self' https:; worker-src blob:;"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://metrics.couchbase.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MVPNN2');</script> <!-- End Google Tag Manager --> <title>Start Using the Kotlin SDK | Couchbase Docs</title> <link rel="canonical" href="https://docs.couchbase.com/kotlin-sdk/current/hello-world/start-using-sdk.html"> <link rel="stylesheet" href="../../../_/css/site.css"> <script src="../../../_/js/vendor/jquery.js"></script> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="748511ff-10bf-44bf-88b8-36382e5b5fd9"></script> <script>function OptanonWrapper(){}</script> <meta name="description" content="A Kotlin application running on the JVM can use the Couchbase Kotlin SDK to access a Couchbase cluster."> <link rel="schema.dcterms" href="https://purl.org/dc/terms/"> <link rel="prev" href="overview.html"> <link rel="next" href="../howtos/connecting.html"> <link rel="next" href="../howtos/connecting.html"> <meta name="dcterms.subject" content="kotlin-sdk"> <meta name="dcterms.identifier" content="1.4"> <meta name="page-url" content="/kotlin-sdk/current/hello-world/start-using-sdk.html"> <meta name="page-nav-header-levels" content="0"> <meta name="docsearch:component" content="kotlin-sdk"> <meta name="docsearch:component_title" content="Kotlin SDK"> <meta name="docsearch:cversion" content="1.4"> <meta name="docsearch:component_version" content="kotlin-sdk@1.4"> <meta name="docsearch:module" content="hello-world"> <meta name="docsearch:breadcrumbs" content="Kotlin SDK / Getting Started / Start Using the Kotlin SDK"> <meta name="docsearch:topic_type" content="tutorial"> <meta name="docsearch:version_rank" content="1"> <meta name="docsearch:status" content=""> <meta name="docsearch:edition" content=""> <meta name="docsearch:page_rank" content="50"> <meta name="generator" content="Antora 3.1.5"> <link rel="icon" href="../../../_/img/favicon.svg" type="image/svg+xml"> <link rel="icon" href="../../../_/img/favicon.ico" type="image/x-icon" sizes="any"> </head> <body class="article"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MVPNN2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <header class="header fixed-top"> <div class="header-top-row"> <div class="container"> <nav class="navbar navbar-expand-md flex-nowrap justify-content-between navbar-new-top"> <ul class="navbar-brand-list"> <li class="brand-logo"> <a class="navbar-brand" href="https://www.couchbase.com"> <img src="../../../_/img/couchbase-logo.svg" alt="Couchbase" /> </a> </li> <li> <a class="navbar-brand cb-documentation" href="https://docs.couchbase.com/home/index.html"> <img src="../../../_/img/cb-documentation.svg" alt="Couchbase Documentation" class="cb-docs" /> <img src="../../../_/img/cb-docs-hover.svg" alt="Couchbase Documentation" class="hide cb-hover-docs" /> </a> </li> </ul> <button class="navbar-burger" data-target="topbar-menu"> <span></span> <span></span> <span></span> </button> </nav> </div> </div> <div class="header-bottom-row" id="topbar-menu"> <div class="container"> <nav class="navbar navbar-new-bottom "> <div class="navbar-collapse collapse" id="navbar2"> <ul class="navbar-nav w-100 justify-content-start"> <li class="nav-item ""> <a href="https://docs.couchbase.com/home/index.html" class="nav-link"> <i class="fas fa-home"></i> </a> </li> <li class="nav-item "> <a class="nav-link" href="../../../home/server.html"> Server </a> </li> <li class="nav-item "> <a class="nav-link" href="../../../home/mobile.html"> Mobile </a> </li> <li class="nav-item "> <a class="nav-link" href="../../../home/cloud.html"> Capella </a> </li> <li class="nav-item "> <a class="nav-link" href="../../../cloud-native-database/index.html"> Cloud-Native </a> </li> <li class="nav-item nav-item-selected"> <a class="nav-link" href="../../../home/sdk.html"> Couchbase SDKs </a> </li> <li class="nav-item "> <a class="nav-link" href="../../../home/columnar-sdk.html"> Columnar SDKs </a> </li> </ul> </div> <div class="primary-action"> <div class="navbar-item search" id="search"> <input class="dataLayer query" type="text" placeholder="Search Docs"><i class="fas fa-search"></i> </div> <a class="btn btn-primary btn-grey-reverse" onclick="(window.dataLayer=window.dataLayer||[]).push({'event':'customEvent', 'category':'CTA', 'action':'Button Click', 'label':'Download'});" href="https://www.couchbase.com/downloads"> Downloads <i class="far fa-arrow-to-bottom fa-fw"></i> </a> <a href="https://cloud.couchbase.com/sign-up" class="btn btn-primary" onclick="(window.dataLayer=window.dataLayer||[]).push({'event':'customEvent', 'category':'CTA', 'action':'Button Click', 'label':'Free Trial'});" > Try Free <i class="far fa-cloud fa-fw"></i> </a> </div> </nav> </div> </div> </header> <div class="body container"> <aside class="nav left-sidebar"> <div class="nav-container"> <a href="#" class="menu-expand-toggle"><span>Navigation</span><i class="fas fa-times-circle"></i><i class="fas fa-chevron-circle-left"></i></a> <template id="page-versions" style="display: none"> <select class="version_list" data-component="kotlin-sdk"> <option value="1.4" data-url="start-using-sdk.html" selected>1.4</option> <option value="1.3" data-url="../../1.3/hello-world/start-using-sdk.html">1.3</option> <option value="1.2" data-url="../../1.2/hello-world/start-using-sdk.html">1.2</option> <option value="1.1" data-url="../../1.1/hello-world/start-using-sdk.html">1.1</option> <option value="1.0" data-url="../../1.0/hello-world/overview.html">1.0</option> </select> </template> </div> </aside> <aside class="toc sidebar" data-title="Contents" data-levels="1"> <div class="sidebar-box"> <div class="tools" role="navigation"> <ul> <li class="tool edit"><a href="https://github.com/couchbase/docs-sdk-kotlin/edit/temp/1.4/modules/hello-world/pages/start-using-sdk.adoc" title="Edit Page" target="_blank" rel="noopener" class="remove-ext-icon">Edit on GitHub</a></li> </ul> </div> <div class="toc-menu"></div> <div class="is-this-helpful-box"> <h4> Is this page helpful?</h4> <div class="btn-row"> <a href="#" class="like-btn helpful-btn" id="yesBtn" data-page-rating="like" > <i class="far fa-thumbs-up"></i> Yes </a> <a href="#" class="dislike-btn helpful-btn" id="noBtn" data-page-rating="dislike"> <i class="far fa-thumbs-down"></i> No</a> </div> <div class="any-feedback"> <a href="#" class="btn any-feedback-btn" id="myCustomTrigger">Leave Additional Feedback? </a> </div> <div class="dialog-box" id="dialogBox"> <form> <div class="form-group " id="additionalFeedbackBox"> <textarea class="input-control feed-back-msg" rows="8" placeholder="Any Additonal Feedback?"></textarea> <div class="action-btn-row "> <a href="#" class="skip-btn" id="skipBtnMsg">Skip</a> <button class="submit-btn btn blue-btn disabled" > Submit </button> <a href="#" class="info-btn"><i class="fas fa-info-circle"></i></a> </div> </div> </form> </div> </div> </div> </aside> <div class="feedback-modal modal-popup"> <div class="modal-popup-dialogue"> <div class="popup-header"> <a href="#" class="close-popup"><i class="fa fa-times"></i></a> </div> <div class="popup-content"> <p> Please use the form below to provide your feedback. Because your feedback is valuable to us, the information you submit in this form is recorded in our issue tracking system (JIRA), which is publicly available. You can track the status of your feedback using the ticket number displayed in the dialog once you submit the form. </p> </div> </div> </div> <main class="article" data-ceiling="topbar"> <div class="article-header"> <nav class="crumbs" aria-label="breadcrumbs"> <ul> <li class="crumb"><a href="overview.html">Kotlin SDK</a></li> <li class="crumb">Getting Started</li> <li class="crumb"><a href="start-using-sdk.html">Start Using the Kotlin SDK</a></li> </ul> </nav> </div> <article class="doc"> <div class="page-heading-title"> <h1 class="page">Start Using the Kotlin SDK</h1> <div class="labels"> <ul><li class="tutorial"><span><i class="fas fa-book-reader"></i> tutorial</span></li> </ul> </div> </div> <div class="contributor-list-box"> <span class="last-commit-date" id="commitdate"> </span> <ul id="contributorList"></ul> <span id="otherContributor"> + </span> </div><div id="preamble"> <div class="sectionbody"> <div class="quoteblock abstract"> <blockquote> A Kotlin application running on the JVM can use the Couchbase Kotlin SDK to access a Couchbase cluster. </blockquote> </div> <div class="paragraph"> <p>The Couchbase Kotlin SDK is built on top of the same high performance I/O core as the Couchbase Java SDK. It provides idiomatic Kotlin features like default arguments, suspend functions, and tasteful DSLs.</p> </div> </div> </div> <div class="sect1"> <h2 id="prerequisites"><a class="anchor" href="#prerequisites"></a>Before You Start</h2> <div class="sectionbody"> <div class="ulist"> <ul> <li> <p>You should know <a href="https://kotlinlang.org/docs/gradle.html">how to set up a new Kotlin project using Gradle</a> (or <a href="https://kotlinlang.org/docs/maven.html">using Maven</a>). The SDK requires Kotlin 1.6.20 or later.</p> </li> <li> <p>You will need Java 8 or later. We recommend running the latest Java LTS version with the highest patch version available.</p> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="installing-the-sdk"><a class="anchor" href="#installing-the-sdk"></a>Installing the SDK</h2> <div class="sectionbody"> <div class="paragraph"> <p>All stable versions of the SDK are <a href="https://central.sonatype.com/artifact/com.couchbase.client/kotlin-client/1.4.0">available on Maven Central</a>.</p> </div> <div class="paragraph"> <p>You can use your favorite dependency management tool to include the SDK in your project.</p> </div> <div id="tabs-1" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="tabs-1-gradle-kotlin" class="tab"> <p>Gradle (Kotlin)</p> </li> <li id="tabs-1-gradle-groovy" class="tab"> <p>Gradle (Groovy)</p> </li> <li id="tabs-1-maven" class="tab"> <p>Maven</p> </li> </ul> </div> <div id="tabs-1-gradle-kotlin--panel" class="tabpanel" aria-labelledby="tabs-1-gradle-kotlin"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-kotlin hljs" data-lang="kotlin">implementation("com.couchbase.client:kotlin-client:1.4.0")</code></pre> </div> </div> </div> <div id="tabs-1-gradle-groovy--panel" class="tabpanel" aria-labelledby="tabs-1-gradle-groovy"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">implementation "com.couchbase.client:kotlin-client:1.4.0"</code></pre> </div> </div> </div> <div id="tabs-1-maven--panel" class="tabpanel" aria-labelledby="tabs-1-maven"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><dependency> <groupId>com.couchbase.client</groupId> <artifactId>kotlin-client</artifactId> <version>1.4.0</version> </dependency></code></pre> </div> </div> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="using-a-snapshot-version-optional"><a class="anchor" href="#using-a-snapshot-version-optional"></a>Using a Snapshot Version (optional)</h2> <div class="sectionbody"> <div class="paragraph"> <p>Couchbase publishes pre-release snapshot artifacts to the Sonatype OSS Snapshot Repository. If you wish to use a snapshot version, you’ll need to tell your build tool about this repository.</p> </div> <div id="tabs-2" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="tabs-2-gradle-kotlin" class="tab"> <p>Gradle (Kotlin)</p> </li> <li id="tabs-2-gradle-groovy" class="tab"> <p>Gradle (Groovy)</p> </li> <li id="tabs-2-maven" class="tab"> <p>Maven</p> </li> </ul> </div> <div id="tabs-2-gradle-kotlin--panel" class="tabpanel" aria-labelledby="tabs-2-gradle-kotlin"> <div class="listingblock"> <div class="title"><code><strong>build.gradle.kts</strong></code></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-kotlin hljs" data-lang="kotlin">repositories { mavenCentral() maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") mavenContent { snapshotsOnly() } } }</code></pre> </div> </div> </div> <div id="tabs-2-gradle-groovy--panel" class="tabpanel" aria-labelledby="tabs-2-gradle-groovy"> <div class="listingblock"> <div class="title"><code><strong>build.gradle</strong></code></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-groovy hljs" data-lang="groovy">repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots" mavenContent { snapshotsOnly() } } }</code></pre> </div> </div> </div> <div id="tabs-2-maven--panel" class="tabpanel" aria-labelledby="tabs-2-maven"> <div class="listingblock"> <div class="title"><code><strong>pom.xml</strong></code></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><repositories> <repository> <id>sonatype-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases><enabled>false</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories></code></pre> </div> </div> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="hello-couchbase"><a class="anchor" href="#hello-couchbase"></a>Hello Couchbase</h2> <div class="sectionbody"> <div class="paragraph"> <p>Here’s an example that shows how to execute a SQL++ (formerly N1QL) query and get a document from the Key Value (KV) service.</p> </div> <div id="tabs-3" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="tabs-3-couchbase-capella" class="tab"> <p>Couchbase Capella</p> </li> <li id="tabs-3-local-couchbase-server" class="tab"> <p>Local Couchbase Server</p> </li> </ul> </div> <div id="tabs-3-couchbase-capella--panel" class="tabpanel" aria-labelledby="tabs-3-couchbase-capella"> <div class="paragraph"> <p>This version of the example assumes you are connecting to a <a href="https://docs.couchbase.com/cloud/index.html">Couchbase Capella</a> free tier operational cluster, which has the <code>travel-sample</code> bucket installed by default.</p> </div> <div class="paragraph"> <p>(If you’re not using Couchbase Capella, click the <strong>Local Couchbase Server</strong> tab above.)</p> </div> <div class="paragraph"> <p>Before running the example:</p> </div> <div class="ulist"> <ul> <li> <p>Replace the <code>address</code> variable with the address of your Capella cluster.</p> </li> <li> <p>Replace the <code>username</code> and <code>password</code> arguments with credentials for a cluster user that can read the <code>travel-sample</code> bucket.</p> </li> </ul> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-kotlin hljs" data-lang="kotlin" data-source-url="https://github.com/couchbase/docs-sdk-kotlin/blob/4a3220a43b93c4669258607458976f5f0d5f7c39/modules/hello-world/examples/HelloCloud.kt">import com.couchbase.client.kotlin.Cluster import com.couchbase.client.kotlin.query.execute import kotlinx.coroutines.runBlocking import kotlin.time.Duration.Companion.seconds fun main() { // Replace with your cluster address. val address = "--your-cluster--.cloud.couchbase.com" val cluster = Cluster.connect( connectionString = "couchbases://$address", <i class="conum" data-value="1"></i><b>(1)</b> username = "username", // Replace with credentials password = "password", // of a database user account. ) try { runBlocking { val collection = cluster .bucket("travel-sample") .waitUntilReady(10.seconds) .defaultCollection() // Execute a N1QL query val queryResult = cluster .query("select * from `travel-sample` limit 3") .execute() queryResult.rows.forEach { println(it) } println(queryResult.metadata) // Get a document from the K/V service val getResult = collection.get("airline_10") println(getResult) println(getResult.contentAs<Map<String, Any?>>()) } } finally { runBlocking { cluster.disconnect() } } }</code></pre> </div> </div> <div class="colist arabic"> <table> <tr> <td><i class="conum" data-value="1"></i><b>1</b></td> <td>For Capella, the connection string starts with <code>couchbases://</code> (note the final 's') to enable a secure connection with TLS.</td> </tr> </table> </div> </div> <div id="tabs-3-local-couchbase-server--panel" class="tabpanel" aria-labelledby="tabs-3-local-couchbase-server"> <div class="paragraph"> <p>This version of the example assumes you are connecting to a single-node Couchbase Server cluster running on your local computer.</p> </div> <div class="paragraph"> <p>Before running the example:</p> </div> <div class="ulist"> <ul> <li> <p>Install the <code>travel-sample</code> <a href="../../../server/current/manage/manage-settings/install-sample-buckets.html" class="xref page">sample bucket</a>.</p> </li> <li> <p>Replace the <code>username</code> and <code>password</code> arguments with credentials for a cluster user that can read the <code>travel-sample</code> bucket. You can use the administrator credentials you chose when setting up the cluster.</p> </li> </ul> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-kotlin hljs" data-lang="kotlin" data-source-url="https://github.com/couchbase/docs-sdk-kotlin/blob/4a3220a43b93c4669258607458976f5f0d5f7c39/modules/hello-world/examples/HelloWorld.kt">import com.couchbase.client.kotlin.Cluster import com.couchbase.client.kotlin.query.execute import kotlinx.coroutines.runBlocking import kotlin.time.Duration.Companion.seconds fun main() { val cluster = Cluster.connect( connectionString = "couchbase://127.0.0.1", username = "username", // Replace with credentials password = "password", // of a database user account. ) try { runBlocking { val collection = cluster .bucket("travel-sample") .waitUntilReady(10.seconds) .defaultCollection() // Execute a N1QL query val queryResult = cluster .query("select * from `travel-sample` limit 3") .execute() queryResult.rows.forEach { println(it) } println(queryResult.metadata) // Get a document from the K/V service val getResult = collection.get("airline_10") println(getResult) println(getResult.contentAs<Map<String, Any?>>()) } } finally { runBlocking { cluster.disconnect() } } }</code></pre> </div> </div> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="additional-resources"><a class="anchor" href="#additional-resources"></a>Additional Resources</h2> <div class="sectionbody"> <div class="paragraph"> <p>To see more documentation, select a chapter from the navigation sidebar on the left.</p> </div> <div class="paragraph"> <p>Join us on the <a href="https://discord.com/invite/sQ5qbPZuTh">Couchbase Discord server</a> and the <a href="https://forums.couchbase.com/c/kotlin-sdk/40">Couchbase Forum</a>.</p> </div> <div class="paragraph"> <p>The <a href="https://couchbase.live">Couchbase Playground</a> has Kotlin examples you can edit and run in your web browser.</p> </div> <div class="paragraph"> <p>There are more <a href="https://github.com/couchbase/couchbase-jvm-clients/tree/master/kotlin-client/src/main/kotlin/com/couchbase/client/kotlin/samples">code samples on GitHub</a>.</p> </div> <div class="paragraph"> <p>The API reference is <a href="https://docs.couchbase.com/sdk-api/couchbase-kotlin-client/">here</a>.</p> </div> <div class="paragraph"> <p>Couchbase welcomes community contributions to the Kotlin SDK. The source code is available on <a href="https://github.com/couchbase/couchbase-jvm-clients">GitHub</a>.</p> </div> </div> </div> <nav class="pagination"> <span> </span> <span class="next"><a href="../howtos/connecting.html">Connecting</a></span> </article> </main> </div> <footer class="footer"> <div class="container"> <div class="footer-links"> <div class="col"> <div class="footer-logo"> <a href="https://www.couchbase.com" class="icon"> <img src="../../../_/img/couchbase-logo.svg" alt="Couchbase"> </a> </div> </div> <div class="col"> <ul> <li><a href="https://docs.couchbase.com" target="_blank" rel="noopener">Documentation</a></li> <li><a href="https://forums.couchbase.com" target="_blank" rel="noopener">Forums</a></li> <li><a href="https://support.couchbase.com" target="_blank" rel="noopener">Support</a></li> </ul> </div> <div class="col"> <ul> <li><a href="https://developer.couchbase.com" target="_blank" rel="noopener">Developer Portal</a></li> <li><a href="https://blog.couchbase.com" target="_blank" rel="noopener">Blog</a></li> <li><a href="https://www.couchbase.com/resources">Resources</a></li> </ul> </div> <div class="col"> <ul> <li><a href="https://www.couchbase.com/get-started-developing-nosql">Get Started</a></li> <li><a href="https://www.couchbase.com/downloads">Downloads</a></li> <li><a href="https://learn.couchbase.com/store?utf8=%E2%9C%93&ss=1&ct=78327&commit=Filter" target="_blank" rel="noopener">Training</a></li> </ul> </div> <div class="col"> <ul class="social-icons"> <li> <svg width="14" height="14" viewBox="0 0 32.1 26.1"> <path id="twitter" class="cls-1" d="M32,7.1a11.836,11.836,0,0,1-3.8,1,6.462,6.462,0,0,0,2.9-3.6,12.606,12.606,0,0,1-4.2,1.6A6.492,6.492,0,0,0,22.1,4a6.594,6.594,0,0,0-6.6,6.6,7.719,7.719,0,0,0,.2,1.5A18.458,18.458,0,0,1,2.2,5.2a6.294,6.294,0,0,0-.9,3.3A6.765,6.765,0,0,0,4.2,14a6.109,6.109,0,0,1-3-.8v.1a6.543,6.543,0,0,0,5.3,6.4,4.678,4.678,0,0,1-1.7.2,4.869,4.869,0,0,1-1.2-.1,6.679,6.679,0,0,0,6.1,4.6,12.917,12.917,0,0,1-8.2,2.8,9.151,9.151,0,0,1-1.6-.1,18.438,18.438,0,0,0,10.1,3c12.1,0,18.7-10,18.7-18.7v-.8A13.336,13.336,0,0,0,32,7.2Z" transform="translate(0.1 -4)"/></svg> <a href="https://twitter.com/couchbase" class="icon"> Twitter </a> </li> <li> <svg width="14" height="14" viewBox="0 0 32 32"> <path id="linkedin" class="cls-1" d="M29,0H3A3.076,3.076,0,0,0,0,3V29a3.009,3.009,0,0,0,3,3H29a2.946,2.946,0,0,0,3-3V3A3.009,3.009,0,0,0,29,0ZM12,26H8V12h4ZM10,10a2,2,0,1,1,2-2A2.006,2.006,0,0,1,10,10ZM26,26H22V18a2,2,0,0,0-4,0v8H14V12h4v2.5c.8-1.1,2.1-2.5,3.5-2.5A4.736,4.736,0,0,1,26,17Z"/></svg> <a href="https://www.linkedin.com/company/couchbase" class="icon"> Linkedin </a> </li> <li> <svg width="14" height="14" viewBox="0 0 32 32"> <path id="facebook" class="cls-1" d="M29,0H3A2.652,2.652,0,0,0,0,3V29a2.652,2.652,0,0,0,3,3H16V18H12V14h4V12a6.452,6.452,0,0,1,6-6h4v4H22a2.151,2.151,0,0,0-2,2v2h6l-1,4H20V32h9a2.652,2.652,0,0,0,3-3V3A2.652,2.652,0,0,0,29,0Z"/></svg> <a href="https://www.facebook.com/Couchbase" class="icon"> Facebook </a> </li> </ul> </div> </div> <div class="footer-terms"> <div class="footer-terms-copyright"> <span>漏 2024 Couchbase and the Couchbase logo are registered trademarks of Couchbase, Inc. All third party trademarks (including logos and icons) referenced by Couchbase, Inc. remain the property of their respective owners. </span> </div> <div class="footer-terms-links"> <a href="https://www.couchbase.com/terms-of-use">Terms of Use</a> <a href="https://www.couchbase.com/privacy-policy">Privacy Policy</a> <a href="https://www.couchbase.com/cookie-policy">Cookie Policy</a> <a href="https://www.couchbase.com/support-policy">Support Policy</a> <a href="https://info.couchbase.com/unsubscribe-or-manage-preferences.html" target="_blank" rel="noopener">Marketing Preference Center</a> </div> </div> </div> </footer> <script src="../../../_/js/site-navigation-data.js"></script> <script id="page-navigation-group" type="application/json"> {"title":"Couchbase SDKs","components":["dotnet-sdk","c-sdk","cxx-sdk","go-sdk","java-sdk","kotlin-sdk","nodejs-sdk","php-sdk","python-sdk","ruby-sdk","scala-sdk","elasticsearch-connector","kafka-connector","spark-connector","tableau-connector","power-bi-connector","sdk-extensions"],"url":"/home/sdk.html","latestVersions":{"dotnet-sdk":"3.6","c-sdk":"3.3","cxx-sdk":"1.0","go-sdk":"2.9","java-sdk":"3.7","kotlin-sdk":"1.4","nodejs-sdk":"4.4","php-sdk":"4.2","python-sdk":"4.3","ruby-sdk":"3.5","scala-sdk":"1.7","elasticsearch-connector":"4.4","kafka-connector":"4.2","spark-connector":"3.5","tableau-connector":"1.1","power-bi-connector":"1.0","sdk-extensions":"master"}} </script> <template id="run-code-panel"> <div class="action-panel"> <form class="action-panel-control" method="POST" action="https://couchbase.live/run" target="run-code-output"> <input type="hidden" name="lang"> <input type="hidden" name="code"> <input type="hidden" name="from" value="docs"> <div class="controls"> <button class="control-button rerun" type="submit"><i class="fas fa-redo"></i></button> <span class="shell-name control-label">Output</span> <button class="control-button close"><i class="fas fa-times"></i> Close</button> </div> </form> <iframe class="run-code-output" name="run-code-output"></iframe> </div> </template> <script id="site-script" src="../../../_/js/vendor/chatbox-ui.js"></script> <script id="site-script" src="../../../_/js/site.js"></script> <script async src="../../../_/js/vendor/tabs.js" data-sync-storage-key="preferred-tab"></script> <script defer src="../../../_/js/vendor/fontawesome-icon-defs.js"></script> <script defer src="../../../_/js/vendor/fontawesome.js" data-search-pseudo-elements="true"></script> <script async src="../../../_/js/vendor/highlight.js"></script> <script async id="search-script" src="../../../_/js/vendor/docsearch.js" data-app-id="NI1G57N08Q" data-api-key="d3eff3e8bcc0860b8ceae87360a47d54" data-index-name="prod_docs_couchbase" data-stylesheet="../../../_/css/vendor/docsearch.css"></script> <script async id="feedback-script" src="../../../_/js/vendor/feedback.js?v=1" data-collector-id="709818cb"></script> </body> </html>