Kotbase
Kotlin Multiplateforme pour Couchbase Lite
Introduction
Kotbase associe Kotlin Multiplateforme avec Couchbase Lite, une base de données documentaire JSON NoSQL embarquée. Couchbase Lite peut être utilisé comme base de données client autonome, ou associé à Couchbase Server et Sync Gateway ou Capella App Services pour la synchronisation des données du cloud vers la périphérie. Les fonctionnalités incluent :
- Requêtes SQL++, clé/valeur, recherche en texte intégral, et recherche vectorielle
- Requêtes, documents, bases de données et réplications observables
- Pièces jointes binaires aux documents (blobs)
- Synchronisation de données peer-to-peer et cloud-à-périphérie
Installation
Ajoutez la dépendance de l’édition Community ou Enterprise dans les dépendances du source set commonMain de votre module partagé dans le fichier build.gradle.kts :
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")
}
}
}Remarque
L’édition communautaire de Couchbase Lite est gratuite et open source. L’édition Entreprise est gratuite pour le développement et
les tests, mais nécessite une licence de Couchbase pour une utilisation en production.
Voir Communauté vs Édition Entreprise.
Kotbase est publié sur Maven Central. La dépendance à l’édition Entreprise de Couchbase Lite nécessite en outre le dépôt Maven de Couchbase.
repositories {
mavenCentral()
maven("https://mobile.maven.couchbase.com/maven2/dev/")
}Plates-formes natives
Les cibles des plates-formes natives doivent en outre lier la dépendance binaire native de Couchbase Lite. Voir Plates-formes prises en charge pour plus de détails.
Linux
Cibler la JVM fonctionnant sous Linux ou Linux natif nécessite dans les deux cas une version spécifique de la dépendance libicu. (Vous verrez
une erreur telle que libLiteCore.so: libicuuc.so.71: cannot open shared object file: No such file or directory indiquant
la version attendue.) Si la version requise n'est pas disponible via le gestionnaire de paquets de votre distribution, vous pouvez
la télécharger depuis GitHub.
Documentation
La documentation de Kotbase est disponible sur kotbase.dev, incluant des exemples pour débuter, un guide d’utilisation, et une référence API.
Différences avec le SDK Java
L’API de Kotbase est alignée avec les SDK Couchbase Lite Java et Android KTX. Migrer un code Kotlin existant peut être
aussi simple que de changer le package d’import de com.couchbase.lite en kotbase, avec quelques exceptions :
- Les interfaces fonctionnelles de rappel Java sont implémentées comme des types de fonctions Kotlin.
- Les API
File,URLetURIsont représentées sous forme de chaînes. - Les API
DateutilisentInstantde Kotlin. - Les API
InputStreamutilisent leSourcede kotlinx-io.- Les API
Executorutilisent leCoroutineContextde Kotlin. - Les API de certificats sont disponibles en tant que
ByteArraybruts ou dans du code spécifique à la plate-forme. - Il n’est pas nécessaire d’appeler explicitement
CouchbaseLite.init(). Les fonctions d’initialisation peuvent néanmoins être appelées avec des paramètres personnalisés dans le code JVM et Android. - Des efforts ont été faits pour détecter et lancer des exceptions Kotlin pour des erreurs courantes, mais
NSErrorpeut encore apparaître
- Certaines API obsolètes sont omises.
- Bien qu’elles ne soient pas disponibles dans le SDK Java, car Java ne supporte pas la surcharge des opérateurs, les API de sous-script
Fragmentsont disponibles dans Kotbase, similaires à Swift, Objective-C, et .NET.- Les API de fabrique de configuration du SDK Android KTX ont été dépréciées au profit de l’utilisation directe des constructeurs,
Bibliothèques d’extension
Kotbase inclut des extensions pratiques par-dessus l’API officielle de Couchbase Lite sous forme d’artefacts de bibliothèque supplémentaires.
Kotbase KTX
Les extensions KTX comprennent l’excellente extension Kotlin par MOLO17, ainsi que d’autres fonctions pratiques pour composer des requêtes, mapper les résultats des requêtes, créer des documents et observer des
Flows de changements.#### Installation
// 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 est un logger personnalisé Couchbase Lite qui enregistre dans Kermit. Kermit peut diriger ses journaux vers un nombre quelconque de sorties de journal, y compris la console.
#### Installation
// 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")Pagination Kotbase
Les extensions de pagination sont basées sur la Pagination AndroidX de Google. Kotbase Pagination fournit un
PagingSourcequi exécute des requêtes de pagination limit/offset basées sur une requête de base de données fournie par l’utilisateur.#### Installation
// 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")Feuille de route
- [x] Site web de documentation (kotbase.dev)
- [x] Interopérabilité
NSInputStream~~(Okio #1123)~~ (kotlinx-io #174)- [x] Support Linux ARM64
- [x] Publication publique
- [ ] Applications exemples
- [x] Premiers pas
- [x] Premiers pas Compose Multiplateforme
- [x] Kotbase Notes
- [ ] SwiftUI pour Kotbase Notes
- [x] Couchbase Lite API 3.1 - Scopes et Collections
- [x] Documentation versionnée
- [x] Couchbase Lite API 3.2 - Recherche Vectorielle
- [ ] Couchbase Lite API 3.3 - Réplicateur Multipeer
- [ ] Couchbase Lite API 4.0 - Vecteurs de Version
- [ ] URLEndpointListener sur plateformes Linux & MinGW
- [ ] Améliorer l’alignement de l’API Swift avec Couchbase Lite en utilisant Swift
@ObjCName, et/ou@ShouldRefineInSwift- [ ] API asynchrone avec coroutines
Développement
- Lors de la compilation du projet sous Linux, assurez-vous d’installer la dépendance libicu.
- Lors du clonage du dépôt git sous Windows, activez le mode développeur et les liens symboliques dans
git avec
git config --global core.symlinks true.--- Tranlated By Open Ai Tx | Last indexed: 2026-01-20 ---
- Les API