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.