door
Kotlin Multiplatform (Android, JVM, JS) offline-first data layer built on Room
File Explorer
Download Latest Version (.zip)- ExampleView.kt
- index.kt
- index.html
- worker.sql-asm.js
- build.gradle
- README.md
- IterableExt.kt
- KSAnnotatedExt.kt
- KSAnnotationExt.kt
- KSClassDeclarationExt.kt
- KSDeclarationExt.kt
- KSFunctionDeclarationExt.kt
- KSFunctionExt.kt
- KSPropertyDeclarationExt.kt
- KSTypeAliasExt.kt
- KSTypeExt.kt
- KSTypeReferenceExt.kt
- PlatformInfoExt.kt
- PreparedStatementExt.kt
- PropertySpecExt.kt
- ResolverExt.kt
- SymbolProcessorEnvironmentExt.kt
- TypeSpecBuilderExt.kt
- AbstractDbProcessor.kt
- AnnotationProcessorWrapper.kt
- CodeBlockExt.kt
- CoreExt.kt
- DoorExpectTypeAliasProcessor.kt
- DoorHttpServerProcessor.kt
- DoorJdbcProcessor.kt
- DoorKspProcessorProvider.kt
- DoorRepositoryProcessor.kt
- DoorTarget.kt
- DoorValidatorProcessor.kt
- DoorWrapperProcessor.kt
- FunSpecExt.kt
- KSPLoggerWrapper.kt
- PropertySpecExt.kt
- StringExt.kt
- SymbolProcessorWrapper.kt
- TypeNameExt.kt
- TypeSpecExt.kt
- incremental.annotation.processors
- com.google.devtools.ksp.processing.SymbolProcessorProvider
- StringExtTest.kt
- build.gradle
- README.md
- ConnectionExt.kt
- ContentResolverExt.kt
- DoorDatabaseExt.kt
- DoorSqlDatabaseExt.kt
- DoorUriExt.kt
- FileExpectExt.kt
- LifecycleExt.kt
- PreparedStatementExt.kt
- StatementExt.kt
- NodeEventManagerAndroid.kt
- PagingState.kt
- InvalidationTracker.kt
- InvalidationTrackerObserver.kt
- RoomDatabase.kt
- ConnectionRoomJdbc.kt
- PreparedStatementRoomJdbc.kt
- ResultSetRoomJdbc.kt
- StatementRoomJdbc.kt
- DoorTriggerCallback.kt
- DoorAndroidRoomHelper.kt
- DummyInvalidationTracker.kt
- KmpUuid.kt
- NodeId.kt
- ThreadSafeList.kt
- DatabaseBuilder.kt
- DoorDatabaseVersion.kt
- DoorQuery.kt
- DoorSqlDatabase.kt
- DoorUri.kt
- MigrationAdapter.kt
- SimpleDoorQuery.kt
- AndroidManifest.xml
- ConnectionExtJvmJs.kt
- DoorDatabaseExtJvmJs.kt
- DoorQueryExt.kt
- SimpleDoorQueryExt.kt
- DoorFlow.kt
- NodeEventJdbcImplListenerSqlite.kt
- DoorLimitOffsetPagingSource.kt
- InvalidationTracker.kt
- InvalidationTrackerObserver.kt
- RoomDatabaseJdbcImplHelper.kt
- RoomDatabaseJdbcImplHelperCommon.kt
- RoomJdbcImpl.kt
- TriggerSetupJvmJs.kt
- DoorQuery.kt
- DoorSqlDatabase.kt
- DoorSqlDatabaseConnectionImpl.kt
- EntityInsertionAdapter.kt
- JdbcArrayProxy.kt
- PreparedStatementArrayProxy.kt
- PreparedStatementArrayProxyCommon.kt
- PreparedStatementResultSetWrapper.kt
- SimpleDoorQuery.kt
- AnyExt.kt
- DoorUriExt.kt
- FileExpectExt.kt
- InputStreamExt.kt
- ListExt.kt
- MapExt.kt
- StringExpectExt.kt
- ListExt.kt
- BigDecimal.kt
- Date.kt
- Time.kt
- TimeStamp.kt
- Array.kt
- Connection.kt
- DatabaseMetadata.kt
- DataSource.kt
- PreparedStatement.kt
- ResultSet.kt
- ResultSetMetaData.kt
- SQLException.kt
- Statement.kt
- DoorEventSource.kt
- NullOutputStream.kt
- SystemTime.kt
- WaitUtil.kt
- WeakMapJvm.kt
- WeakRefJvm.kt
- WeakRefOf.kt
- AbstractDoorUriResponder.kt
- NanoHttpdCall.kt
- RepositoryConfig.kt
- AttachmentMd5.kt
- AttachmentSize.kt
- AttachmentUri.kt
- DoorDao.kt
- DoorDatabase.kt
- DoorNodeIdAuthRequired.kt
- DoorPrimaryAutoGenerateKeyField.kt
- EntityWithAttachment.kt
- HttpAccessible.kt
- HttpServerFunctionCall.kt
- HttpServerFunctionParam.kt
- LastChangedBy.kt
- LocalChangeSeqNum.kt
- MasterChangeSeqNum.kt
- MinReplicationVersion.kt
- ParamName.kt
- PgOnConflict.kt
- PostgresQuery.kt
- QueryLiveTables.kt
- QueryTableModified.kt
- ReplicateEntity.kt
- ReplicateEtag.kt
- ReplicateLastModified.kt
- ReplicateReceiveView.kt
- ReplicationDestinationNodeId.kt
- ReplicationEntityForeignKey.kt
- RepoHttpBodyParam.kt
- Repository.kt
- ShallowCopy.kt
- SqliteOnly.kt
- Trigger.kt
- Triggers.kt
- Device.kt
- DoorNode.kt
- NodeIdAndAuth.kt
- OutgoingReplication.kt
- PendingRepositorySession.kt
- ReplicationOperation.kt
- AnyExt.kt
- ConnectionExt.kt
- ContentTypeExt.kt
- DoorDatabaseCommonExt.kt
- DoorDatabaseExt.kt
- DoorDatabaseMetadata.kt
- DoorJsonRequestExt.kt
- DoorSqlDatabaseExt.kt
- DoorTag.kt
- HeadersBuilderExt.kt
- HttpRequestBuilderExt.kt
- JsonElementExt.kt
- JsonObjectExt.kt
- JsonPrimitiveExt.kt
- LifecycleExt.kt
- ListCommonExt.kt
- ListExt.kt
- MapCommonExt.kt
- MapExt.kt
- PagingSourceLoadResultExt.kt
- PreparedStatementCommonExt.kt
- ResultSetExt.kt
- RoomDatabaseInternalExt.kt
- StringExpectExt.kt
- StringExt.kt
- FlowLoadingState.kt
- HttpFlowExt.kt
- DbAndDao.kt
- DoorHttpServerConfig.kt
- DoorJsonRequest.kt
- DoorJsonResponse.kt
- RepoDaoFlowHelper.kt
- RepoHttpRequest.kt
- RepositoryDaoWithFlowHelper.kt
- ValueAndLoadingState.kt
- ConnectionExt.kt
- ListExt.kt
- PreparedStatementCommonExt.kt
- PreparedStatementExt.kt
- ResultSetExt.kt
- StatementCommonExt.kt
- StatementExt.kt
- BigDecimal.kt
- Date.kt
- Time.kt
- TimeStamp.kt
- Array.kt
- Connection.kt
- ConnectionAsync.kt
- DatabaseMetadata.kt
- DataSource.kt
- PreparedStatement.kt
- ResultSet.kt
- ResultSetMetaData.kt
- SQLException.kt
- Statement.kt
- StatementConstantsKmp.kt
- TypesKmp.kt
- DoorLogger.kt
- DoorLoggerExt.kt
- DoorLogLevel.kt
- NapierDoorLogger.kt
- DefaultDoorMessageCallback.kt
- DoorMessage.kt
- DoorMessageCallback.kt
- DoorMigration.kt
- DoorMigrationAsync.kt
- DoorMigrationStatementList.kt
- DoorMigrationSync.kt
- NodeEvent.kt
- NodeEventConnectionExt.kt
- NodeEventConstants.kt
- NodeEventManager.kt
- NodeEventManagerCommon.kt
- NodeEventSseClient.kt
- DelegatedInvalidationPagingSource.kt
- DoorOffsetLimitRemoteMediator.kt
- DoorPagingUtil.kt
- DoorRepositoryHttpRequestPagingSource.kt
- DoorRepositoryPagingSource.kt
- DoorRepositoryReplicatePullPagingSource.kt
- FilterPagingSource.kt
- HttpResponsePagingExt.kt
- PagingSourceExt.kt
- PagingSourceInterceptor.kt
- PagingSourceLoadState.kt
- PagingSourceReplicatePullHttpResponseResult.kt
- PagingSourceWithHttpLoader.kt
- DoorDatabaseReplicationExt.kt
- DoorReplicationEntity.kt
- DoorRepositoryReplicationClient.kt
- JsonDbFieldInfo.kt
- ReplicationConstants.kt
- ReplicationEntityMetaData.kt
- ReplicationFieldMetaData.kt
- ReplicationReceivedAck.kt
- ReplicationSubscriptionMode.kt
- ServerSentEventsReplicationClient.kt
- DoorJsonResponse.kt
- InvalidationTracker.kt
- InvalidationTrackerObserver.kt
- RoomDatabase.kt
- RoomJdbcImpl.kt
- DoorSetupCallback.kt
- DefaultDoorEventSourceFactoryImpl.kt
- DoorEventListener.kt
- DoorEventSource.kt
- DoorEventSourceFactory.kt
- DoorServerSentEvent.kt
- TriggerConstants.kt
- TriggerSetupCommon.kt
- TriggerSetupSqlite.kt
- DoorEventCollator.kt
- DoorSqlGenerator.kt
- IWeakMap.kt
- IWeakRef.kt
- KmpUuid.kt
- NodeId.kt
- NodeIdAuthCache.kt
- NodeIdDoorDatabaseCallback.kt
- RepositoryPendingChangeLogListener.kt
- SystemTime.kt
- ThreadSafeList.kt
- TransactionDepthCounter.kt
- TransactionMode.kt
- WaitUtil.kt
- WeakRefOf.kt
- DoorConstants.kt
- DoorDaoProvider.kt
- DoorDatabaseCallback.kt
- DoorDatabaseCallbackStatementList.kt
- DoorDatabaseCallbackSync.kt
- DoorDatabaseJdbc.kt
- DoorDatabaseRepository.kt
- DoorDatabaseWrapper.kt
- DoorDbType.kt
- DoorPrimaryKeyManager.kt
- DoorQuery.kt
- DoorSqlDatabase.kt
- DoorUri.kt
- JdbcArrayProxyCommon.kt
- NotSupportedException.kt
- PreparedStatementConfig.kt
- RepositoryConfig.kt
- RepositoryConnectivityListener.kt
- RepositoryFlowLoadingStatusProvider.kt
- RepositoryHelper.kt
- SendChangesStrategy.kt
- SimpleDoorQuery.kt
- SyncEntitiesReceivedEvent.kt
- SyncNode.kt
- SyncNodeIdCallback.kt
- TableChangeListener.kt
- TablesInvalidationListener.kt
- AnyExt.kt
- ConnectionExt.kt
- DoorDatabaseExt.kt
- DoorDatabaseJdbcExt.kt
- DoorSqlDatabaseExt.kt
- FileExt.kt
- JsClassExt.kt
- ListExt.kt
- MapExt.kt
- StringExpectExt.kt
- ListExt.kt
- PreparedStatementExt.kt
- BigDecimal.kt
- Date.kt
- Time.kt
- TimeStamp.kt
- Array.kt
- Connection.kt
- DatabaseMetadata.kt
- DataSource.kt
- PreparedStatement.kt
- ResultSet.kt
- ResultSetMetaData.kt
- SQLException.kt
- Statement.kt
- NodeEventManagerJs.kt
- RoomDatabase.kt
- RoomDatabaseJdbcImplHelper.kt
- IndexedDb.kt
- SQLiteConnectionJs.kt
- SQLiteDatabaseMetadataJs.kt
- SQLiteDatasourceJs.kt
- SQLitePreparedStatementJs.kt
- SQLiteResultSet.kt
- SQLiteStatementJs.kt
- UpdateResult.kt
- WorkerResult.kt
- DoorEventSource.kt
- DoorJsImplClasses.kt
- EncodeUri.kt
- KmpUuid.kt
- NodeId.kt
- SystemTime.kt
- ThreadSafeList.kt
- WaitUtil.kt
- WeakMapJs.kt
- WeakRefJs.kt
- WeakRefOf.kt
- DatabaseBuilder.kt
- DatabaseBuilderOptions.kt
- DoorDatabase.kt
- DoorUri.kt
- JdbcArrayProxy.kt
- PreparedStatementArrayProxy.kt
- RepositoryConfig.kt
- SaveToIndexedDbChangeListener.kt
- sql-wasm.wasm
- worker.sql-wasm.js
- JsWeakMap.kt
- TestKmpUuid.kt
- ConnectionExt.kt
- DoorDatabaseExtJvm.kt
- DoorSqlDatabaseExt.kt
- DoorUriExt.kt
- FileExpectExt.kt
- PipelineContextExt.kt
- StringExtJvm.kt
- PreparedStatementExt.kt
- StatementExt.kt
- DaoRoute.kt
- ReplicationRoute.kt
- DbVersionCheckIntercept.kt
- KtorCallDaoAdapter.kt
- KtorCallDbAdapter.kt
- KtorDoorJsonRequestAdapter.kt
- KtorRespondDoorJson.kt
- NodeAuthCheckIntercept.kt
- NodeEventManagerJvm.kt
- PostgresNodeEventListener.kt
- RoomDatabase.kt
- RoomDatabaseJdbcImplHelper.kt
- TriggerSetupJvm.kt
- TriggerSetupPostgres.kt
- KmpUuid.kt
- NodeId.kt
- PostgresChangeTracker.kt
- ThreadSafeList.kt
- DatabaseBuilder.kt
- DoorUri.kt
- JdbcArrayProxy.kt
- PreparedStatementArrayProxy.kt
- RoomDatabaseImplHelper.kt
- DoorOffsetLimitRemoteMediatorTest.kt
- DoorRepositoryReplicationClientTest.kt
- SqliteTriggersTest.kt
- DoorEventSourceTest.kt
- DoorPrimaryKeyManagerTest.kt
- FlowDesign.kt
- PreparedStatementArrayProxyTest.kt
- VirtualHostScope.kt
- org.mockito.plugins.MockMaker
- cat-pic0.jpg
- build.gradle
- proguard-rules.pro
- ShallowCopyProcessor.kt
- ShallowCopyProcessorProvider.kt
- com.google.devtools.ksp.processing.SymbolProcessorProvider
- build.gradle
- README.md
- db1.properties
- db2.properties
- ds.properties
- ExampleDatabase2.properties
- RepDb.properties
- RepDbLocal.properties
- RepDbLocal2.properties
- RepDbRemote.properties
- testbuilderoncreate.properties
- testbuilderonopen.properties
- karma.config.js
- RoomJdbcTest.kt
- AbstractCommonTest.kt
- TestDbMaker.kt
- NapierAntilog.kt
- AndroidManifest.xml
- AbstractCommonTest.kt
- TestDbMaker.kt
- AbstractNapierAntilog.kt
- NapierAntilog.kt
- AccessGrant.kt
- AccessGrantDao.kt
- ExampleDao2.kt
- ExampleDaoInterface.kt
- ExampleDaoWithInterface.kt
- ExampleDatabase2.kt
- ExampleEntity2.kt
- ExampleEntity2WithExampleLinkEntity.kt
- ExampleEntityPkInt.kt
- ExampleEntityPkIntDao.kt
- ExampleLinkEntity.kt
- ExampleLinkEntityDao.kt
- ExampleSyncableDao.kt
- ExampleSyncableEntity.kt
- ExampleSyncableEntityWithOtherSyncableEntity.kt
- OtherSyncableEntity.kt
- Badge.kt
- BadgeDao.kt
- BadgeWithTotal.kt
- DiscussionBoard.kt
- DiscussionPost.kt
- DiscussionPostAndAuthorName.kt
- DiscussionPostAndNumReplies.kt
- DiscussionPostAndPosterMember.kt
- DiscussionPostDao.kt
- ExampleDb3.kt
- ExampleEntity3.kt
- ExampleEntity3Dao.kt
- Member.kt
- MemberDao.kt
- StatementEntity.kt
- StatementEntityDao.kt
- VanillaDao.kt
- VanillaDatabase.kt
- VanillaEntity.kt
- CompositePkDao.kt
- CompositePkEntity.kt
- RepDao.kt
- RepDaoInterface.kt
- RepDb.kt
- RepEntity.kt
- RepEntityExt.kt
- RepEntityWithAttachment.kt
- RepWithAttachmentDao.kt
- NodeEventIntegrationTest.kt
- AbstractCommonTest.kt
- BasicCrudIntegrationTest.kt
- NapierLogInit.kt
- RunTestWithRealClock.kt
- TestDbMaker.kt
- NapierAntilog.kt
- AbstractCommonTest.kt
- TestDbMaker.kt
- TestBigIntUsage.kt
- NapierAntilog.kt
- GeneratedHttpDaoEndpointTest.kt
- ReplicationRouteTest.kt
- PullIntegrationTest.kt
- PushIntegrationTest.kt
- AbstractCommonTest.kt
- TestDbMaker.kt
- BasicCrudIntegrationTestJvm.kt
- PrimaryKeyTest.kt
- TestWithDoorTransaction.kt
- ExampleDatabase2MockServer.kt
- TestDatabaseBuilderCallback.kt
- TestDbBuilderKtKt.kt
- VirtualHostScope.kt
- org.mockito.plugins.MockMaker
- application.conf
- cat-pic0.jpg
- flatted.jpg
- jndi.properties
- logback.xml
- pexels-lilartsy-3335621.jpg
- testfile1.png
- build.gradle
- VirtualHostScope.kt
- DoorTestDbApplication.kt
- ServerAppMain.kt
- jndi.properties
- logback.xml
- application.conf
- build.gradle
- RepDb.properties
- run-test-server.sh
- gradle-wrapper.jar
- gradle-wrapper.properties
- libs.versions.toml
- yarn.lock
- IntDef.kt
- IntRange.kt
- NonNull.kt
- RequiresApi.kt
- ColumnInfo.kt
- Delete.kt
- Embedded.kt
- Entity.kt
- ForeignKey.kt
- Ignore.kt
- Index.kt
- Insert.kt
- OnConflictStrategy.kt
- PrimaryKey.kt
- Query.kt
- RawQuery.kt
- Transaction.kt
- Update.kt
- build.gradle
- README.md
- ReplicationTest.kt
- cat-pic0.jpg
- MainActivity.kt
- ic_launcher_background.xml
- ic_launcher_foreground.xml
- activity_main.xml
- ic_launcher.xml
- ic_launcher_round.xml
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- colors.xml
- strings.xml
- themes.xml
- themes.xml
- AndroidManifest.xml
- .gitignore
- build.gradle
- proguard-rules.pro
- sed-kotlin
- .gitignore
- build.gradle
- gradle.properties
- gradlew
- gradlew.bat
- LICENSE.md
- README-OFFLINE-FIRST.md
- README.md
- settings.gradle
# Installation Guide
1. Get the code
git clone https://github.com/UstadMobile/door
Downloads the entire project code from GitHub to your computer.
cd door
Moves into the project folder you just downloaded.
2. Gradle (Java/Kotlin)
Medium RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
$ ./gradlew --stop; pkill -f KotlinCompileDaemon
Builds the project using Gradle.
$ ./gradlew door-testdb:jvmJar --rerun-tasks -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=8765\,server=y\,suspend=n"
Builds the project using Gradle.
A BUILD SUCCESSFUL message means it worked. The output is created under build/.
Pulled directly from this repo's README.
// repository documentation
Was this content helpful?
(0 ratings)
