0.11.0 - C++ improvements & better Visible History - 2023-11-28
https://github.com/rerun-io/rerun/assets/1220815/9099b81d-626f-4974-87d7-0e974361a9f0
✨ Overview & highlights
- 🌊 C++ SDK improvements
- Reference docs are live!
- 2x-5x faster logging
- CMake install support and other CMake setup improvements
- Support for custom components & archetypes
- Zero copy logging for images, various API improvements
- 📈 Visual History -> Visual Time Range
- Time series plots can now limit its query to a range
- Much more powerful UI, allowing query ranges relative to time cursor
- 🕸️ The Viewer can now be easily embedded in your web apps via our npm package
- 🐍 ⚠️ Legacy Python API now removed, check the migration guide if you're not using
rr.log
yet - 🦀 The new
StoreSubscriber
trait allows to be notified of all changes in the datastore. This can be used to build custom indices and trigger systems, and serves as a foundation for upcoming performance improvements. Check out our example for more information.
⚠️ Known issues on Visual Time Range:
Special thanks to @dvad & @dangush for contributing!
🔎 Details
🌊 C++ SDK
- Support std::chrono types for
set_time
on rerun::RecordingStream
#4134 - Improve rerun_cpp readme & CMakeLists.txt #4126
- Replace the many parameters of
rerun::spawn
/ rerun::RecordingStream::spawn
with a struct
#4149 - Make on TextLogLevel PascalCase (instead of SCREAMING CASE) to avoid clashes with preprocessor defines #4152
- Reduce rerun_c library size (by depending on fewer unnecessary crates) #4147
- Fix unnecessary includes in code generated headers #4132
- Doxygen documentation & many doc improvements #4191
- Rename
rerun::ComponentBatch
to rerun::Collection
(and related constructs) #4236 - Use
rerun::Collection
almost everywhere we'd use std::vector
before #4247 - Significantly improve C++ logging performance by using C FFI instead of Arrow IPC #4273
- Further improve C++ logging for many individual log calls by introducing a component type registry #4296
- All C++ datatypes & components now implement a new Loggable trait #4305
- Add C++ Custom Component example #4309
- Expose Rerun source/include dir in CMakeLists.txt (
RERUN_CPP_SOURCE_DIR
) #4313 - Support cmake install #4326
- Export TensorBuffer & TensorDimension to Rerun namespace #4331
- C++ SDK sanity checks now header/source version against rerun_c binary version #4330
- Allow creating Image/Tensor/DepthImage/SegmentationImage directly from shape & pointer #4345
🐍 Python SDK
- Python: remove legacy APIs #4037
- Remove deprecated
rerun_demo
package #4293 - Python: don't catch
KeyboardInterrupt
and SystemExit
#4333 (thanks @Dvad!)
🪳 Bug fixes
- Fix line & points (& depth clouds points) radii being unaffected by scale & projection via Pinhole #4199
- Fix inaccessible entities being incorrectly added to space view #4226
- Silence spammy blueprint warnings and validate blueprint on load #4303
- Fix markdown heading size #4178
🌁 Viewer improvements
- Add command to copy direct link to fully qualified URL #4165
- Implement recording/last-modified-at aware garbage collection #4183
🖼 UI improvements
- Improve Visible History to support more general time queries #4123
- Add support for Visible History to time series space views #4179
- Make Visible History UI more ergonomic and show inherited values #4222
- Display Visible History on timeline when the mouse hovers the UI #4259
- Improve the Selection Panel with better title, context, and Space View key properties #4324
🕸️ Web
- Put web viewer on
npm
#4003 - Auto-switch port when getting AddrInUse error #4314 (thanks @dangush!)
- Generate per-PR web apps #4341
🧑💻 Dev-experience
- Simple logging benchmarks for C++ & Rust #4181
- New debug option to show the blueprint in the streams view #4189
- Use Pixi over setup scripts on CI + local dev #4302
- Run deploy docs jobs serially #4232
- fix Windows test config on main #4242
🗣 Refactors
StoreView
-> StoreSubscriber
#4234DataStore
introduce StoreEvent
s #4203DataStore
introduce StoreView
s #4205