# json-joy

> Collection of libraries for building collaborative editing apps.

Latest version **18.30.0** (published 2026-09-08) · AGPL-3.0-only license · 0 weekly downloads

## Install

```sh
npm install json-joy
pnpm add json-joy
yarn add json-joy
bun add json-joy
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 18.30.0 |
| Published | 2026-09-08 |
| First published | 2020-09-02 |
| Weekly downloads | 0 |
| License | AGPL-3.0-only |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10.0 |
| Dependencies | 19 |
| Unpacked size | 2.1 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 1091 |
| Author | streamich |
| Maintainers | streamich |
| Keywords | collaborative, multiplayer, local-first, localfirst, crdt, rdt, ot, operational-transformation, replicated, sync, synchronization, distributed-state, marshaling, serializations, json-patch, json-binary, json-brand, json-cli, json-clone, json-crdt-patch, json-crdt-extensions, json-crdt-peritext-ui, json-crdt, json-equal, json-expression, json-hash, json-ot, json-pack, json-patch-multicore, json-patch-ot, json-patch, json-pointer, json-random, json-schema, json-size, json-stable, json-text, json-type, json-type-value, json-walk |

## Links

- npm: https://www.npmjs.com/package/json-joy
- Repository: https://github.com/streamich/json-joy
- Issues: https://github.com/streamich/json-joy/issues
- Funding: https://github.com/sponsors/streamich
- npm.io page: https://npm.io/package/json-joy

## Dependencies (19)

- [arg](https://npm.io/package/arg.md) ^5.0.2
- [nano-css](https://npm.io/package/nano-css.md) ^5.6.2
- [thingies](https://npm.io/package/thingies.md) ^2.6.1
- [pojo-dump](https://npm.io/package/pojo-dump.md) ^1.4.0
- [tree-dump](https://npm.io/package/tree-dump.md) ^1.1.0
- [hyperdyperid](https://npm.io/package/hyperdyperid.md) ^1.2.0
- [sonic-forest](https://npm.io/package/sonic-forest.md) ^1.2.1
- [@jsonjoy.com/diff](https://npm.io/package/@jsonjoy.com/diff.md) 18.30.0
- [@jsonjoy.com/util](https://npm.io/package/@jsonjoy.com/util.md) 18.30.0
- [very-small-parser](https://npm.io/package/very-small-parser.md) ^1.15.0
- [@jsonjoy.com/base64](https://npm.io/package/@jsonjoy.com/base64.md) 18.30.0
- [@jsonjoy.com/buffers](https://npm.io/package/@jsonjoy.com/buffers.md) 18.30.0
- [@jsonjoy.com/keyboard](https://npm.io/package/@jsonjoy.com/keyboard.md) 18.30.0
- [@jsonjoy.com/json-hash](https://npm.io/package/@jsonjoy.com/json-hash.md) 18.30.0
- [@jsonjoy.com/json-pack](https://npm.io/package/@jsonjoy.com/json-pack.md) 18.30.0
- [@jsonjoy.com/json-type](https://npm.io/package/@jsonjoy.com/json-type.md) 18.30.0
- [@jsonjoy.com/json-equal](https://npm.io/package/@jsonjoy.com/json-equal.md) 18.30.0
- [@jsonjoy.com/json-pointer](https://npm.io/package/@jsonjoy.com/json-pointer.md) 18.30.0
- [@jsonjoy.com/json-expression](https://npm.io/package/@jsonjoy.com/json-expression.md) 18.30.0

## Alternatives

- [@reckona/mreact-store](https://npm.io/package/@reckona/mreact-store.md) — 976 weekly downloads
- [regular-state](https://npm.io/package/regular-state.md) — 410 weekly downloads
- [@pacote/flux-actions](https://npm.io/package/@pacote/flux-actions.md) — 65 weekly downloads
- [@pilotlab/lux-debug](https://npm.io/package/@pilotlab/lux-debug.md) — 39 weekly downloads
- [vue-persist-state](https://npm.io/package/vue-persist-state.md) — 19 weekly downloads

## Recent versions

- 18.30.0 (latest) — 2026-09-08
- 14.4.0 (next) — 2024-04-20
- 18.28.0 — 2026-06-02
- 18.24.0 — 2026-05-15
- 18.23.0 — 2026-05-14
- 18.22.0 — 2026-05-14
- 18.21.0 — 2026-05-10
- 18.20.0 — 2026-05-09
- 18.19.0 — 2026-05-07
- 18.18.0 — 2026-05-07
- 18.17.0 — 2026-05-07
- 18.16.0 — 2026-05-06
- 18.15.0 — 2026-04-18
- 18.14.0 — 2026-04-16
- 18.13.0 — 2026-04-15
- … 312 more at https://npm.io/package/json-joy/versions

## README

<div align="center">
  <br />
  <br />
  <a href="https://jsonjoy.com">
      <img src="https://appsets.jsonjoy.com/branding/avatars/avatar-256x256-fitted.svg" alt="json-joy - JSON tools for real-time and collaborative apps" target="_blank" />
  </a>
  <br />
  <br />
</div>

# json-joy

[![npm version](https://badge.fury.io/js/json-joy.svg)](https://badge.fury.io/js/json-joy)

[`json-joy`][json-joy] library implements cutting-edge real-time and
collaborative editing algorithms and other utilities for JSON data models.
Major focus of `json-joy` is development of the JSON CRDT protocol, a
Conflict-free Replicated Data Type that enables seamless
merging of changes in JSON data models, avoiding conflicts between replicas.

- [**Website**](https://jsonjoy.com)
- [**Documentation**](https://jsonjoy.com/libs/json-joy-js)
- [**Blog posts**](https://jsonjoy.com/blog)
  - [_Collaborative Text Editors (Part 2): Plain Text Synchronization_](https://jsonjoy.com/blog/collaborative-text-sync-plain-text)
  - [_Collaborative Text Editors (Part 1): Prelude_](https://jsonjoy.com/blog/collaborative-text-sync-prelude)
  - [_Fuzz Testing RGA CRDT_](https://jsonjoy.com/blog/fuzz-testing-rga-crdt)
  - [_Benchmarking JSON Serialization Codecs_](https://jsonjoy.com/blog/json-codec-benchmarks)
  - [_List CRDT Benchmarks_](https://jsonjoy.com/blog/list-crdt-benchmarks)
  - [_Blazing Fast List CRDT_](https://jsonjoy.com/blog/performant-rga-list-crdt-algorithm)
- [**JSON CRDT**](https://jsonjoy.com/specs/json-crdt) `specification`
- [**JSON CRDT Patch**](https://jsonjoy.com/specs/json-crdt-patch) `specification`
- [**JSON Expression**](https://jsonjoy.com/specs/json-expression) `specification`
- [**JSON Reactive RPC**](https://jsonjoy.com/specs/json-rx) `specification`
- [**Compact JSON**](https://jsonjoy.com/specs/compact-json) `encoding`
- [**API Reference**](https://streamich.github.io/json-joy/)
- [**Test coverage**](https://streamich.github.io/json-joy/coverage/lcov-report/)

## Notable features

- Full JSON implementation as a CRDT (Conflict-free Replicated Datatype).
- The fastest list CRDT implementation in JavaScript.
- The fastest text OT (Operational Transformation) implementation in JavaScript.
- The fastest implementation of CBOR, DAG-CBOR, MessagePack, UBJSON, and JSON codecs in JavaScript.
- The fastest (HTTP) router implementation in JavaScript.
- The fastest JSON schema validation implementation in JavaScript.
- Very fast binary tree (Radix, AVL, Red-black\*, Splay) implementations in JavaScript.
- Very fast JSON Patch (and JSON Pointer) implementation in JavaScript, including many non-standard operations, and JSON Predicate implementation.
- Very fast JSON Expression implementation in JavaScript.

[json-joy]: https://jsonjoy.com


## Funding

This project is funded through [NGI Zero Core](https://nlnet.nl/core), a fund established by [NLnet](https://nlnet.nl) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu) program. Learn more at the [NLnet project page](https://nlnet.nl/project/JSON-Joy-Peritext).

[<img src="https://nlnet.nl/logo/banner.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl)
[<img src="https://nlnet.nl/image/logos/NGI0_tag.svg" alt="NGI Zero Logo" width="20%" />](https://nlnet.nl/core)

---
_Source: https://npm.io/package/json-joy · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
