Minimize logging SDK dependencies to improve compile times
We want to lower the threshold for someone to use rerun or re_sdk to just log data to a file, and then open that file in app.rerun.io. That includes minimizing the amount of dependencies one has to build. If someone does cargo add rerun and sees 200 dependencies being pulled in, they may very well abort.
So: to use the SDK to only log to a file should be possible with a minimal set of dependencies; mostly just Arrow.
In the future we could add support for the native viewer streaming and .rrd file that is being written to by the SDK, thus still supporting spawn even without WebSockets:
- https://github.com/rerun-io/rerun/issues/4056
cargo tree -p rerun -e normal is good tool for working on this, as is cargo build --timings -p rerun --no-default-features
cargo clean && cargo build --timings -p rerun --no-default-features produces this:
What the hell is egui doing there? (fix: https://github.com/rerun-io/rerun/pull/5099)
And wasm-bindgen for a native build makes no sense either.
One important crate to focus on is re_sdk.
cargo tree -p re_sdk reveals some deps that should be removed:
serdeenv_loggerbacktracefixednum-derivecomfy-tablesimilar-assertstimere_memory
build-deps:
cargo_metadatasha2walkdir