Orbit

June 29, 2026 · View on GitHub

A set of independent utilities around the NATS ecosystem that aim to boost productivity and provide a higher abstraction layer for NATS clients — the Python counterpart to orbit.go.

Each utility is published as its own distribution, so you only depend on the pieces you use.

Layout

This is a uv workspace. The root is a virtual workspace (tooling only); utilities are added as members under the orbit-* convention as they are built. Each member ships under the shared orbit namespace package:

distribution   orbit-<utility>      ->   import   orbit.<utility>

Names map 1:1 to orbit.go's modules and stay flat (e.g. orbit-counters, not orbit-jetstream-counters); a utility's relationship to JetStream is expressed as a dependency, not a name hierarchy.

Utilities

Mirroring the feature set of orbit.go. None implemented yet — this is the planned set.

DistributionModuleStatusDescription
orbit-natsextorbit.natsext⬜ plannedCore NATS extensions
orbit-jetstreamextorbit.jetstreamext⬜ plannedJetStream extensions
orbit-natscontextorbit.natscontext⬜ plannedConnect to NATS using NATS CLI contexts
orbit-natssysclientorbit.natssysclient⬜ plannedClient for the NATS monitoring / system APIs
orbit-pcgroupsorbit.pcgroups⬜ plannedClient-side partitioned consumer groups
orbit-kvcodecorbit.kvcodec⬜ plannedTransparent encoding/decoding for JetStream KeyValue stores
orbit-countersorbit.counters⬜ plannedDistributed counters built on JetStream streams

Development

Requires uv and Python 3.13+.

make deps     # uv sync the workspace
make test     # ruff + codespell + ty + pytest
make format   # ruff format

License

Apache 2.0 — see LICENSE.