Skip to content

Unpin wasm-bindgen#12737

Merged
rerun-sync[bot] merged 1 commit intorerun-io:mainfrom
anassinator:unpin-wasm-bindgen
Apr 23, 2026
Merged

Unpin wasm-bindgen#12737
rerun-sync[bot] merged 1 commit intorerun-io:mainfrom
anassinator:unpin-wasm-bindgen

Conversation

@anassinator
Copy link
Copy Markdown
Contributor

The comment specifically specifies to never pin this dependency, but we do anyways. This prevents us from upgrading.

> Do not make this an = dependency, because that may break Rust users’ builds when a newer

This was done correctly prior to af1f737 which pinned it without clear justification.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! Thanks for opening this pull request.

Because this is your first time contributing to this repository, make sure you've read our Contributor Guide and Code of Conduct.

@SeaOtocinclus
Copy link
Copy Markdown
Contributor

SeaOtocinclus commented Apr 22, 2026

@lucasmerlin @jleibs @Wumpf Any feedback on this?

Copy link
Copy Markdown
Member

@emilk emilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah good catch. Yeah, Cargo.lock should handle this without the =

@emilk emilk added dependencies concerning crates, pip packages etc consider-patch PRs & issues that should be considered to be cherry-picked to a patch release branch. include in changelog rust Pull requests that update rust code labels Apr 22, 2026
@emilk
Copy link
Copy Markdown
Member

emilk commented Apr 22, 2026

@rerun-bot reality-sync

@rerun-sync
Copy link
Copy Markdown
Contributor

rerun-sync Bot commented Apr 22, 2026

Sync complete. Mirror PR in reality: https://github.com/rerun-io/reality/pull/1698

Triggered by @emilk

@rerun-sync rerun-sync Bot merged commit 09d8900 into rerun-io:main Apr 23, 2026
46 of 48 checks passed
nymph-ai added a commit to nymph-ai/rerun that referenced this pull request Apr 23, 2026
… + re_audio + AudioView (#1)

* Ensure unique `RowId`s when mapping a component

### Related

* Closes RR-4450.

### What

We need to ensure `RowId`s for a given component column are always
unique.

Source-Ref: 1fca59e1251df87ab6228b1b467c4b54f5165cf7

* Improve handling of NaN & Infinity values in time series view

### Related

* Fixes RR-4360
* Fixes RR-4358

### What

Three distinct fixes for non-finite handling
* visible y range determination filters out non-finite values, only
becomes NaN/Inf if ALL values in range are. (this caused glitches in
automatic scalar range)
* if a line series point is now surrounded by non-finite values, it will
be drawn as a single point instead of being ignored
* intra pixel aggregation no longer aggregates non-finite values and
instead passes them through

Example image: these are lines for data that is mostly non-finite:
<img width="693" height="502" alt="image"
src="https://github.com/user-attachments/assets/75a5d8b0-716b-4651-a266-5704cafd57f3"
/>

### Testing

Aggregation got dedicated unit tests & proper documentation how they
should all behave.
NaN/inf "island" rendering got its own new test

---------

Source-Ref: 4c909ab7a48c37f549b8df13faa009377e405d8f
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Andreas Reich <Wumpf@users.noreply.github.com>

* Migrate more checks to `ghat`

Migrate `rerun/` Rust/Python checks into the
`.github/ghat/workflows/reusable_checks.ts`.

Main goals are to reduce the amount of handwritten YAML and the number
of jobs we have.

Source-Ref: 8f22bf8e30c6b254ad275fbf6952f293aac38d0b

* By default, fetch similar chunks 30 seconds of playtime forward

### Related

- Closes RR-4235
- Closes RR-4319

### What

By default, instead of fetching all similar chunks, now fetch 30 seconds
forward of similar chunks. This 30 seconds is 30 seconds of playtime. So
on 1x speed on a timestamp timeline it is 30 seconds forward on the
timeline. On a sequence timeline with 30 fps it is 900 steps forward.

This is configurable by a slider when "similar" chunks has been
selected.

For previews this is 10 seconds forward.

Source-Ref: cbbfe8f16be3419f127d482cd2990faadfe3325d

* Add tracing to dataloader

* Part of RR-4427

~Very difficult to test because we don't actually have an example or
benchmark of the dataloader yet.~

Review with whitespaces turned off

### Instructions
Start Jaeger with:

pixi run compose-dev
open “http://localhost:16686/”

Then run your training with:

TELEMETRY_ENABLED=true OTEL_SDK_ENABLED=true uv run python train.py

Source-Ref: b78f5457f37fa7cdd3461db6d4155308a5868c7f

* Remember memory limit between viewer relaunches

### Related
* Closes rerun-io#12727

### What
The memory budget/limit you enter in the settings panel is now persisted
even when you relaunch the viewer.
Also in the web viewer.

`--memory-limit` is still there for convenience and backwards
compatibility, and will change the stored value.

---------

Source-Ref: 868a9672535ffaa5049b396b26be58a58599d55a
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Emil Ernerfeldt <emilk@users.noreply.github.com>

* Add `SystemCommand::RemoveRedapServer` for more thorough cleanup

### Related

* Closes RR-4437
* Follow-up rerun-io#1696

### What

We never cleaned up blueprints that belonged to server after removing
them. This PR ensures that any blueprints that are associated with a
server (including persisted ones) get cleaned up. For this we lift
`Command::RemoveServer` to a `SystemCommand::RemoveRedapServer` so that
we have access to the `StoreHub`.

Source-Ref: 571641c8990835b6185d4a7bae4ca1eb23f7a0d4

* Removing all calls to `StoreBundle::entry` apart from `entity_db_entry`

### Related

* Part of RR-4404.

### What

First step, removing all calls to `StoreBundle::entry` apart from
`StoreHub::entity_db_entry`. Also renames `StoreBundle::recording_store`
to just `StoreBundle::stores` because the bundle most certainly includes
blueprints as well.

---------

Source-Ref: 3d5647a73287c97755add6893745f13579aa0987
Co-authored-by: Andreas Reich <andreas@rerun.io>

* Adds experimental Status archetype

### Related

Closes RR-4244
Closes RR-4371

### What

Part of the effort to log and visualize states.

- Adds the Status archetype (rerun.archetypes.Status) for logging
discrete state/status transitions over time
- Adds the StatusView (experimental) that renders status transitions as
horizontal colored lanes with a time axis
- Adds the StatusVisualizer that queries Status archetypes and groups
them into lanes per entity
- New re_view_status crate with pan/zoom, time cursor dragging, timeline
switching, and hover tooltips Gated behind
enable_experimental_status_view startup option (Settings > Experimental
> "Enable Status view")
- Blueprint view definition (StatusView) for programmatic view creation
- Example snippets in Rust, Python, and C++ (archetypes/status,
views/status)
- `status_example` Rust example app

from @grtlr:
* [x] @rerun-bot full-check

---------

Source-Ref: dc0dcc3fc03f655e90bd7d03cb5c122bb467bd11
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add `apply_selector` methods to `Chunk`

### Related

* Parallel work to RR-4442.
* [x] Requires rerun-io#1694.

### What

This introduces `apply_selector` on Rust and Python as a convenient way
to modify component columns, while keeping the original chunk structure
intact. rerun-io#1694 makes sure that there won't be collisions with existing
chunks / rows, by generating new `RowId`s.

Source-Ref: 5d54782916e8bba60a21bc676b415ebb8d64535a

* Lazy RRD loading in OSS server

### Related

* related to
https://linear.app/rerun/project/py-chunk-chunk-centric-processing-pipeline-and-lenses-apis-in-python-1cf386cd9cd3
* closes
https://linear.app/rerun/issue/RR-4383/make-oss-server-lazy-using-lazyrrdstore
* closes
https://linear.app/rerun/issue/RR-4458/make-chunkstoreextract-properties-report-all-chunks-it-needs

### What

This PR makes the OSS server lazy: recordings with an RRD footer no
longer need to be read fully into memory at registration. Chunks stay on
disk and are fetched on demand.

- **Lazy RRD loading in the OSS server.** RRDs with a footer register in
time proportional to the footer, not the file. Chunk data is
materialized only when a client actually requests it. Footerless RRDs
still work via an eager fallback.
- **Unified backend abstraction.** Dataset, query, and registration
logic now operates over a single "resolved store" type that covers both
the in-memory (eager) and file-backed (lazy) cases, so the rest of the
server is agnostic to which backend is underneath.
- **Manifest responses without materialization.** `GetChunks` and
`GetRrdManifest` synthesize their responses directly from the cached
footer manifest for lazy layers, skipping the chunk-decoding pass that
was previously required.
- **Per-layer manifests, merged at the segment level.** Each layer emits
its own manifest — lazy clones the cached footer, eager rebuilds from
chunks — and a schema-polymorphic merge kernel combines them for
multi-layer segments. The same kernel now also backs the commercial
side.
- **Batched lazy loads.** Requests that reference many chunks inside the
same lazy file are served in a single pass, amortizing the per-chunk
lock and IPC-decode overhead.
- **On-demand property extraction.** Layer properties are fetched
incrementally on lazy stores — only the chunks actually needed to
compute properties are pulled in.
- **Size semantics aligned with commercial.** Lazy layers report the
same on-disk IPC byte length the commercial implementation exposes.
- **Shared manifest-metadata helpers.** Index-column conventions
(`is_index`, start/end/len markers, per-component temporal, etc.) now
have a single canonical implementation reused by both OSS and
commercial.
- **Equivalence tests.** Lazy-backed and eager-backed layers are checked
end-to-end to produce manifests that agree on every client-observable
axis: chunk IDs, entity paths, staticness, row counts, schema shape, and
decodable chunk keys.

### Testing

Yes

### Compatibility

No user facing API change.

Source-Ref: 887dfa7b4121071c37a7235dc9df7534068ceb03

* Clean up errors in `re_lenses_core`

### Related

* [x] Requires rerun-io#1701

### What

The error variants in `re_lenses_core` have grown organically. This PR
cleans them up a bit.

Source-Ref: 207c8a3e817426af4dab28638ceae23771176305

* Unpin wasm-bindgen (rerun-io#12737)

The comment specifically specifies to never pin this dependency, but we do anyways. This prevents us from upgrading.

[>  Do not make this an `=` dependency, because that may break Rust users’ builds when a newer
](https://github.com/rerun-io/rerun/blob/main/Cargo.toml#L428)

This was done correctly prior to rerun-io@af1f737 which pinned it without clear justification.

Source-Ref: 70423f3a07754aa84dab6b6b9a004c82425b653f

* Improve tracing on the Python SDK's Rust side

## What
* Cherry-picked from commits I made to
https://github.com/rerun-io/reality/pull/1693

## Summary

- Fix tracing ancestry in DataFusion table providers
(`SegmentTableProvider`, `DatasetManifestProvider`,
`SearchResultsTableProvider`, `TableEntryTableProvider`): capture
`Span::current()` at construction so spans created on DataFusion-spawned
worker tasks re-parent under the caller's span instead of surfacing as
root traces.
- Add `read_trace_context_from_python` to methods that were missing it
in `PyDatasetViewInternal` (`segment_ids`, `filter_segments`,
`filter_contents`) and minor additions in `connection_*`,
`dataset_entry`, `trace_context` helpers.
- Prefix all `read_trace_context_from_python` span names with the Python
class name (e.g. `segment_ids` → `DatasetView.segment_ids`, `schema` →
`DatasetEntry.schema`) so Jaeger traces are unambiguous across
`DatasetView` / `DatasetEntry` / `CatalogClient` / `TableEntry` /
`RegistrationHandle`.

All changes are Rust-only (`crates/store/re_datafusion/**`,
`crates/store/re_redap_client/**`, `rerun_py/src/catalog/**`). No API or
behavior change when `perf_telemetry` is off.

Source-Ref: a147a58986a1c017b2d12c850bfe6caa2eb699ca

* Add native audio support: AudioStream / AssetAudio / AudioSampleReference archetypes, re_audio runtime, AudioView

- Three new archetypes (AudioStream, AssetAudio, AudioSampleReference) plus
  audio components (codec, sample_rate, channel_count/layout, chunk,
  duration_samples, seekable, discontinuity, stream_id, sequence_number,
  priming_delay, timestamp) — codec-agnostic schema, Opus-selective first.
- New re_audio crate: decoder (libopus native / WebCodecs wasm), media clock,
  resampler, segment indexing, AudioStreamPlayer + ring buffer, pluggable
  AudioSink trait with cpal (native, dedicated thread) and WebAudio (wasm,
  scheduled AudioBufferSourceNodes) implementations.
- New re_view_audio crate: AudioView + AudioStreamVisualizerSystem, per-view
  playback state driving the sink each frame, mute transport, diagnostic
  surface for sequence gaps / out-of-order / discontinuities.
- Asset+stream caches in re_viewer_context for sharing decoded state across
  frames.
- Python SDK, C++ bindings, generated docs, and reflection wired through
  codegen; synthetic Opus demo snippet; smoke test for the view registration
  + round-trip logging path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Jochen Görtler <grtlr@users.noreply.github.com>
Co-authored-by: Andreas Reich <andreas@rerun.io>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Andreas Reich <Wumpf@users.noreply.github.com>
Co-authored-by: Jan Procházka <pjanv42@gmail.com>
Co-authored-by: Isse <git@isse.rs>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
Co-authored-by: Emil Ernerfeldt <emilk@users.noreply.github.com>
Co-authored-by: Gábor Gyebnár <korteur@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Antoine Beyeler <49431240+abey79@users.noreply.github.com>
Co-authored-by: Anass Al <dev@anassinator.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consider-patch PRs & issues that should be considered to be cherry-picked to a patch release branch. dependencies concerning crates, pip packages etc include in changelog rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants