
Data-engine-oriented framework for building data-centric applications: typed models and relations, offline-first CRUD and reactive queries, managed file storage, centralized threading, pluggable sync/security/AI engines, reflection-free registry generation.
TModeler is a data engine-oriented framework for building data-centric applications. It lets you model, store, query, observe and (optionally) synchronize and secure your business data from a single Kotlin model definition, on Android, JVM, Web (Kotlin/Wasm) and, progressively, iOS — and from Flutter and React front-ends through a thin bridge.
This repository is the official Kotlin Multiplatform distribution of TModeler. A sibling distribution exists for C++: tmodeler-cpp.
The UI layer never owns business logic or SQL: models, rules and persistence live in TModeler; Android (Compose/Views), Flutter and React are only views.
TString, TInt, TDate, lists, relations, files…) with plain Kotlin delegates.save(), delete(), Tms for centralized access; offline-first by design.TFlow lists.TGate guarantees data operations run in the right context.TFeature; instant notification channels.TSyncEngine, TSecurityEngine, TAiEngine: TModeler works on its own, extensions are optional.tmodeler-ksp) generates the model registry.| Platform | Targets | Status |
|---|---|---|
| Android native (Kotlin / Java) | Android API 21+ | ✅ stable |
| JVM (desktop / server) | JDK 11+ (17 / 21 recommended) | ✅ stable |
| Web (React, Kotlin/Wasm-JS) | wasmJs |
✅ working |
| Flutter | via Android bridge | ✅ working |
| iOS |
iosArm64, iosSimulatorArm64, iosX64
|
🚧 in progress |
Using an AI coding assistant? Point it to
AGENTS.md(also published asllms.txt): it contains everything needed to install TModeler and start implementing, step by step.
Start here — the guides are self-sufficient (no need to read the source code).
| Guide | Content |
|---|---|
docs/01-tmodeler.md |
Getting started: philosophy, architecture, prerequisites & IDE, installation, models, fields, relations, CRUD, queries, TFlow, TGate, files, features, notifications, engines, server side, offline-first, limits, troubleshooting, quick reference |
docs/02-android.md |
Android native (Kotlin / Java): Gradle, Manifest, MVVM |
docs/03-flutter.md |
Flutter ↔ Kotlin bridge |
docs/04-react.md |
React + TModeler (Kotlin/Wasm) |
docs/05-jvm.md |
JVM (desktop / server) |
docs/06-ios.md |
iOS (in progress) |
Read 01 first, then the guide of your platform.
TModeler is published on Maven Central (group co.tamboai) for Android, JVM and Web (Kotlin/Wasm). Requirements: JDK 17 or 21 and Android Studio or IntelliJ IDEA (see §4 of the getting-started guide). Node.js is needed for web only.
In your project:
repositories {
google()
mavenCentral()
}
dependencies {
implementation("co.tamboai:TModeler:1.0.1") // Gradle picks the Android, JVM or Wasm variant
}| Platform | Artifact |
|---|---|
| Android |
co.tamboai:TModeler-android:1.0.1 (resolved from TModeler) |
| JVM |
co.tamboai:TModeler-jvm:1.0.1 (resolved from TModeler) |
| Web (Kotlin/Wasm) |
co.tamboai:TModeler-wasm-js:1.0.1 + KSP plugin co.tamboai:tmodeler-ksp:1.0.1
|
Building from source (contributors only):
git clone https://github.com/eclipse-tmodeler/tmodeler-kmp.git
cd tmodeler-kmp
./gradlew :shared:publishToMavenLocal :tmodeler-ksp:publishMavenPublicationToMavenLocal # then add mavenLocal()Full details (repositories, per-platform dependencies, first start) are in docs/01-tmodeler.md.
tmodeler-kmp/
├── shared/ TModeler library (commonMain, androidMain, jvmMain, wasmJsMain, iosMain)
│ └── src/jvmTest/ Getting-started test suite (see below)
├── tmodeler-ksp/ KSP processor generating the model registry (Web)
├── reflectron-test/ Web registry generation tests
├── docs/ Documentation (getting started + one guide per platform)
├── tests/ Sample / test apps, one folder per platform
├── LICENSE Eclipse Public License 2.0
├── NOTICE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
└── SECURITY.md
Core test suite — shared/src/jvmTest: ~90 tests on TModeler alone (no extension), organized by learning step: gettingstarted, fields, relations, queries, flow, engines, threads. They double as runnable examples.
./gradlew :shared:jvmTestPlatform apps — tests/ holds one sample app per platform (the TmChat reference chat):
| Folder | Platform |
|---|---|
tests/android-native |
Android native |
tests/flutter |
Flutter |
tests/react |
React (web, Kotlin/Wasm) |
tests/jvm |
JVM |
tests/ios |
iOS |
TModeler is complete on its own. Synchronization, encryption and AI are optional modules (TBridge, TVault, TAi), plugged in through engines (TSyncEngine, TSecurityEngine, TAiEngine) and available on request at contact@tamboai.co or tamboai.co; see §17 of the getting-started guide.
See CONTRIBUTING.md and the Code of Conduct. To report a vulnerability, see SECURITY.md.
TAMBO ai — tamboai.co — contact@tamboai.co
TModeler is a data engine-oriented framework for building data-centric applications. It lets you model, store, query, observe and (optionally) synchronize and secure your business data from a single Kotlin model definition, on Android, JVM, Web (Kotlin/Wasm) and, progressively, iOS — and from Flutter and React front-ends through a thin bridge.
This repository is the official Kotlin Multiplatform distribution of TModeler. A sibling distribution exists for C++: tmodeler-cpp.
The UI layer never owns business logic or SQL: models, rules and persistence live in TModeler; Android (Compose/Views), Flutter and React are only views.
TString, TInt, TDate, lists, relations, files…) with plain Kotlin delegates.save(), delete(), Tms for centralized access; offline-first by design.TFlow lists.TGate guarantees data operations run in the right context.TFeature; instant notification channels.TSyncEngine, TSecurityEngine, TAiEngine: TModeler works on its own, extensions are optional.tmodeler-ksp) generates the model registry.| Platform | Targets | Status |
|---|---|---|
| Android native (Kotlin / Java) | Android API 21+ | ✅ stable |
| JVM (desktop / server) | JDK 11+ (17 / 21 recommended) | ✅ stable |
| Web (React, Kotlin/Wasm-JS) | wasmJs |
✅ working |
| Flutter | via Android bridge | ✅ working |
| iOS |
iosArm64, iosSimulatorArm64, iosX64
|
🚧 in progress |
Using an AI coding assistant? Point it to
AGENTS.md(also published asllms.txt): it contains everything needed to install TModeler and start implementing, step by step.
Start here — the guides are self-sufficient (no need to read the source code).
| Guide | Content |
|---|---|
docs/01-tmodeler.md |
Getting started: philosophy, architecture, prerequisites & IDE, installation, models, fields, relations, CRUD, queries, TFlow, TGate, files, features, notifications, engines, server side, offline-first, limits, troubleshooting, quick reference |
docs/02-android.md |
Android native (Kotlin / Java): Gradle, Manifest, MVVM |
docs/03-flutter.md |
Flutter ↔ Kotlin bridge |
docs/04-react.md |
React + TModeler (Kotlin/Wasm) |
docs/05-jvm.md |
JVM (desktop / server) |
docs/06-ios.md |
iOS (in progress) |
Read 01 first, then the guide of your platform.
TModeler is published on Maven Central (group co.tamboai) for Android, JVM and Web (Kotlin/Wasm). Requirements: JDK 17 or 21 and Android Studio or IntelliJ IDEA (see §4 of the getting-started guide). Node.js is needed for web only.
In your project:
repositories {
google()
mavenCentral()
}
dependencies {
implementation("co.tamboai:TModeler:1.0.1") // Gradle picks the Android, JVM or Wasm variant
}| Platform | Artifact |
|---|---|
| Android |
co.tamboai:TModeler-android:1.0.1 (resolved from TModeler) |
| JVM |
co.tamboai:TModeler-jvm:1.0.1 (resolved from TModeler) |
| Web (Kotlin/Wasm) |
co.tamboai:TModeler-wasm-js:1.0.1 + KSP plugin co.tamboai:tmodeler-ksp:1.0.1
|
Building from source (contributors only):
git clone https://github.com/eclipse-tmodeler/tmodeler-kmp.git
cd tmodeler-kmp
./gradlew :shared:publishToMavenLocal :tmodeler-ksp:publishMavenPublicationToMavenLocal # then add mavenLocal()Full details (repositories, per-platform dependencies, first start) are in docs/01-tmodeler.md.
tmodeler-kmp/
├── shared/ TModeler library (commonMain, androidMain, jvmMain, wasmJsMain, iosMain)
│ └── src/jvmTest/ Getting-started test suite (see below)
├── tmodeler-ksp/ KSP processor generating the model registry (Web)
├── reflectron-test/ Web registry generation tests
├── docs/ Documentation (getting started + one guide per platform)
├── tests/ Sample / test apps, one folder per platform
├── LICENSE Eclipse Public License 2.0
├── NOTICE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
└── SECURITY.md
Core test suite — shared/src/jvmTest: ~90 tests on TModeler alone (no extension), organized by learning step: gettingstarted, fields, relations, queries, flow, engines, threads. They double as runnable examples.
./gradlew :shared:jvmTestPlatform apps — tests/ holds one sample app per platform (the TmChat reference chat):
| Folder | Platform |
|---|---|
tests/android-native |
Android native |
tests/flutter |
Flutter |
tests/react |
React (web, Kotlin/Wasm) |
tests/jvm |
JVM |
tests/ios |
iOS |
TModeler is complete on its own. Synchronization, encryption and AI are optional modules (TBridge, TVault, TAi), plugged in through engines (TSyncEngine, TSecurityEngine, TAiEngine) and available on request at contact@tamboai.co or tamboai.co; see §17 of the getting-started guide.
See CONTRIBUTING.md and the Code of Conduct. To report a vulnerability, see SECURITY.md.
TAMBO ai — tamboai.co — contact@tamboai.co