Kotbase
Kotlin Multiplatform biblioteca para Couchbase Lite
Introducción
Kotbase combina Kotlin Multiplatform con Couchbase Lite, una base de datos incrustada NoSQL de documentos JSON. Couchbase Lite puede usarse como una base de datos cliente independiente, o combinarse con Couchbase Server y Sync Gateway o Capella App Services para la sincronización de datos desde la nube hasta el borde. Las características incluyen:
- Consultas SQL++, clave/valor, búsqueda de texto completo y búsqueda vectorial
- Consultas, documentos, bases de datos y replicadores observables
- Adjuntos binarios a documentos (blobs)
- Sincronización de datos entre pares y de nube a borde
Instalación
Agrega la dependencia de la Edición Community o Enterprise en las dependencias del conjunto de fuentes commonMain de tu módulo compartido en el archivo 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")
}
}
}Nota
La Edición Comunitaria de Couchbase Lite es gratuita y de código abierto. La Edición Empresarial es gratuita para desarrollo y
pruebas, pero requiere una licencia de Couchbase para uso en producción.
Ver Comunidad vs Edición Empresarial.
Kotbase se publica en Maven Central. La dependencia de la Edición Empresarial de Couchbase Lite requiere además el repositorio Maven de Couchbase.
repositories {
mavenCentral()
maven("https://mobile.maven.couchbase.com/maven2/dev/")
}
Plataformas Nativas
Los objetivos de plataformas nativas deben además enlazar con el binario nativo de la dependencia Couchbase Lite. Consulte Plataformas Soportadas para más detalles.
Linux
Apuntar a JVM que se ejecuta en Linux o Linux nativo, ambos requieren una versión específica de la dependencia libicu. (Verá un error como libLiteCore.so: libicuuc.so.71: cannot open shared object file: No such file or directory que indica la versión esperada.) Si la versión requerida no está disponible en el gestor de paquetes de su distribución, puede descargarla desde GitHub.
Documentación
La documentación de Kotbase se encuentra en kotbase.dev, incluyendo ejemplos para comenzar, guía de uso y referencia API.
Diferencias con el SDK de Java
La API de Kotbase se alinea con los SDKs de Couchbase Lite Java y Android KTX. Migrar código Kotlin existente puede ser tan sencillo como cambiar el paquete de importación de com.couchbase.lite a kotbase, con algunas excepciones:
- Las interfaces funcionales de callback de Java se implementan como tipos de función Kotlin.
- Las APIs
File,URLyURIse representan como cadenas. - Las APIs de
DateusanInstantde Kotlin. - Las APIs de
InputStreamusan kotlinx-ioSource. - Las APIs de
ExecutorusanCoroutineContextde Kotlin. - Las APIs de certificados están disponibles como
ByteArraysin procesar o en código específico de plataforma. - No es necesario llamar explícitamente a
CouchbaseLite.init(). Las funciones de inicialización aún pueden llamarse con parámetros personalizados en código de plataforma JVM y Android. - Se han hecho esfuerzos para detectar y lanzar excepciones Kotlin para condiciones comunes de error, pero
NSErroraún puede filtrarse en plataformas Apple. Por favor reporte cualquier ocurrencia que merezca atención. - Algunas APIs obsoletas se omiten.
- Aunque no está disponible en el SDK de Java, ya que Java no soporta sobrecarga de operadores, las APIs de subíndices de
Fragmentestán disponibles en Kotbase, similares a Swift, Objective-C, y .NET.- Las APIs de fábrica de configuración del SDK Android KTX han sido desaprobadas en favor de usar constructores directamente,
Bibliotecas de Extensión
Kotbase incluye algunas extensiones convenientes además de la API oficial de Couchbase Lite como artefactos de biblioteca adicionales.
Kotbase KTX
Las extensiones KTX incluyen las excelentes extensiones Kotlin por MOLO17, así como otras funciones de conveniencia para componer consultas, mapear resultados de consultas, crear documentos y observar
Flows de cambios.#### Instalación
// 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 es un registrador personalizado de Couchbase Lite que registra en Kermit. Kermit puede dirigir sus registros a cualquier número de salidas de registro, incluida la consola.
#### Instalación
// 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")Paginación Kotbase
Las extensiones de paginación están construidas sobre la paginación AndroidX de Google. Kotbase Paging proporciona un
PagingSourceque realiza consultas de paginación limit/offset basadas en una consulta de base de datos proporcionada por el usuario.#### Instalación
// 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")Hoja de ruta
- [x] Sitio web de documentación (kotbase.dev)
- [x] Interoperabilidad con
NSInputStream~~(Okio #1123)~~ (kotlinx-io #174)- [x] Soporte para Linux ARM64
- [x] Lanzamiento público
- [ ] Aplicaciones de ejemplo
- [x] Primeros pasos
- [x] Primeros pasos Compose Multiplatform
- [x] Kotbase Notes
- [ ] SwiftUI para Kotbase Notes
- [x] Couchbase Lite API 3.1 - Ámbitos y Colecciones
- [x] Documentación versionada
- [x] Couchbase Lite API 3.2 - Búsqueda Vectorial
- [ ] Couchbase Lite API 3.3 - Replicador Multipeer
- [ ] Couchbase Lite API 4.0 - Vectores de versión
- [ ] URLEndpointListener en plataformas Linux y MinGW
- [ ] Mejorar la alineación de la API Swift con Couchbase Lite usando exportación Swift,
@ObjCNamey/o@ShouldRefineInSwift- [ ] API de corrutinas asíncronas
Desarrollo
- Al compilar el proyecto en Linux, asegúrate de instalar la dependencia libicu.
- Al clonar el repositorio git en Windows, habilita el modo desarrollador y los enlaces simbólicos en
git con
git config --global core.symlinks true.--- Tranlated By Open Ai Tx | Last indexed: 2026-01-20 ---