Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Project Status: Active – The project has reached a stable, usable state and is being actively developed. GitHub Workflow Status npm (tag) Gitter GitHub Discussions

m-ld Javascript Engine

m-ld is a decentralised live information sharing component with a JSON-based API.

This repository is the code of the Javascript engine for m-ld, for node.js, modern browsers and other Javascript platforms. Typescript is supported and recommended.

ci & website

The project and documentation are built using typedoc, and delivered to the engine documentation website at using Vercel. This build includes unit testing.

work in progress

  • Issues relating to this engine are logged on the Issues tab.
  • Contributions are welcome! Contributed work is governed according to a CAA, the GitHub Community Guidelines, and the privacy policy.


Plug-ins such as remotes implementations in this repository are structured as:

  • Directories under src
  • Entries in package.json#exports like "./ext/": "./ext/socket. io/index.js"
  • Dependencies in package.json#peerDependencies and marked optional in package.json#peerDependenciesMeta. Also in package.json#devDependencies for unit tests.


Scripts are run with npm.

  • The build script cleans, compiles, tests and generates documentation.
  • The dev script compiles and unit tests, and watches for changes (use dev+log to see console output).
  • The compliance script runs spec compliance tests (long-running).
  • The doc-dev script can be used after build to create a local web server watching for documentation changes.

publishing (team only)

This project uses semantic versioning. There are two main branches.

  • The edge branch is for pre-releases. Docs are delivered to A merge into edge should be immediately followed by a pre-release if it affects versioned components.
  • The master branch is for releases. Docs are delivered to A merge into master should be immediately followed by a release if it affects versioned components.

Only the unit tests are included in the build. Prior to publish remember to run the compliance tests script (ticket).

npx ≪newversion≫ (from m-ld-io-js-build) builds the project, increments the version as specified (e.g. patch), pushes the code and publishes the package. Ensure the repo is up-to-date and on master (release) or edge (pre-release).