Skip to content

Releases: instadeepai/echo

echo v0.1.1

26 May 08:59

Choose a tag to compare

[0.1.1] - 2026-05-26

  • TrajectoryAccumulator better supports single and buffered timescales modes:
    • Buffered if: all leaves have a leading dim > 1
    • Single if: all leaves have leading dims == 1 or there is a single scalar
  • Guide and API reference cover both accumulator modes and the detection rule.
  • New project logo and README polish (#3).

Pull Requests

Full Changelog: v0.1.0...v0.1.1

echo v0.1.0

18 May 16:09
0ccf068

Choose a tag to compare

First public release.

echo exists because data movement was the bottleneck in our distributed RL pipelines. Existing options are good, but most are tied to a specific framework (e.g Reverb to TF) and allocate per-sample on the hot path. echo depends only on numpy and optree, and is built around a pre-allocated lockfree ring buffer in Rust that hands batches to Python as numpy views into Rust-owned memory. Designed for hundreds-to-thousands of concurrent rollout workers feeding a single learner.

In this release:

  • Lockfree, pre-allocated ring buffer
  • TCP transport with per-connection SPSC queues and a drainer pool
  • Pytree samples (nested dicts/tuples of numpy arrays) via optree
  • Zero-copy batches — sample() returns views, no copy after ingress
  • GIL released while waiting on the next batch
  • Per-batch backpressure and throughput metrics on SampleInfo
  • Optional detailed-metrics build for histogram-based timing
  • TrajectoryAccumulator helper for stacking rollout steps

Known limitations:

  • FIFO is the only sampling strategy. Prioritised and uniform-random are on the list.
  • TCP is the only transport for now; the interface is pluggable.
  • Linux and macOS wheels only.
pip install id-echo

Docs: https://instadeepai.github.io/echo/