Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Overview

Liminal is a typed actor framework built on Effect. It gives you schema-driven RPC methods, event streams, and per-client attachment state wired through a single client/actor contract.

Liminal stays vendor-agnostic, so the same actor model can run on different transports. Cloudflare Workers and Durable Objects are supported through liminal/workerd and effect-workerd.

Start here

  • Quickstart: the shortest end-to-end path.
  • Clients: define the wire protocol.
  • Actors: define the server-side runtime.
  • Actor Namespace: wrap an actor as a Cloudflare Durable Object.
  • Client State: hydrate initial state and reduce events on the client.
  • Instrumentation: export built-in spans and logs with Effect OpenTelemetry.

Install

npm
npm install liminal

Module layout

liminal is a small set of subpath exports.

  • liminal: the core actor model (Actor, Audition, Client, ClientDirectory, ClientHandle, Method, Protocol).
  • liminal/workerd: the Cloudflare Durable Object namespace and runtime (WorkerdActorNamespace, WorkerdActorRuntime).
  • liminal/browser: the browser-side actor namespace (BrowserActorNamespace).

To host actors on Cloudflare, pair liminal/workerd with effect-workerd, a small package of Effect services around the Workerd runtime that exposes Worker.make, Assets, R2, and the other Cloudflare bindings you need at the entrypoint.