Compatibility
Supported API surfaces, peer versions, and dependency floors.
RLMesh 0.1.0 is the first public release. For an evaluation across processes, each participant advertises the workflow editions it can run. The runtime selects one edition shared by the environment, model, and runtime, then pins that edition for the session. RLMesh follows Semantic Versioning for its public APIs.
Public API support
Stable Python symbols, documented CLI flows, and remote environment and model workflows follow the version contract. A breaking change to a stable symbol ships in a minor release and comes with migration guidance in the Changelog. A patch release preserves the stable surface.
Experimental APIs may change or disappear without migration guidance. Torch
and JAX backends, sandbox helpers, and the MultiBinary, MultiDiscrete,
Text, and Tuple space wrappers are experimental. The
Gymnasium space table gives the status of each
wrapper. The managed Python client, rlmesh.platform, is also experimental
while the platform is in early access.
Most published Rust crates support the Python extension and are internal
implementation details. Their Rust APIs have no stability promise. The
rlmesh facade crate and CLI are intended as public Rust surfaces, but the
facade API is not stable yet.
Peer compatibility
An environment or model can declare the edition it was written for. Upgrading
its installed package does not change that declaration. A session can run
across package versions when every participant supports the chosen sealed
edition and the values it exchanges. New wire types or capabilities may
still require newer peers or cause a clear refusal. The first release uses
the sealed 2026.06 edition; Workflow Editions
explains how to declare and negotiate it.
The managed platform also checks the installed rlmesh version in submitted
images against the SDK version its runner expects. Use that version when
building a managed model or environment image.
Supported framework versions
| Dependency | Minimum | Notes |
|---|---|---|
| Python | 3.10 | Package baseline |
| NumPy | 1.22 | Optional NumPy backend |
| Torch | 1.11 | Optional Torch backend |
| JAX | 0.4.24 | Optional JAX backend; DLPack bool support starts here |
Some operations need newer versions than the install minimum. NumPy
from_dlpack needs 1.23, or 1.25 for bool. Torch DLPack bool
needs 2.2; older versions copy instead. Torch uint16/32/64 needs 2.3.
On glibc 2.41+ hosts, Torch wheels older than 1.13 may fail to load, so
the dependency-floor test uses Torch 1.13.1 there.
Values at the boundary
rlmesh.Tensor carries shape, dtype, and bytes between a framework and
the wire. It is not an array for computation. Exporting a tensor through
DLPack or the buffer protocol can share memory; constructing one from a
framework array currently copies. The backend API pages
explain when decoded values are writable.
Values are converted to the space’s declared dtype before transport. A
float for an integer space must be exactly integral. Values outside declared
Box bounds or Text limits are delivered with a
rlmesh.conformance.warning in the info map by default. Set
RLMESH_VALIDATION_POLICY=strict to reject them or off to skip those
checks. Wrong shapes, dtypes, arity, missing keys, and NaN are always
rejected. The 2026.06 edition is the
full behavioral contract.