JSON utilities. Libraries for collaborative editing with OT and CRDT approaches. This package consists of multiple self-contained libraries:
json-binary— JSON serializer and parser withUint8Arraybinary data support.json-brand— TypeScript branded type for JSON.json-clone— JSON deep cloning methods.json-expression— implementation of JSON Expression language.json-pack— Fastest MessagePack codec implementation in JavaScript.json-equal— Fastest JSON deep equal implementations in JavaScript.- Documentation 🚀
- Reference 🤖
json-patch— Implementation of JSON Patch+ mutation operations.json-patch-ot— Implementation of Operational Transformations for JSON Patch+ operations.- Documentation 🚀
- Reference 🤖
json-crdt— CRDT implementation for JSON type.json-crdt-patch— JSON type CRDT operation specification and implementation.- Documentation 🚀
- Specification 🤔
- Binary snapshot encoding 🧬
- Reference 🤖
json-rx— Implementation of JSON-Rx protocol for server and browser.- Documentation 🚀
- Specification 🤔
- Reference 🤖
binary-rx— Implementation of Binary-Rx protocol (a binary version of JSON-Rx).- Documentation 🚀
- Specification 🤔
- Reference 🤖
json-pointer— utilities for locating data in a JSON document using JSON Pointer.json-cli— CLI utilities and functional testing suites.json-random— generate random JSON value.json-size— calculate the size of serialized JSON object.json-type— JSON schema builder.json-type-serializer— fastjson-typeJSON and MessagePack serializer code generators.json-type-validator— fastjson-typeschema validator.util—base64— fast isomorphic configurable Base64 encoder.
To reduce your browser-side bundle size import directly from the library you use.
import from 'json-joy/{lib,es2020,es6,esm}/<library>';For example:
import {deepEqual} from 'json-joy/lib/json-equal`;All libraries can be imported from one of the below folders:
lib— ES5 compiled CommonJS code.es2020— ES2020 compiled CommonJS code.es6— ES6 compiled CommonJS code.esm— latest TypeScript compiler supported EcmaScript modules code.
Run all tests locally:
yarn build
yarn test:allRead more about testing in Testing README.
Use Angular-type semantic commit messages
for commit messages. Those are used in determining the version bump of the
library for the next release. Optional, you can use git-cz for that:
npx git-cz