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 liminalModule 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.