Skip to content

Landscape ​

The state of the standards and projects Rayfold draws from, with sources, as of September 2026.

1. HTTP QUERY method ​

2. Model Context Protocol ​

3. Rocicorp Zero ​

  • Zero 1.0 shipped 2026-06-08. https://www.infoq.com/news/2026/06/zero-version-1/
  • Synced queries: defined once for client+server; client runs locally, zero-cache asks the app server for a ZQL expression (server-only filters), runs it, and streams row changes from Postgres logical replication. The query is the subscription; deactivated queries keep syncing for a TTL. https://zero.rocicorp.dev/docs/synced-queries
  • Mutators run optimistically on the client, then re-execute server-side inside a transaction; client effects are rebased once replication returns; permissions are plain server code. https://zero.rocicorp.dev/docs/mutators
  • Apache-2.0, self-hostable; cloud tiers from $30/mo.

4. Convex ​

5. Electric / Replicache / PowerSync ​

6. Connect protocol ​

  • Connect-Protocol-Version: 1; unary idempotent RPCs may use GET with message, encoding, base64, compression, connect=v1 query params. https://connectrpc.com/docs/protocol/
  • Streams use 5-byte envelopes; server/client streaming works on HTTP/1.1, bidi needs HTTP/2; streams always return HTTP 200 with errors in a trailing EndStreamResponse.
  • Errors: the 16 gRPC codes as JSON {code, message, details[]}; unary HTTP status derived from code.
  • Buf breaking-change categories, strictest to loosest: FILE, PACKAGE, WIRE_JSON, WIRE. https://buf.build/docs/breaking/rules/

7. GraphQL ​

8. RFC 9457 Problem Details ​

9. IETF RateLimit headers ​

10. Cap'n Proto ​

  • Promise pipelining: a result can be the target of a new request before the server has answered the first, collapsing dependent calls into one round trip. Capabilities: references both designate an object and confer permission. https://capnproto.org/rpc.html

11. Compression Dictionary Transport ​

12. WebTransport ​

13. Apollo GraphOS field usage ​

What Rayfold takes from them ​

  1. QUERY is an RFC: Rayfold reads are designed as QUERY with body, with a mandatory POST + Rayfold-Safe: true fallback for browsers (04 §4).
  2. Advertise Accept-Query on a 415 and on a method the endpoint does not serve (04 §4); ETag is a hash of the payload so body-keyed CDN caching works when it lands (07 §2).
  3. Core is stateless like MCP 2026-07-28, and the MCP bridge refuses a request whose Mcp-Method header disagrees with its body (10). The input_required retry pattern for human-in-the-loop is reserved in spec 10, not implemented.
  4. MCP tool definitions use JSON Schema 2020-12 for input and output; the bridge emits structuredContent, and lists tools and resources with ttlMs: 300000 and cacheScope: "public" (10).
  5. Sync follows Zero/Convex: the query is the subscription, and optimistic commands rebase on the server's answer (08). Versioned transitions over one stream, so a reconnect resumes where it left off, are a draft in spec 08 §5 and not implemented.
  6. An Electric-style plain-HTTP shape log (offset/handle, up-to-date, long-poll or SSE) as the lowest-common-denominator sync transport is a draft in spec 08; neither runtime implements it.
  7. Error model: RFC 9457 body for batch-level failures, Connect's 16 codes as the protocol code set, HTTP 200 for frame streams (05).
  8. GET for single idempotent queries with base64url-encoded args, like Connect (04 §4). Rayfold defines its own incremental delivery (defer frames) and does not wait on GraphQL's.
  9. Trusted shapes (SHA-256 allowlist) are in Core now; GraphQL's persisted-documents appendix is still unmerged (02 §3).
  10. WebTransport is Baseline, so the spec names it as the bidirectional transport tier (04 §6); neither runtime implements it.

Released under the Apache-2.0 license.