Modular library for offline-first isomorphic JavaScript applications
mithic
provides the building blocks for creating offline-first applications, using CQRS architecture with eventsourced CRDTs for storage and data replication. mithic
is network agnostic and can be used in traditional client-server, decentralized, or local-only apps. Target use cases include business web apps, collaborative editing, multiplayer gaming, etc.
See generated TypeDoc: https://andykswong.github.io/mithic/
To use the library, you can depend on the monorepo:
npm install --save mithic
Or select individual modular packages to use:
npm install --save @mithic/collections @mithic/cqrs @mithic/crdt
For detailed usages, see the following examples:
- Simple Redux store example - minimal example to get started. Uses the Redux store preset.
- GraphQL example - example integration with GraphQL query, mutation and subscription
Core:
Package | NPM | Description |
---|---|---|
@mithic/collections |
Core collection interfaces and implementations | |
@mithic/commons |
Common utilities | |
@mithic/cqrs |
CQRS interface | |
@mithic/crdt |
Eventsourced CRDT library | |
@mithic/jsonr |
JSON intermediate representation for sandboxed scripting | |
@mithic/messaging |
Messaging interface |
Plugins:
Package | NPM | Description |
---|---|---|
@mithic/denokv |
Deno KV adapters | |
@mithic/ipfs |
IPFS and libp2p adapters | |
@mithic/level |
abstract-level adapters | |
@mithic/redis |
Redis adapters |
This repository and the code inside it is licensed under the MIT License. Read LICENSE for more information.