..
2026-06-07 23:11:26 +00:00
2026-06-07 15:54:15 -06:00
2026-06-07 15:54:15 -06:00
2026-06-07 15:54:15 -06:00
2026-06-07 15:54:15 -06:00

@open-matrix/core

Matrix runtime SDK — actors, Web Components, transports, serialization, and LISP-on-Protocol.

Install

npm install @open-matrix/core

Usage

Headless Actor (daemon-side)

import { MatrixActor } from '@open-matrix/core';

class PingActor extends MatrixActor {
  static accepts = {
    ping: { message: 'string' },
  };
  static emits = {
    pong: { echo: 'string', ts: 'number' },
  };

  onPing(payload: { message: string }) {
    this.emit('pong', { echo: payload.message, ts: Date.now() });
  }
}

Browser Web Component

import { MatrixActorHtmlElement } from '@open-matrix/core';

class StatusPanel extends MatrixActorHtmlElement {
  static accepts = { showStatus: { text: 'string' } };
  static template = `<div id="status"></div>`;
  static styles = `#status { font-family: monospace; padding: 8px; }`;

  onShowStatus(payload: { text: string }) {
    this.shadowRoot!.querySelector('#status')!.textContent = payload.text;
  }
}

customElements.define('status-panel', StatusPanel);

Programmatic Runtime

import { InMemoryBroker, InMemoryTransport, MatrixRuntime } from '@open-matrix/core';

const broker = new InMemoryBroker();
const transport = new InMemoryTransport(broker, { name: 'demo' });
const runtime = new MatrixRuntime({ transport });

What's Included

Category Key Exports
Core MatrixActor, Supervisor, HeadlessComponentRegistry
Framework MatrixActorHtmlElement, MxContract, MxInterface, MxProxy
Runtime MatrixRuntime, HeadlessHost, ConsoleLogger
Transports InMemoryBroker, NatsTransport, FederationTransportAdapter
Messaging TopicRouter, SubscriptionBag, RequestReply
LISP Interpreter, EvalContext, parseSExpr
Serialization serialize, parse, 5-format parity
Flow FlowBuilder, FlowEngine, FlowContext

135 named exports total. Full type declarations included.

Requirements

  • Node.js >= 20
  • TypeScript >= 5.0 (for type checking)

License

MIT