Skip to main content
The Engine speaks plain HTTP and Server-Sent Events. There’s no magic in the wire format. You can integrate from any language with an HTTP client and a JSON parser. This page covers what’s available and what’s on the roadmap.

What we ship

There are no official Engine client libraries today. By design — the API is small enough that a wrapper is more code than the calls themselves. The quickstarts at curl, Python, and Node each show a complete client in around 30 lines.

Using the Engine from your language of choice

Whatever HTTP client you’d reach for is what the Engine wants: The same three things matter regardless of language:
  • Set X-Engine-Key on every request except /health.
  • Disable response buffering for streaming (so you see SSE events as they arrive).
  • Set the read timeout high (or None) — turns can take minutes.

Wrapping the API: when it’s worth it

A thin client wrapper makes sense when:
  • You’ll have many call sites in your codebase and want shared retry logic.
  • You want strongly-typed event handling (e.g. TypeScript discriminated unions for SSE event types).
  • You need to mock the Engine in tests.
A wrapper is overkill when:
  • You have one or two call sites.
  • The API is moving and the wrapper would lag.
Most teams write a 100-line wrapper around their three or four most common patterns and let everything else go through plain HTTP.

What a useful wrapper has

That’s the surface area worth wrapping. Everything else is infrastructure (auth refresh, asset connections) that doesn’t need a nice abstraction.

Resilient streaming wrapper

A wrapper that handles reconnection cleanly is worth the lines:
See Durability for the underlying semantics.

Roadmap

Official client libraries are planned for:
  1. Pythonengine-client (or similar), pip-installable.
  2. TypeScript — npm package, isomorphic (Node + browser).
When they ship, they’ll cover:
  • Type-safe event handling.
  • Built-in retry / reconnection.
  • Async iterators / generators for streams.
  • Mock support for tests.
Until then, copy the quickstart code and tune to your needs.

See also