One Model
Define your schema once in Kotlin and reuse it across storage, transport, tools, and tests.

Maryk is a Kotlin Multiplatform data toolkit for teams that want one durable data contract across clients, servers, tools, and tests.
Define the model in Kotlin. Reuse it for validation, serialization, storage, history, tooling, and sync.
One Model
Define your schema once in Kotlin and reuse it across storage, transport, tools, and tests.
Versioned Storage
Ask for “only changes” or “as of time T”. Stream live updates without extra infrastructure.
Portable Serialization
Streaming YAML/JSON and compact ProtoBuf with consistent encoders/decoders across platforms.
Typed Store API
Run typed requests, atomic write sets and serializable scopes across local stores; Remote advertises its backend capabilities.
Pluggable Stores
Start in‑memory for tests, use IndexedDB in browsers, embed RocksDB for apps, or run FoundationDB for distributed storage and scale — same API.
Kotlin Multiplatform
Run on JVM, Android, iOS, macOS, Linux, Windows, and JS — share your model and logic.
Desktop App
Inspect models and edit records in the Maryk App.
implementation("io.maryk:maryk-core:<maryk-version>")import maryk.core.models.RootDataModelimport maryk.core.properties.definitions.string
object Person : RootDataModel<Person>() { val firstName by string(index = 1u) val lastName by string(index = 2u)}val jane = Person.create { firstName with "Jane"; lastName with "Doe" }Person.validate(jane)val json = Person.Serializer.writeJson(jane, pretty = true)Start with Getting Started, then run the complete First Store Tutorial.
Browse the reference sections: Data Modeling, Querying, Serialization, Stores, CLI, and App.
Use Maryk’s typed request API as the main API for application reads, writes, history, and sync. The SQL layer is optional, for reporting, ad hoc queries, and tabular integrations. You can use every Maryk store without adding SQL.
Picking storage? See Stores for the overview, or jump straight to In‑Memory, IndexedDB, RocksDB, FoundationDB, or Remote.