Kotbase
Kotlin マルチプラットフォームライブラリ for Couchbase Lite
はじめに
Kotbase は Kotlin Multiplatform と埋め込み型 NoSQL JSON ドキュメントデータベースの Couchbase Lite を組み合わせたものです。Couchbase Lite はスタンドアロンのクライアントデータベースとして使用でき、また Couchbase Server と Sync Gateway または Capella App Services と組み合わせてクラウドからエッジへのデータ同期を行うことができます。主な特徴は以下の通りです:
- SQL++、キー/バリュー、全文検索、およびベクター検索クエリ
- オブザーバブルクエリ、ドキュメント、データベース、レプリケーター
- バイナリドキュメント添付ファイル(blob)
- ピアツーピアおよびクラウドからエッジへのデータ同期
インストール
共有モジュールの build.gradle.kts にある commonMain ソースセットの依存関係に Community または Enterprise Edition の依存関係を追加してください:
kotlin {
sourceSets {
commonMain.dependencies {
// Community Edition
implementation("dev.kotbase:couchbase-lite:3.2.4-1.2.0")
// or Enterprise Edition
implementation("dev.kotbase:couchbase-lite-ee:3.2.4-1.2.0")
}
}
}注意
Couchbase Lite Community Editionは無料でオープンソースです。Enterprise Editionは開発および
テストには無料ですが、本番環境での使用にはCouchbaseからのライセンスが必要です。
Community版とEnterprise版の違いはこちら。
KotbaseはMaven Centralに公開されています。Couchbase Lite Enterprise Editionの依存関係には
さらにCouchbase Mavenリポジトリが必要です。
repositories {
mavenCentral()
maven("https://mobile.maven.couchbase.com/maven2/dev/")
}
ネイティブプラットフォーム
ネイティブプラットフォームのターゲットは、Couchbase Lite依存のネイティブバイナリにもリンクする必要があります。詳細は対応プラットフォームを参照してください。
Linux
Linux上で動作するJVMまたはネイティブLinuxをターゲットにする場合、特定バージョンのlibicu依存関係が必要です。(libLiteCore.so: libicuuc.so.71: cannot open shared object file: No such file or directoryのようなエラーが表示され、期待されるバージョンが示されます。)必要なバージョンがディストリビューションのパッケージマネージャーで利用できない場合は、GitHubからダウンロードできます。
ドキュメント
Kotbaseのドキュメントはkotbase.devで入手でき、入門例、使用ガイド、およびAPIリファレンスが含まれています。
Java SDKとの違い
KotbaseのAPIはCouchbase LiteのJavaおよびAndroid KTX SDKに整合しています。既存のKotlinコードの移行は、インポートパッケージをcom.couchbase.liteからkotbaseに変更するだけで済む場合がありますが、一部例外があります:
- Javaのコールバック関数型インターフェースはKotlinの関数型として実装されています。
File、URL、URIのAPIは文字列として表現されます。DateのAPIはKotlinのInstantを使用します。InputStreamのAPIはkotlinx-ioのSourceを使用します。ExecutorのAPIはKotlinのCoroutineContextを使用します。- 証明書APIは生の
ByteArrayまたはプラットフォーム固有のコードで利用可能です。 CouchbaseLite.init()を明示的に呼び出す必要はありません。JVMおよびAndroidプラットフォームコードではカスタムパラメータで初期化関数を呼び出すことも可能です。- 一般的なエラー条件に対してKotlin例外を検出しスローするよう努めていますが、Appleプラットフォームでは
NSErrorが漏れる可能性があります。発生した場合は報告してください。 - 一部の非推奨APIは省略されています。
- Java SDKにはない、Javaが演算子オーバーロードをサポートしていないために存在しない
FragmentのサブスクリプトAPI は、Swift、Objective-C、および .NET と同様に Kotbase で利用可能です。- Android KTX SDK の設定ファクトリー API は、Kotlin の名前付き引数を直接サポートするコンストラクターの使用を推奨して非推奨となりました。
拡張ライブラリ
Kotbase は Couchbase Lite の公式 API の上に便利な拡張を追加のライブラリアーティファクトとして含んでいます。
Kotbase KTX
KTX 拡張 には、優れた MOLO17 による Kotlin 拡張 と、クエリの作成、クエリ結果のマッピング、ドキュメントの作成、変更の
Flowの監視などの便利な関数が含まれています。#### インストール方法
// Community Edition implementation("dev.kotbase:couchbase-lite-ktx:3.2.4-1.2.0") // or Enterprise Edition implementation("dev.kotbase:couchbase-lite-ee-ktx:3.2.4-1.2.0")Kotbase Kermit
Kotbase Kermit は、Kermit にログを出力する Couchbase Lite のカスタムロガーです。Kermit はログをコンソールを含む任意の数のログ出力先に送ることができます。
#### インストール
// Community Edition implementation("dev.kotbase:couchbase-lite-kermit:3.2.4-1.2.0") // or Enterprise Edition implementation("dev.kotbase:couchbase-lite-ee-kermit:3.2.4-1.2.0")Kotbase ページング
ページング拡張機能はGoogleのAndroidX Pagingを基に構築されています。Kotbase Pagingはユーザー提供のデータベースクエリに基づいてlimit/offsetページングクエリを実行する
PagingSourceを提供します。#### インストール
// Community Edition implementation("dev.kotbase:couchbase-lite-paging:3.2.4-1.2.0") // or Enterprise Edition implementation("dev.kotbase:couchbase-lite-ee-paging:3.2.4-1.2.0")ロードマップ
- [x] ドキュメントサイト (kotbase.dev)
- [x]
NSInputStreamとの相互運用 ~~(Okio #1123)~~ (kotlinx-io #174)- [x] Linux ARM64 サポート
- [x] 公開リリース
- [ ] サンプルアプリ
- [x] はじめに
- [x] はじめに Compose Multiplatform
- [x] Kotbase Notes
- [ ] Kotbase Notes 用 SwiftUI
- [x] Couchbase Lite 3.1 API - スコープとコレクション
- [x] バージョンドキュメント
- [x] Couchbase Lite 3.2 API - ベクター検索
- [ ] Couchbase Lite 3.3 API - マルチピアレプリケータ
- [ ] Couchbase Lite 4.0 API - バージョンベクター
- [ ] Linux & MinGW プラットフォームでの URLEndpointListener
- [ ] Swift エクスポート](https://youtrack.jetbrains.com/issue/KT-64572)、
@ObjCName、および/または@ShouldRefineInSwiftを使用して Couchbase Lite と Swift API の整合性を向上 - [ ] 非同期コルーチン API
開発
- Linux でプロジェクトをビルドする際は、libicu 依存関係を必ずインストールしてください。
- Windows で git リポジトリをチェックアウトする際は、開発者モード を有効にし、
git でシンボリックリンクを
git config --global core.symlinks trueで有効にしてください。--- Tranlated By Open Ai Tx | Last indexed: 2026-01-20 ---