Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Stability

Five surfaces are the public contract of this project: the HTTP API, the template DSL, the template ports, the mount a web cell owns, and the documented error_code strings. If you build on one of them, a 0.x release will not take it away from you without saying so. If you build on anything else in the tree, you are building on an internal.

The five surfaces

The HTTP API means the /colony/* routes and POST /messages. They are specified in meclaw-overview.md.

The template DSL is the template.json and config.json schemas, including the mutation diff format. config.md documents the config.json schema, and the overview the diff.

The template ports are the ingress and exit endpoints a template’s README declares. Each template’s README names the ports that template has.

The mount a web cell owns is /<mount>/ on the colony’s listener, its page.set route grammar and the two reserved names, @ and live. cell-types.md § web.

The documented error_code strings are the dead-letter reasons, the cell-type codes, and the codes a /colony read can answer with. The overview lists them in the sections that emit them.

What 0.x promises

Changes to those five are additive. A route, a key, a port or a code that is there today is there tomorrow, and new ones arrive beside it.

A change that breaks an existing topology gets its own Breaking section in CHANGELOG.md, with the migration named. That is the whole mechanism. meclaw has no deprecation period and no compatibility flag, so the release note is where you find out.

Nothing under crates/ carries a SemVer guarantee. The Rust crates are internals and move without notice, which is why the binary and the HTTP API are the interface this file talks about.