Releases: rerun-io/rerun
0.25.0 - Syntax highlighting, table filtering, transparent objects
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.25.0/rerun_cpp_sdk.zip
✨ Overview & highlights
Syntax highlighting
Our data frames and selection panel now feature prettier colors based on data types.
Table filtering
We are busy working on a powerful filtering feature for our arrow dataframe widget used for tables (sent with ViewerClient.send_table()
) as well as the Rerun server browser (entry list, partition list, and remote tables). This release introduces support for filtering boolean, integer, floating point, and string columns, with more coming in future releases. (Note that the text log views and dataframe views are using a different widget which does not support filtering.)
Transparent objects
We finally support transparency for meshes & various shapes (boxes, ellipsoids, etc.)!
transparency.mp4
Source of transparency ("alpha") is a bit limited for now:
- color component on all of
Boxes3D
,Ellipsoids3D
,Capsules3D
&Cylinders3D
Mesh3D
's albedo factorAsset3D
albedo color (depends on the underlying model format)
Naturally, there's still a lot of places missing where we'd like to add transparency support!
Experimental MCAP support
Rerun has experimental, partial support for importing data from MCAP files. We support a subset of ROS2/CDR and Protocol Buffers messages. Development is ongoing, feel free to share your use cases!
⚠️ Breaking changes
We removed the --serve
, --drop-at-latency
and -o
CLI arguments, deprecated Python 3.9 and changed archetype
specification in AnyValues
.
See the
🧳 Migration guide for more details.
🔎 Details
🪵 Log API
- Add explicit timeout to flush API #11008
- Make archetype and URDF loaders honor
entity_path_prefix
#11085 - Keep static log messages longer in the proxy #11091
🌊 C++ API
- Fix
flush_blocking
destroying C++ recording stream #10885 - Respect
CMAKE_BUILD_TYPE
when building the Rust code #11023 - Add options to gRPC proxy server to replay newest data first #11118
- Prevent arow_cpp from configuring/building/installing all the time #11093 (thanks @eliemichel!)
🐍 Python API
- Add
__len__
to codegened Python datatypes #10774 - Remove '-o' shorthand for stdout from script_add_args #11043 (thanks @kabouzeid!)
- Deprecate python 3.9 #11090
- Bump datafusion-python to 48.0.0 #11089
- Improve numpy 1 compatibility #11129 (thanks @Benjamin-Tan!)
- Split AnyValues into AnyValues and DynamicArchetype #11045
🦀 Rust API
🪳 Bug fixes
- Fix panic on bad STL files (e.g. for URDFs) #10855
- Fix
Ellipsoids3D
archetype not showing in 2D view projections #10922 - Fix unwanted eye (camera) movement when using shortcuts #8975 (thanks @kailiuca!)
- Fix opacity heuristic for images/segmentation when scene changes #11014
- Fix 3D eye camera reset not resuming tracking scene bounding box #11037
- Fix mesh cache eviction issue #11079
- Fix recording to split in two when loading an URDF #11086
- Fix for single channel textures displayed only in the red channel #11101
- Fix columns menu closing on click #11119
- Fix sharing selection as a fragment #11161
- Fix UI glitch when connected twice to the same server #11185
- Fix tooltips sometimes being way too big #11190
- Fix incorrect application id when dragging and dropping files #11197
- Fix wrong rendering of some texture formats in light mode #11225
🌁 Viewer improvements
- Integrate basic MCAP loader from
rerun-io/rerun-mcap
#10721 - Support scroll-/pinch-to-zoom with first person eye control #10783
- Low-level Arrow conversion of
protobuf
-encoded MCAP messages #10791 - Support flexible x-axis for bars in BarChart #10675 (thanks @Xiao-Chenguang!)
- Customize color and line width of
Pinhole
camera frustum #10842 - CLI now consistently forward URLs to native/web viewer when possible #10909
- Fix closing recordings/tables that are still being loaded showing up again #10963
- Persist fallback token #10970
- Allow opening web viewer links directly #10928
- Add keyboard shortcut to copy entity hierarchy #10938
- Add H.265 support for native &
VideoStream
#10994 - Support sharing URLs for dataplatform datasets & tables #11038
- New open from URL dialog & main menu entry #11040
- Add archetypes for MCAP metadata #11062
- Add
opacity
setting forVideoStream
&VideoAsset
#11113 - Add MCAP parsers for scalar sensor messages #11078
- Remove custom number formatting on copy #11148
- Implement fallback mode for raw MCAP layer #11136
- Support basic transparency for
Mesh3D
/Asset3D
/Boxes3D
/Ellipsoids3D
/Capsules3D
/Cylinders3D
#11132 - New link sharing dialog for detailed link sharing #11137
🚀 Performance improvements
- Prevent 100% CPU Usage when running gRPC server by sleeping instead of yielding #10944 (thanks @nisseknudsen!)
📚 Docs
- Fixed highlighting of Python code in docs #10920 (thanks @YohDeadfall!)
- Correct 'altitude' to 'latitude' in documentation #10998 (thanks @skalldri!)
- Added release calendar for Python #11081
🖼 UI improvements
- Log all low-level MCAP primitives + raw messages as fallback #10769
- Add arrow data tree view and syntax highlighting #10777
- Add debug information about caches on the memory panel #11055
- Implement full text filtering for string-based columns of the table widget #11061
- Add support for filtering on boolean columns #11095
- Add support for filtering numeric (int/float) columns in tables #11142
- Use partition id in the recording panel #11157
- Draw loop selection highlight on the collapsed timeline #11203
- Move copy / save buttons inline with the relevant component #11181
- Set timeline with most ...
Development Build
This is a prerelease. It is not intended for production use.
Please report any issues you find.
Example Hosted App
https://rerun.io/viewer/commit/ce2bfd7
Wheels can be installed with:
pip install --pre --no-index -f https://build.rerun.io/commit/ce2bfd7/wheels --upgrade rerun-sdk
or
pip install --pre --no-index -f https://github.com/rerun-io/rerun/releases/download/prerelease --upgrade rerun-sdk
CMake fetch-content for C++ SDK
include(FetchContent)
FetchContent_Declare(rerun_sdk URL https://build.rerun.io/commit/ce2bfd7/rerun_cpp_sdk.zip)
FetchContent_MakeAvailable(rerun_sdk)
or
include(FetchContent)
FetchContent_Declare(rerun_sdk URL https://github.com/rerun-io/rerun/releases/download/prerelease/rerun_cpp_sdk.zip)
FetchContent_MakeAvailable(rerun_sdk)
Web Viewer NPM package
Can be installed with:
npm install https://build.rerun.io/commit/ce2bfd7/rerun_js
0.24.1 - Bug fixes
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.24.1/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.24.1/rerun_cpp_sdk.zip
🌊 C++ API
- Fix
rerun_cpp
CMake link errors #10756 (thanks @reinar!) - Fix C++ interface for
VideoStream
#10745 - Fix C++ Arrow build #10799
🐍 Python API
- Explicitly import
pyarrow.compute
inurl_generation.py
#10690 - Add
rerun-sdk[datafusion]
andrerun-sdk[all]
#10696
🦀 Rust API
- Fix unnecessary
rfd
and wayland dependencies in SDK crate #10802
🪳 Bug fixes
- Make
parking_lot
dependency version stricter to prevent import failure #10732 (thanks @sdd!) - Use
ui.warning_label()
in more places #10697 - Fix colors sometimes being wrong in plot view #10713
- Fix breaking example in
rerun_notebook/example.ipynb
#10706 (thanks @glk0!) - Fix GUI hickup when starting native video player #10797
- Improve command palette in light mode #10825
🌁 Viewer improvements
- Add time range query params when opening a time_range-based url #10819
🖼 UI improvements
- Better component UI for Arrow
StructArray
#10748
🕸️ Web
- Make
@rerun-io/web-viewer-react
compatible with React 19 #10809
📈 Analytics
- Add some analytics events #10793
0.24.0 - Light mode, streaming video and data model improvements
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.24.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.24.0/rerun_cpp_sdk.zip
✨ Overview & highlights
💽 Tagged components
Starting with 0.22 Rerun began storing additional meta-information for each component,
identifying its field name (e.g. vertex_colors
) and its archetype (e.g. Mesh3D
).
We finally concluded this effort and made all parts of the Viewer and API aware of this.
While this is mostly about under-the-hood changes, this has a lot of surface level benefits:
- You can now log the same component type multiple times on a single entity path.
For example, logging multiple archetypes which use theColor
component onto the same entity was possible before, but the colors would have overwritten each other:
rr.log("path", rr.GeoPoints(lat_lon=[some_coordinate], colors=[0xFF0000FF]))
rr.log("path", rr.Points2D(positions=[0.0, 0.0], colors=[0x0000FFFF]))
rr.log("path", rr.Mesh3D(vertex_positions=vertices, vertex_colors=[0x00FF00FF]))
- The UI now groups by archetype everywhere and will show the same field names you use in the logging SDKs
- Better blueprint defaults: component defaults are now per archetype field and not per type. Making them a lot more useful.
- No more indicator components! These showed previously up in the UI and needed special handling for some advanced use cases.
🎥 Video streams
Rerun previously supported video only in the form of MP4 files,
so it was not possible to stream live encoded video to Rerun.
The new VideoStream
archetype remedies that!
If you already have encoded video frames, it is just as easy as logging images now:
rr.set_time("time", duration=float(packet.pts * packet.time_base))
rr.log("video_stream", rr.VideoStream(codec=rr.VideoCodec.H264, sample=bytes(packet)))
For now, we only handle H.264, but support for more codecs is on the roadmap.
Learn more on the updated video reference page.
😎 Light mode
Rerun finally has a light mode.
The theme defaults to your OS's setting, but can be adjusted in the settings menu.
🔀 Multi sink
Previously, the SDK's recording stream could only send to one sink at a time.
We now expose the ability to set multiple sinks at once, so you can simultaneously
stream to both the Viewer and a file.
Here's what that looks like in Python (but the API is available in C++ & Rust as well!)
rr.set_sinks(
# Connect to a local viewer using the default URL
rr.GrpcSink(),
# Write data to a `data.rrd` file in the current directory
rr.FileSink("data.rrd"),
)
🤖 Built-in URDF data loader
You can now log URDF files directly to Rerun using the log_file
API.

👀 Other highlights in short
- New
Cylinder
archetype AnyValues
utility for Rustrerun rrd stats
for retrieving statistics about rrd filesrerun rrd route
command to manipulate .rrd files on transport level- Much faster & better compaction for both
rerun rrd compact
and automatic in-Viewer compaction - Viewers started with
spawn
use now less memory since it no longer sets up an GRPC server for message forwarding - View3D's eye control type & speed can now be changed from blueprint (and as such is persisted over session!) more properties will follow in the future. (thanks to @jccampagne)
🔎 Details
🪵 Log API
- Remove deprecated
Scalar
,SeriesLine
,SeriesPoint
archetypes #9892 - Remove untagged
Component::descriptor()
#10038 - Add
Cylinders3D
archetype #10139 - Provide
AnyValues
helpers in Rust SDK #10074 - Rename
ComponentDescriptor
fields and use colons in Sorbet metadata #10245 - Stop logging indicators and drop them during migration #10521
- Make
SeriesPoints::markers
component required #10572 - Remove indicators from codegen,
rerun_py
, andrerun_cpp
#10581 - Removes remnants of indicators from dataframe queries and viewer #10584
rerun rrd stats
#10593- Source default batcher settings from sink #10620
🌊 C++ API
- (CMake) download arrow inside the rerun build folder instead of general binary folder #10141 (thanks @jzubizarreta!)
- Fix documentation wording on which arrow-cpp version to use #10235
- Disable gRPC server history for Spawn/CLI #10314
- Add
set_sinks
to C++RecordingStream
#10359
🐍 Python API
- Add
Dataset.register_batch
and wrappers for task ids #9895 - Introduce
ConnectionRegistry
for centralised redap client and token management #10078 - Build in
manylinux_2_28
container #10148 - Add APIs to Dataset to query and update the associated blueprint #10156
- Support for seconds-since-Epoch numpy arrays for constructing
TimeColumn
#10168 (thanks @MichaelGrupp!) - Fix initializing two recordings with the same recording id causing SDK hangs #10201 (thanks @AhmedMousa-ag!)
- Improve
rerun_notebook
startup times #10111 - New dataset API for just retrieving
chunk_ids
associated with a query #10261 - Multi-sink /
tee
Python API #10158 - Rename to
tee
toset_sinks
#10312 - Add support for
index=None
to local and remote dataframe APIs and deprecateselect_static
#10332 - Disable gRPC server history for Spawn/CLI #10314
- Deprecate
serve_web
and improve documentation around how to serve a web viewer #10360 - Add partition ID to
TimeUpdateEvent
#10403 - Fix
set_time_ctrl
not doing anything when called twice #10547 - Notebook auto-sizing #10554
- Add
RegisterTable
rpc,LanceTable
message, and related proto changes #10538 - Add
open_url
/close_url
notebook APIs #10602 - AnyValue Torch Performance Improvement #10647
- Make it easier to disable the 3D line grid in Python (blueprint) #10621
- Add
to_arrow_reader()
toTableEntry
andDataFusionTable
#10601 - Make it possible to configure batcher explicitly via python APIs #10657
🦀 Rust API
- Update MSRV to 1.85 #9798
- Improve
rerun
crate forwarding, removing need to depend on otherre_*
crates for viewer customization [#9825](https://github.com/r...
0.23.4 - Fix `rerun rrd migrate` tool
This release is a pure bugfix release for migration of old RRD files in how meta-data keys for archetypes & field names were handled.
For details see #10350
0.24.0-alpha.3
Bump versions to 0.24.0-alpha.3
0.23.3
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.3/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.3/rerun_cpp_sdk.zip
This patch release contains various bugfixes, improvements, and updated documentation.
🔎 Details
🌊 C++ API
- Fix building with arrow 20.0.0 #9966 (thanks @adamreeve!)
- Fix MSVC C++20 compilation issues #9951
🪳 Bug fixes
- Add draw order to video (-frame-reference), fix 2d objects sometimes being behind videos #9946
- Fix time series points querying extra points at start and end of time range (causing stuttering on playback in some scenes) #9963
- Increase max size of gRPC messages #10006
- Check TextEdit state before copying selection description #10063
🌁 Viewer improvements
- Use recording name for file name when saving a file #9982
- Improve error message for
QueryError
andDataLoaderError
#9998
🚀 Performance improvements
- Series of build changes for web release to minimize generated wasm #9870
📚 Docs
- Remove remaining mentions of
rr.connect
#10016 - Update callbacks and custom_callbacks example docs to mention the other #10062
- Fix missing reference to
Spatial3DView
inPinhole
docs #9932 (thanks @hu-po!) - Mention URL scheme in
connect_grpc
docs #10018
🤷 Other
- LeRobot: Add support for List datatype #9958
0.23.2 - RRD migration and bugfixes
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.2/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.2/rerun_cpp_sdk.zip
✨ Overview & highlights
- New CLI tool to migrate
.rrd
files - Various bugfixes
.rrd
migration tool
With 0.23
, we made several breaking changes that resulted in older .rrd
files not being able to load at all anymore.
To help smoothen the migration to 0.23
, we're introducing a migrate
command to the Rerun CLI:
rerun rrd migrate colmap.rrd arkit.rrd rgbd.rrd
The command will copy the contents into a .backup
file, and then migrate the file.
Due to the incompatibility between .rrd
files from 0.23
and those from earlier versions, this command likely
won't be able to migrate every recording perfectly. We expect the migration to work on files between 0.20
and 0.22
,
simpler recordings may work as far back as 0.18
.
We plan to use this command future .rrd
migrations as a way to fulfill our N+1 compatibility guarantee:
- Viewers after
0.23
will always be able to load recordings from the previous version. - Recordings from
0.23
and beyond may be migrated to the next version.
We currently have no plans for compatibility or migrations across multiple versions.
🪵 Log API
- Improve and mitigate warnings around data loss when flushing #9846
🐍 Python API
- Add
ViewerClient
torerun.experimental
#9828 - Improve
set_time
error handling for large Python integers #9839 - Properly resolve component selectors in dataset index creation and search APIs #9854
- Fix incorrectly advertised minimum supported
pyarrow
version (18.0.0 is required) #9878 - Fix incorrectly advertised numpy 1.x support (numpy2 is required now) #9880
🪳 Bug fixes
0.23.1 - Fix notebooks
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.0/rerun_cpp_sdk.zip
🪳 Bug fixes
- Use correct URL for
RERUN_NOTEBOOK_ASSET
#9800
🌊 C++ API
- C++: Emit warnings when using deprecated Rerun types #9801
🐍 Python API
- Direct API for setting blueprint on a notebook-embedded viewer #9804
🌁 Viewer improvements
- Fix doclinks to archetypes #9791
🧑🏫 Examples
- Add link to Gradio annotation example #9790 (thanks @pablovela5620!)
🖼 UI improvements
- Show image format (resolution etc) of image blobs #9792
0.23.0 - Backwards compatible `.rrd` and multi-scalar logging
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk
- Rust:
cargo add rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.0/rerun_cpp_sdk.zip
✨ Overview & highlights
Viewer
- ⏩ New .rrd format that will be backwards compatible
- 📈 Support for multiple scalars under a single entity
- ↪️ Callbacks API for notebooks and JavaScript
- ⚙️ New APIs for attaching properties (metadata) to recordings
- 🧮 Experimental support for tables and dataframes
Multiple scalars under a single entity
In this release we have added support for logging scalar data with multiple signals, under the same entity. This allow you to log data that inherently belongs together, such as the action values in a LeRobot dataset or gyroscope measurements, under the same entity path.
As part of this update, we're deprecating the SeriesLine/SeriesPoint/Scalar
archetypes in favor of the plural versions SeriesLines/SeriesPoints/Scalars
, for consistent naming with the other archetypes.
For example, the x
, y
and z
component of a gyroscope measurement, previously would be logged as separate entities:
rr.log("gyroscope/x", rr.Scalar(measurement[0]))
rr.log("gyroscope/y", rr.Scalar(measurement[1]))
rr.log("gyroscope/z", rr.Scalar(measurement[2]))
Now can be logged under a single entity:
rr.log("gyroscope", rr.Scalars(measurement))
See the new IMU signals example for more
The SeriesLine
and SeriesPoints
archetypes now include a visible_series
component that lets you control which series appear in your visualizations. Unlike the regular entity visibility property, hidden series will still show up in the legend.
Callbacks API for notebooks and JavaScript
We've added a (limited) API with callbacks, useable from JavaScript and from Notebooks (but not yet from out logging SDKs).
With this you can easily write simple annotations tools.
We've created an example for this using Gradio at https://github.com/rerun-io/annotation-example.
Recording properties
For this release, we have improved Rerun's logging capabilities. There is a new recording properties concept in all of our APIs.
Recording properties allow you to attach metadata to a recording.
For example, you can now change the name of your recording via .send_recording_name("My episode")
, which will show up in the recording panel of the viewer as well.
You can also log arbitrary data via the general .send_property()
method.
Properties are logged as static data and will therefore show up in the timeline as well.
Also, the side-panel shows an overview of the properties when a recording is selected.



Our snippets now contain examples for recording properties in all SDKs:
- 🐍 Python (
recording_properties.py
) - 🦀 Rust (
recording_properties.rs
) - 🌊 C++ (
recording_properties.cpp
)
Experimental send_table
API
We are also working on better support for tables and dataframes in Rerun, a feature that has been requested several times by our community. With this release, there is now an experimental API send_table
that can be used to send arbitrary Arrow record batches via the Python SDK and from notebooks. For now, while we evolve this feature, this API is separate from the rest of our logging APIs. This tutorial shows how to use this APIs and also provides more details on the current implementation. In future releases, we plan to improve support for the table representation in the viewer to facility more advanced analysis tasks such as filtering, or showing summary statistics.
Please note that this is distinct from our current send_dataframe
API and dataframe query view.

⚠️ Breaking changes
This release changes how the SDKs interact with the viewer, as Rerun now relies heavily on gRPC.
Additionally, we have changed our file format and data model to be much more flexible in the future.
These changes will improve our backwards-compatibility going forward, but this also means that this release introduces breaking changes to our .rrd
format and how the SDKs communicate with the viewer.
.rrd
files from previous releases cannot be loaded anymore- Removed unsupported connection methods from the SDKs
- The connection URLs have changed and now require a
rerun://
(TLS) orrerun+http://
(unencrypted) prefix - Several changes to our logging SDKs (timelines, time units, …)
You can find more information in our 🧳 migration guide
🔎 Details
🪵 Log API
- Migrate file format to protobuf #8995
- Move
rerun.components.blueprint.Visible
torerun.components.Visible
#9067 - Infer column partition size from shape in
Scalar.columns()
#9068 - Infer partition size for FixedSizeList-backed components #9210
- Recording properties for naming recordings and adding information #9249
- Provide APIs to log arbitrary data to recording properties #9316
- Deprecate
SeriesLine
/SeriesPoint
/Scalar
in favor ofSeriesLines
/SeriesPoints
/Scalars
#9338 - Add
serve_grpc
API #9447 - Add experimental
send_recording
python api #9148 - Implement
send_table
inre_grpc_server
andre_viewer
#9510 - Example showcasing
send_table
from notebooks #9522 - Add
rr.serve_web_viewer
#9540 - Add experimental
send_table
to Python SDK #9538 - Fix handling of custom indicator components #9755
🌊 C++ API
- Migrate SDK comms to gRPC #8838
- New C++ API for timestamp/duration indices #9200
- Remove deprecated C++
connect
APIs #9212 - Add
detach_process
option tospawn
#9400 (thanks @imstevenpmwork!) - Consistent constructor naming of
Asset3D
across C++ and Rust #9239 (thanks @abhishek47kashyap!) - Use consistent time unit names for our API #9343
- CMake: Use
find_dependency
for Arrow #9548 (thanks @BillyONeal!) - Set
RERUN_ARROW_LINK_SHARED_DEFAULT
based on found Arrow build #9550 (thanks @BillyONeal!)
🐍 Python API
- Migrate SDK comms to gRPC #8838
- Update maturin to 1.8.1 and fix
pyproject.toml
#9104 - Add
rr.set_index
to replacerr.set_time_*
#9166 - Fix support for numpy-2 #9109
- Add
rr.IndexColumn
#9179 - Python SDK spring cleaning: 3.9, no more monkey patching, more lints #9182
- Enable a bunch of
ruff
lints #9201 - Remove deprecated Python APIs:
log_components
,connect
,connect_tcp
#9197 - Remove deprecated
rr.serve()
#9207
...