982 lines
44 KiB
TOML
982 lines
44 KiB
TOML
[workspace]
|
||
resolver = "2"
|
||
members = [
|
||
"crates/build/*",
|
||
"crates/store/*",
|
||
"crates/top/*",
|
||
"crates/utils/*",
|
||
"crates/viewer/*",
|
||
"docs/snippets",
|
||
"examples/rust/*",
|
||
"rerun_py",
|
||
"run_wasm",
|
||
"tests/rust/log_benchmark",
|
||
"tests/rust/plot_dashboard_stress",
|
||
"tests/rust/re_integration_test",
|
||
"tests/rust/test_*",
|
||
]
|
||
exclude = ["examples/rust/revy", "examples/rust/chess_robby_fischer"]
|
||
|
||
[workspace.package]
|
||
authors = ["rerun.io <opensource@rerun.io>"]
|
||
edition = "2024"
|
||
homepage = "https://rerun.io"
|
||
include = [
|
||
"../../Cargo.lock", # So that users can pass `--locked` to `cargo install rerun-cli`
|
||
"../../LICENSE-APACHE",
|
||
"../../LICENSE-MIT",
|
||
"**/*.rs",
|
||
"Cargo.toml",
|
||
]
|
||
license = "MIT OR Apache-2.0"
|
||
repository = "https://github.com/rerun-io/rerun"
|
||
rust-version = "1.92"
|
||
version = "0.35.0-alpha.1+dev"
|
||
|
||
[workspace.metadata.cargo-shear]
|
||
ignored = [
|
||
# rerun crates
|
||
"rerun_c",
|
||
"re_dev_tools",
|
||
"rerun-cli",
|
||
"re_types_builder",
|
||
"re_protos_builder",
|
||
"re_renderer_examples",
|
||
|
||
# used for specific targets or features
|
||
"home",
|
||
"profiling",
|
||
"wayland-sys", # only enabled via the `server` feature of `re_tracing`
|
||
"windows-core",
|
||
]
|
||
ignored-paths = [
|
||
"docs/snippets/all/**/*.rs", # complains about unlinked files for our codegen input.
|
||
]
|
||
|
||
[workspace.dependencies]
|
||
# When using alpha-release, always use exact version, e.g. `version = "=0.x.y-alpha.z"
|
||
# This is because we treat alpha-releases as incompatible, but semver doesn't.
|
||
# In particular: if we compile rerun 0.3.0-alpha.0 we only want it to use
|
||
# re_log_types 0.3.0-alpha.0, NOT 0.3.0-alpha.4 even though it is newer and semver-compatible.
|
||
|
||
# crates/build:
|
||
re_build_info = { path = "crates/build/re_build_info", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_build_tools = { path = "crates/build/re_build_tools", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_dev_tools = { path = "crates/build/re_dev_tools", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_protos_builder = { path = "crates/build/re_protos_builder", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_types_builder = { path = "crates/build/re_types_builder", version = "=0.35.0-alpha.1", default-features = false }
|
||
|
||
# crates/store:
|
||
re_lenses_core = { path = "crates/store/re_lenses_core", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_chunk = { path = "crates/store/re_chunk", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_chunk_store = { path = "crates/store/re_chunk_store", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_importer = { path = "crates/store/re_importer", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_data_source = { path = "crates/store/re_data_source", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_dataframe = { path = "crates/store/re_dataframe", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_datafusion = { path = "crates/store/re_datafusion", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_entity_db = { path = "crates/store/re_entity_db", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_grpc_client = { path = "crates/store/re_grpc_client", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_grpc_server = { path = "crates/store/re_grpc_server", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_lenses = { path = "crates/store/re_lenses", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_log_channel = { path = "crates/store/re_log_channel", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_log_encoding = { path = "crates/store/re_log_encoding", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_log_types = { path = "crates/store/re_log_types", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_mcap = { path = "crates/store/re_mcap", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_mp4_reader = { path = "crates/store/re_mp4_reader", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_parquet = { path = "crates/store/re_parquet", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_protos = { path = "crates/store/re_protos", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_query = { path = "crates/store/re_query", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_redap_client = { path = "crates/store/re_redap_client", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_redap_tests = { path = "crates/store/re_redap_tests", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_sdk_types = { path = "crates/store/re_sdk_types", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_server = { path = "crates/store/re_server", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_sorbet = { path = "crates/store/re_sorbet", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_tf = { path = "crates/store/re_tf", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_types_core = { path = "crates/store/re_types_core", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_uri = { path = "crates/store/re_uri", version = "=0.35.0-alpha.1", default-features = false }
|
||
|
||
# crates/top:
|
||
re_sdk = { path = "crates/top/re_sdk", version = "=0.35.0-alpha.1", default-features = false }
|
||
rerun = { path = "crates/top/rerun", version = "=0.35.0-alpha.1", default-features = false }
|
||
rerun_c = { path = "crates/top/rerun_c", version = "=0.35.0-alpha.1", default-features = false }
|
||
rerun-cli = { path = "crates/top/rerun-cli", version = "=0.35.0-alpha.1", default-features = false }
|
||
|
||
# crates/utils:
|
||
re_analytics = { path = "crates/utils/re_analytics", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_arrow_util = { path = "crates/utils/re_arrow_util", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_auth = { path = "crates/utils/re_auth", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_backoff = { path = "crates/utils/re_backoff", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_byte_size = { path = "crates/utils/re_byte_size", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_byte_size_derive = { path = "crates/utils/re_byte_size_derive", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_capabilities = { path = "crates/utils/re_capabilities", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_case = { path = "crates/utils/re_case", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_crash_handler = { path = "crates/utils/re_crash_handler", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_error = { path = "crates/utils/re_error", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_format = { path = "crates/utils/re_format", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_grpc_headers = { path = "crates/utils/re_grpc_headers", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_log = { path = "crates/utils/re_log", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_memory = { path = "crates/utils/re_memory", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_mutex = { path = "crates/utils/re_mutex", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_perf_telemetry = { path = "crates/utils/re_perf_telemetry", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_quota_channel = { path = "crates/utils/re_quota_channel", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_ros_msg = { path = "crates/utils/re_ros_msg", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_rvl = { path = "crates/utils/re_rvl", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_span = { path = "crates/utils/re_span", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_string_interner = { path = "crates/utils/re_string_interner", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_test_mocks = { path = "crates/utils/re_test_mocks", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_tracing = { path = "crates/utils/re_tracing", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_tuid = { path = "crates/utils/re_tuid", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_video = { path = "crates/utils/re_video", version = "=0.35.0-alpha.1", default-features = false }
|
||
|
||
# crates/viewer:
|
||
re_arrow_ui = { path = "crates/viewer/re_arrow_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_blueprint_tree = { path = "crates/viewer/re_blueprint_tree", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_chunk_store_ui = { path = "crates/viewer/re_chunk_store_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_component_fallbacks = { path = "crates/viewer/re_component_fallbacks", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_component_ui = { path = "crates/viewer/re_component_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_context_menu = { path = "crates/viewer/re_context_menu", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_data_ui = { path = "crates/viewer/re_data_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_dataframe_ui = { path = "crates/viewer/re_dataframe_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_gamepad = { path = "crates/viewer/re_gamepad", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_memory_view = { path = "crates/viewer/re_memory_view", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_plot = { path = "crates/viewer/re_plot", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_recording_panel = { path = "crates/viewer/re_recording_panel", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_redap_browser = { path = "crates/viewer/re_redap_browser", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_renderer = { path = "crates/viewer/re_renderer", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_renderer_examples = { path = "crates/viewer/re_renderer_examples", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_selection_panel = { path = "crates/viewer/re_selection_panel", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_test_context = { path = "crates/viewer/re_test_context", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_test_viewport = { path = "crates/viewer/re_test_viewport", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_time_panel = { path = "crates/viewer/re_time_panel", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_time_ruler = { path = "crates/viewer/re_time_ruler", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_ui = { path = "crates/viewer/re_ui", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view = { path = "crates/viewer/re_view", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_bar_chart = { path = "crates/viewer/re_view_bar_chart", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_dataframe = { path = "crates/viewer/re_view_dataframe", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_graph = { path = "crates/viewer/re_view_graph", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_map = { path = "crates/viewer/re_view_map", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_spatial = { path = "crates/viewer/re_view_spatial", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_state_timeline = { path = "crates/viewer/re_view_state_timeline", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_tensor = { path = "crates/viewer/re_view_tensor", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_text_document = { path = "crates/viewer/re_view_text_document", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_text_log = { path = "crates/viewer/re_view_text_log", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_view_time_series = { path = "crates/viewer/re_view_time_series", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_viewer = { path = "crates/viewer/re_viewer", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_viewer_context = { path = "crates/viewer/re_viewer_context", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_viewer_mcp = { path = "crates/viewer/re_viewer_mcp", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_viewport = { path = "crates/viewer/re_viewport", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_viewport_blueprint = { path = "crates/viewer/re_viewport_blueprint", version = "=0.35.0-alpha.1", default-features = false }
|
||
re_web_viewer_server = { path = "crates/viewer/re_web_viewer_server", version = "=0.35.0-alpha.1", default-features = false }
|
||
|
||
# Rerun crates in other repos:
|
||
quiver = { version = "0.4.0", default-features = false }
|
||
re_mp4 = "0.5.1"
|
||
|
||
# If this package fails to build, install `nasm` locally, or build through `pixi`.
|
||
# NOTE: we use `dav1d` as an alias for our own re_rav1d crate
|
||
# See https://github.com/rerun-io/re_rav1d/pull/2
|
||
dav1d = { package = "re_rav1d", version = "0.1.3", default-features = false }
|
||
# dav1d = { version = "0.10.3" } # Requires separate install of `dav1d` library. Fast in debug builds. Useful for development.
|
||
|
||
# core egui-crates:
|
||
ecolor = "0.35.0"
|
||
eframe = { version = "0.35.0", default-features = false, features = [
|
||
"accesskit",
|
||
"default_fonts",
|
||
"inspection",
|
||
"wayland",
|
||
"x11",
|
||
] }
|
||
egui = { version = "0.35.0", features = ["callstack", "color-hex", "rayon"] }
|
||
egui_extras = { version = "0.35.0", features = ["http", "image", "serde", "svg"] }
|
||
egui_inspection = { version = "0.35.0", default-features = false, features = ["plugin"] }
|
||
egui_kittest = { version = "0.35.0", features = ["wgpu", "snapshot", "eframe"] }
|
||
egui_mcp = { version = "0.1.0" }
|
||
egui-wgpu = "0.35.0"
|
||
emath = "0.35.0"
|
||
|
||
# other egui crates:
|
||
egui_commonmark = { version = "0.24.0", default-features = false }
|
||
egui_dnd = { version = "0.16.0" }
|
||
egui_plot = "0.36.0" # https://github.com/emilk/egui_plot
|
||
egui_table = "0.9.0" # https://github.com/rerun-io/egui_table
|
||
egui_tiles = "0.16.0" # https://github.com/rerun-io/egui_tiles
|
||
walkers = "0.56.0"
|
||
|
||
# All of our direct external dependencies should be found here:
|
||
ahash = "0.8.12"
|
||
anyhow = { version = "1.0", default-features = false }
|
||
argh = "0.1.19"
|
||
arrayvec = "0.7.6"
|
||
array-init = "2.1"
|
||
arrow = { version = "58.3", default-features = false, features = [
|
||
# NOTE: Similar to `datafusion`, we enable many features on a workspace level
|
||
# to avoid re-compilation when changing compile targets.
|
||
"ffi",
|
||
"ipc",
|
||
"json",
|
||
] }
|
||
async-stream = "0.3.6"
|
||
async-trait = "0.1.89"
|
||
axum = "0.8.9"
|
||
backtrace = "0.3.76"
|
||
base64 = "0.22.1"
|
||
bincode = "1.3"
|
||
bit-vec = "0.9.1"
|
||
bitflags = { version = "2.13", features = ["bytemuck"] }
|
||
bytemuck = { version = "1.25", features = ["extern_crate_alloc"] }
|
||
byteorder = "1.5"
|
||
bytes = "1.12"
|
||
camino = "1.2"
|
||
cargo_metadata = "0.23.1"
|
||
cargo-run-wasm = "0.4.0"
|
||
cfg_aliases = "0.2.1"
|
||
cfg-if = "1.0"
|
||
chrono = { version = "0.4.45", default-features = false } # Needed for datafusion, see `re_datafusion`'s Cargo.toml
|
||
clang-format = "0.3.0"
|
||
clap = { version = "4.6", features = ["derive"] }
|
||
clean-path = "0.2.1"
|
||
colored = "2.2" # Old b/c of dify
|
||
comfy-table = { version = "7.2", default-features = false }
|
||
console_error_panic_hook = "0.1.7"
|
||
const_format = "0.2.36"
|
||
convert_case = "0.11.0"
|
||
criterion = "0.8.2"
|
||
cros-codecs = "0.0.6"
|
||
crossbeam = "0.8.4"
|
||
dae-parser = "0.11.0"
|
||
datafusion = { version = "53.1", default-features = false, features = [
|
||
# NOTE: we enable the same features everywhere
|
||
# because otherwise we will recompile datafusion all the time based on our current compile target.
|
||
# The features here are the same as in https://github.com/rerun-io/lance/blob/release-8.0.0/Cargo.toml#L125
|
||
# This is very hacky, and I don't like it.
|
||
"crypto_expressions",
|
||
"datetime_expressions",
|
||
"encoding_expressions",
|
||
"nested_expressions",
|
||
"regex_expressions",
|
||
"sql",
|
||
"string_expressions",
|
||
"unicode_expressions",
|
||
] }
|
||
datafusion-ffi = "53.1"
|
||
directories = "6.0"
|
||
document-features = "0.2.12"
|
||
econtext = "0.2.0" # Prints error contexts on crashes
|
||
ehttp = "0.7.1"
|
||
enumset = "1.1"
|
||
env_filter = { version = "1.0", default-features = false }
|
||
ffmpeg-sidecar = { version = "2.5", default-features = false }
|
||
fixed = { version = "1.30", default-features = false }
|
||
fjadra = "0.2.1"
|
||
flatbuffers = "25.12"
|
||
futures = "0.3.32"
|
||
futures-util = "0.3.32"
|
||
getrandom = "0.3.4"
|
||
getrandom02 = { package = "getrandom", version = "0.2.17" }
|
||
gilrs = "0.11.1"
|
||
glam = { version = "0.30.10", features = [
|
||
"debug-glam-assert",
|
||
"serde",
|
||
] } # pinned to 0.30 by `macaw`; 0.33 would duplicate glam. Bump once macaw releases a glam-0.33 version.
|
||
glob = "0.3.3"
|
||
gltf = "1.4"
|
||
h264-reader = "0.8.0"
|
||
half = { version = "2.7", features = ["bytemuck"] }
|
||
hexasphere = "16.0" # Update in tandem with glam
|
||
hmac = "0.12.1" # pinned by `jsonwebtoken` (RustCrypto family); bump once jsonwebtoken moves to hmac 0.13/sha2 0.11/signature 3.
|
||
home = "0.5.12"
|
||
http = "1.4"
|
||
http-body = "1.0"
|
||
image = { version = "0.25.6", default-features = false, features = ["jpeg", "png"] }
|
||
indent = "0.1.1"
|
||
indexmap = { version = "2.14", features = [
|
||
# indexmap version chosen to align with other dependencies
|
||
"std",
|
||
"serde",
|
||
] }
|
||
indicatif = "0.18.4" # Progress bar
|
||
infer = "0.19.0" # infer MIME type by checking the magic number signature
|
||
insta = "1.48"
|
||
itertools = "0.14.0" # 0.15 would duplicate the 0.14 that `datafusion` (pinned) requires. Bump once datafusion moves to itertools 0.15.
|
||
jiff = { version = "0.2.29", features = ["js"] }
|
||
js-sys = "0.3.94"
|
||
jsonwebtoken = { version = "10.4", default-features = false }
|
||
lance = { version = "8.0", default-features = false } # When you update this, also update the list of features enabled for `datafusion` (~50 lines up)
|
||
libc = "0.2.186"
|
||
linked-hash-map = { version = "0.5.6", default-features = false }
|
||
log = "0.4.33"
|
||
log-once = "0.4.1"
|
||
lz4_flex = "0.13.0"
|
||
macaw = "0.30.0"
|
||
mcap = "0.25.0"
|
||
memmap2 = "0.9.11"
|
||
memory-stats = "1.2"
|
||
mimalloc = { version = "=0.1.48", features = [
|
||
# A) we want to use v3 because of https://github.com/rerun-io/rerun/pull/11703
|
||
# B) we need to pin to 0.1.48 because of https://github.com/microsoft/mimalloc/issues/1287
|
||
"v3",
|
||
] } # Waiting for fix from microsoft/mimalloc/issues/1287 to land in mimalloc crate
|
||
mime_guess2 = "2.3" # infer MIME type by file extension, and map mime to file extension
|
||
mint = "0.5.9"
|
||
natord = "1.0"
|
||
ndarray = "0.16.1" # pinned by `lance-index` (lance family) and `numpy` to 0.16; 0.17 would duplicate.
|
||
never = "0.1.0"
|
||
nohash-hasher = "0.2.0"
|
||
notify = { version = "8.2", features = ["macos_kqueue"] }
|
||
# `unicode-segmentation` is off so that match indices are plain `char` indices,
|
||
# which is what we index with when highlighting matched characters.
|
||
nucleo-matcher = { version = "0.3.1", default-features = false, features = [
|
||
"unicode-casefold",
|
||
"unicode-normalization",
|
||
] }
|
||
num-derive = "0.4.2"
|
||
num-traits = "0.2.19"
|
||
numpy = "0.28.0"
|
||
opentelemetry = { version = "0.32.0", features = ["metrics"] }
|
||
opentelemetry-appender-tracing = "0.32.0"
|
||
opentelemetry-http = "0.32.0"
|
||
opentelemetry-otlp = { version = "0.32.0", default-features = false, features = [
|
||
"grpc-tonic",
|
||
"gzip-tonic",
|
||
"http-proto",
|
||
"hyper-client",
|
||
"trace",
|
||
"metrics",
|
||
"logs",
|
||
] }
|
||
opentelemetry-proto = { version = "0.32.0", default-features = false }
|
||
opentelemetry_sdk = { version = "0.32.1", features = ["rt-tokio"] }
|
||
ordered-float = "5.3"
|
||
parking_lot = { version = "0.12.5", features = ["serde"] }
|
||
parquet = { version = "58.3", default-features = false }
|
||
paste = "1.0"
|
||
pathdiff = "0.2.3"
|
||
percent-encoding = "2.3"
|
||
pico-args = "0.5.0"
|
||
pin-project-lite = "0.2.17"
|
||
ply-rs-bw = { version = "=3.0.0", default-features = false } # ply-rs-bw has released semver breaking changes in patch releases before. Fool me once, shame on you…
|
||
poll-promise = "0.3.0"
|
||
pollster = "0.4.0"
|
||
prettyplease = "0.2.37"
|
||
proc-macro-crate = "3.5"
|
||
proc-macro2 = { version = "1.0", default-features = false }
|
||
profiling = { version = "1.0", default-features = false }
|
||
prometheus-client = "0.25.0"
|
||
prost = "0.14.4"
|
||
prost-build = "0.14.4"
|
||
prost-reflect = "0.16.4"
|
||
prost-types = "0.14.4"
|
||
protoc-prebuilt = "0.3.0"
|
||
puffin = "0.20.0"
|
||
puffin_http = "0.17.0"
|
||
pyo3 = "0.28.3"
|
||
pyo3-build-config = "0.28.3"
|
||
quote = "1.0"
|
||
rand = { version = "0.9.4", default-features = false, features = [
|
||
"small_rng",
|
||
"std",
|
||
"thread_rng",
|
||
] }
|
||
rand_distr = { version = "0.5.1", default-features = false, features = ["std"] }
|
||
raw-window-handle = "0.6.2"
|
||
rayon = "1.12"
|
||
re_cdr = "0.1"
|
||
regex-lite = "0.1.9"
|
||
reqwest = { version = "0.12.22", default-features = false, features = [
|
||
"rustls-tls",
|
||
] } # 0.13 blocked: `walkers` (latest 0.54) and `http-cache-reqwest` still depend on reqwest 0.12. Bump once walkers moves to reqwest 0.13 (also unblocks tower-http 0.7).
|
||
rexif = "0.7.5"
|
||
rfd = { version = "0.17.2", default-features = false, features = ["xdg-portal"] }
|
||
ron = { version = "0.12.1", features = ["integer128"] }
|
||
roxmltree = "0.20.0" # 0.21 would duplicate the 0.20 that `resvg` (via egui_extras) requires. Bump once egui_extras/resvg move to roxmltree 0.21.
|
||
ring = "0.17.14"
|
||
rustls = { version = "0.23.40", default-features = false }
|
||
saturating_cast = "0.1.0"
|
||
scuffle-av1 = "0.1.4"
|
||
scuffle-bytes-util = "0.1.5"
|
||
semver = "1.0"
|
||
seq-macro = "0.3.6"
|
||
serde = { version = "1.0", features = ["derive"] }
|
||
serde_bytes = "0.11.19"
|
||
serde_json = { version = "1.0", default-features = false, features = ["std"] }
|
||
serde-wasm-bindgen = "0.6.5"
|
||
sha2 = "0.10.9" # pinned by `jsonwebtoken` (RustCrypto family); see hmac note.
|
||
signature = { version = "2.2", features = [
|
||
"std",
|
||
] } # pinned by `jsonwebtoken` (^2.2); see hmac note.
|
||
similar-asserts = "1.7" # 2.0 pulls in `similar` 3.x, duplicating the `similar` 2.x that `insta` needs (cargo-deny ban). Bump once `insta` moves to `similar` 3.
|
||
slotmap = { version = "1.1", features = ["serde"] }
|
||
smallvec = { version = "1.15", features = ["const_generics", "union"] }
|
||
static_assertions = "1.1"
|
||
stl_io = "0.11.0"
|
||
strum = { version = "0.26.3", features = ["derive"] } # need to update re_rav1d first
|
||
strum_macros = "0.26.4" # need to update re_rav1d first
|
||
syn = "2.0"
|
||
sysinfo = { version = "0.38.4", default-features = false }
|
||
tap = "1.0"
|
||
tempfile = "3.27"
|
||
thiserror = "2.0"
|
||
tiff = "0.9.1" # 0.11 duplicates `png` (via the older `image`/`png` stack) and adds a `DecodingResult::F16` variant. Bump once `image` moves to the matching `png`.
|
||
tiny_http = { version = "0.12.0", default-features = false }
|
||
tobj = "4.0"
|
||
tokio = { version = "1.52", default-features = false }
|
||
tokio-stream = "0.1.18"
|
||
tokio-util = { version = "0.7.18", default-features = false }
|
||
toml = { version = "1.1", default-features = false }
|
||
tonic = { version = "0.14.6", default-features = false }
|
||
tonic-prost = { version = "0.14.6", default-features = false }
|
||
tonic-prost-build = { version = "0.14.6", default-features = false }
|
||
tonic-web = "0.14.6"
|
||
# tonic-web-wasm-client = "0.8.0" # 0.9 pulls wasm-streams 0.5, duplicating the 0.4 from reqwest 0.12. Update when we update to reqwest 0.13.
|
||
tonic-web-wasm-client = { version = "0.8.1", package = "rerun-tonic-web-wasm-client" } # our fork of 0.8.1
|
||
tower = "0.5.3"
|
||
tower-http = "0.6.11" # 0.7 duplicates the 0.6 that reqwest 0.12 (via http-cache-reqwest/walkers) requires. Update when we update to reqwest 0.13.
|
||
tower-service = "0.3.3"
|
||
tracing = "0.1.44"
|
||
tracing-log = "0.2.0" # Route `log` through `tracing`.
|
||
tracing-opentelemetry = "0.33.0"
|
||
tracing-subscriber = { version = "0.3.23", features = ["tracing-log", "fmt", "env-filter"] }
|
||
tracing-tracy = { version = "0.11.4", default-features = false, features = [
|
||
"broadcast",
|
||
"callstack-inlines",
|
||
"code-transfer",
|
||
"context-switch-tracing",
|
||
"enable",
|
||
"ondemand", # much nicer for a long-lived program
|
||
"system-tracing",
|
||
] } # no sampling, it's very noisy and not that useful
|
||
tracing-web = "0.1.3"
|
||
type-map = "0.5.1"
|
||
typenum = "1.20"
|
||
unindent = "0.2.4"
|
||
urdf-rs = "0.9.0"
|
||
ureq = { version = "3.3", features = ["json"] }
|
||
url = "2.5"
|
||
uuid = { version = "1.23", features = ["serde", "v4", "js"] }
|
||
vec1 = { version = "1.12", features = ["serde", "smallvec-v1"] }
|
||
walkdir = "2.5"
|
||
wildmatch = "2.6"
|
||
# TODO(#8766): `rerun_js/web-viewer/build-wasm.mjs` is HIGHLY sensitive to changes in `wasm-bindgen`.
|
||
# Whenever updating `wasm-bindgen`, update this and the narrower dependency specifications in
|
||
# `crates/viewer/re_viewer/Cargo.toml`, and make sure that notebooks still work:
|
||
# See `rerun_notebook/README.md` for how to run notebooks.
|
||
# Try running a cell which starts a viewer, and then running it again.
|
||
# There should be no errors in the browser console.
|
||
# Do not make this an `=` dependency, because that may break Rust users’ builds when a newer
|
||
# version is released, even if they are not building the web viewer.
|
||
# For details see https://github.com/rerun-io/rerun/issues/8766
|
||
wasm-bindgen = "0.2.117" # ⚠️ read above notice before touching this!
|
||
wasm-bindgen-cli-support = "0.2.117" # ⚠️ read above notice before touching this!
|
||
wasm-bindgen-futures = "0.4.67"
|
||
wasm-bindgen-test = "0.3.67"
|
||
wayland-client = "0.31.14"
|
||
wayland-protocols = { version = "0.32.13", default-features = false }
|
||
wayland-sys = "0.31.11"
|
||
web-sys = "0.3.94"
|
||
web-time = "1.1"
|
||
webbrowser = "1.2"
|
||
windows-core = { version = "0.62.2", default-features = false, features = [
|
||
"std",
|
||
] } # Ensure `std` is enabled so `windows-result::Error` impls `core::error::Error` (needed by wgpu-hal gles on Windows)
|
||
winit = { version = "0.30.13", default-features = false }
|
||
# TODO(andreas): Try to get rid of `fragile-send-sync-non-atomic-wasm`. This requires re_renderer being aware of single-thread restriction on resources.
|
||
# See also https://gpuweb.github.io/gpuweb/explainer/#multithreading-transfer (unsolved part of the Spec as of writing!)
|
||
wgpu = { version = "29.0", default-features = false, features = [
|
||
# Backends (see https://docs.rs/wgpu/latest/wgpu/#feature-flags)
|
||
"gles",
|
||
"metal",
|
||
"vulkan-portability", # Enables use of Vulkan on MacOS. We use this for software rasterizing our CI (there aren't any Metal software rasterizers and we had issues with flaky tests when creating lots of Metal devices in parallel)
|
||
"vulkan",
|
||
"webgl",
|
||
"webgpu",
|
||
#"dx12", # DX12 backend on wgpu isn't as stable. Also, we want to reduce the number of backends on native. Ideally we only have Vulkan & Metal, but we also keep GL as a manual fallback.
|
||
#"angle", # As above, we want to limit the numbers of backends we support. GL support via angle isn't great and we didn't need it so far.
|
||
|
||
# Shader options:
|
||
"wgsl",
|
||
|
||
# Other:
|
||
"fragile-send-sync-non-atomic-wasm",
|
||
] }
|
||
xshell = "0.2.7"
|
||
xxhash-rust = { version = "0.8.15", features = ["xxh32", "xxh64"] }
|
||
zip = { version = "8.6", default-features = false, features = ["deflate"] }
|
||
|
||
# ---------------------------------------------------------------------------------
|
||
[profile]
|
||
|
||
## Dev
|
||
|
||
# Our dev profile has some optimizations turned on, as well as debug assertions.
|
||
[profile.dev]
|
||
opt-level = 1 # Make debug builds run faster
|
||
# See <https://github.com/rerun-io/rerun/pull/9094> for a thorough explanation of why.
|
||
# This does not affect cfg(debug_assertions).
|
||
# Use the `debugging` profile (see below) if you need debug symbols.
|
||
debug = false
|
||
|
||
|
||
# Use the following command to grab the list of workspace crates:
|
||
# cargo metadata --no-deps --format-version 1 | jq '.packages[].name' | rg '"re_'
|
||
#
|
||
# There is, as far we know, no way to do this without enumerating all crates manually.
|
||
|
||
[profile.dev.package]
|
||
"re_analytics".debug = true
|
||
"re_arrow_ui".debug = true
|
||
"re_arrow_util".debug = true
|
||
"re_auth".debug = true
|
||
"re_blueprint_tree".debug = true
|
||
"re_build_info".debug = true
|
||
"re_build_tools".debug = true
|
||
"re_byte_size".debug = true
|
||
"re_byte_size_derive".debug = true
|
||
"re_capabilities".debug = true
|
||
"re_case".debug = true
|
||
"re_chunk_store_ui".debug = true
|
||
"re_chunk_store".debug = true
|
||
"re_chunk".debug = true
|
||
"re_component_ui".debug = true
|
||
"re_context_menu".debug = true
|
||
"re_crash_handler".debug = true
|
||
"re_importer".debug = true
|
||
"re_data_source".debug = true
|
||
"re_data_ui".debug = true
|
||
"re_dataframe_ui".debug = true
|
||
"re_dataframe".debug = true
|
||
"re_datafusion".debug = true
|
||
"re_dev_tools".debug = true
|
||
"re_entity_db".debug = true
|
||
"re_error".debug = true
|
||
"re_format".debug = true
|
||
"re_gamepad".debug = true
|
||
"re_grpc_client".debug = true
|
||
"re_grpc_server".debug = true
|
||
"re_integration_test".debug = true
|
||
"re_log_channel".debug = true
|
||
"re_log_encoding".debug = true
|
||
"re_log_types".debug = true
|
||
"re_log".debug = true
|
||
"re_mcap".debug = true
|
||
"re_memory".debug = true
|
||
"re_perf_telemetry".debug = true
|
||
"re_protos_builder".debug = true
|
||
"re_protos".debug = true
|
||
"re_query".debug = true
|
||
"re_recording_panel".debug = true
|
||
"re_redap_browser".debug = true
|
||
"re_redap_client".debug = true
|
||
"re_renderer_examples".debug = true
|
||
"re_renderer".debug = true
|
||
"re_sdk".debug = true
|
||
"re_selection_panel".debug = true
|
||
"re_server".debug = true
|
||
"re_sorbet".debug = true
|
||
"re_span".debug = true
|
||
"re_string_interner".debug = true
|
||
"re_test_context".debug = true
|
||
"re_test_viewport".debug = true
|
||
"re_tf".debug = true
|
||
"re_time_panel".debug = true
|
||
"re_tracing".debug = true
|
||
"re_tuid".debug = true
|
||
"re_types_builder".debug = true
|
||
"re_types_core".debug = true
|
||
"re_sdk_types".debug = true
|
||
"re_ui".debug = true
|
||
"re_uri".debug = true
|
||
"re_video".debug = true
|
||
"re_view_bar_chart".debug = true
|
||
"re_view_dataframe".debug = true
|
||
"re_view_graph".debug = true
|
||
"re_view_map".debug = true
|
||
"re_view_spatial".debug = true
|
||
"re_view_state_timeline".debug = true
|
||
"re_view_tensor".debug = true
|
||
"re_view_text_document".debug = true
|
||
"re_view_text_log".debug = true
|
||
"re_view_time_series".debug = true
|
||
"re_view".debug = true
|
||
"re_viewer_context".debug = true
|
||
"re_viewer".debug = true
|
||
"re_viewport_blueprint".debug = true
|
||
"re_viewport".debug = true
|
||
"re_web_viewer_server".debug = true
|
||
|
||
# panic = "abort" leads to better optimizations and smaller binaries (and is the default in Wasm anyways),
|
||
# but it also means backtraces don't work with the `backtrace` library (https://github.com/rust-lang/backtrace-rs/issues/397).
|
||
# egui has a feature where if you hold down all modifiers keys on your keyboard and hover any UI widget,
|
||
# you will see the backtrace to that widget, and we don't want to break that feature in dev builds.
|
||
|
||
# Optimize all dependencies even in debug builds (does not affect workspace packages):
|
||
[profile.dev.package."*"]
|
||
opt-level = 2
|
||
|
||
# Make extra sure the AV1 decoder is optimized in dev builds. otherwise decoding comes to a crawl in debug builds.
|
||
[profile.dev.package.re_rav1d]
|
||
opt-level = 3
|
||
debug-assertions = false
|
||
|
||
## Release
|
||
|
||
[profile.release]
|
||
# debug = true # good for profilers
|
||
panic = "abort" # This leads to better optimizations and smaller binaries (and is the default in Wasm anyways).
|
||
lto = "thin" # This leads to smaller binaries, but slower compile times.
|
||
codegen-units = 1 # Smaller binaries (but slower compile time)
|
||
|
||
[profile.web-release]
|
||
panic = 'abort' # Removes panic handling code
|
||
inherits = "release"
|
||
lto = true
|
||
opt-level = 'z' # Optimize for size
|
||
codegen-units = 1
|
||
|
||
|
||
## Bench
|
||
|
||
[profile.bench]
|
||
debug = false
|
||
|
||
|
||
## Debugging
|
||
|
||
# Set up a `debugging` profile that turns of optimization of the workspace and select packages.
|
||
# Note that the profile name `debug` is reserved.
|
||
[profile.debugging]
|
||
inherits = "dev"
|
||
opt-level = 0
|
||
debug = true
|
||
|
||
[profile.debugging.package.egui]
|
||
opt-level = 0 # we often debug egui via Rerun
|
||
|
||
[profile.debugging.build-override]
|
||
debug = true # enable debug symbols for build scripts
|
||
|
||
|
||
## Dev-fast (Cranelift)
|
||
|
||
# A fast-compiling dev profile optimized for ultimate compile speed using the Cranelift backend.
|
||
# Fast compile profile using the Cranelift codegen backend.
|
||
# The codegen-backend settings are in .cargo/config.toml (requires nightly).
|
||
# Usage: pixi run rerun-build-fast
|
||
# Requires: rustup component add rustc-codegen-cranelift-preview --toolchain nightly
|
||
[profile.dev-fast]
|
||
inherits = "dev"
|
||
debug = false
|
||
strip = "debuginfo"
|
||
|
||
[profile.dev-fast.package."*"]
|
||
opt-level = 1
|
||
|
||
# AV1 decoder is unusable without optimization.
|
||
[profile.dev-fast.package.re_rav1d]
|
||
opt-level = 3
|
||
debug-assertions = false
|
||
|
||
|
||
# ---------------------------------------------------------------------------------
|
||
|
||
|
||
[workspace.lints.rust]
|
||
unknown_lints = "deny"
|
||
unsafe_code = "deny"
|
||
|
||
absolute_paths_not_starting_with_crate = "warn"
|
||
elided_lifetimes_in_paths = "warn"
|
||
future_incompatible = { level = "warn", priority = -1 }
|
||
non_ascii_idents = "warn"
|
||
nonstandard_style = { level = "warn", priority = -1 }
|
||
noop_method_call = "warn"
|
||
rust_2018_idioms = { level = "warn", priority = -1 }
|
||
rust_2021_prelude_collisions = "warn"
|
||
semicolon_in_expressions_from_macros = "warn"
|
||
trivial_numeric_casts = "warn"
|
||
unsafe_op_in_unsafe_fn = "warn" # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668
|
||
unexpected_cfgs = { level = "deny", check-cfg = [
|
||
'cfg(TODO)', # NOLINT allow `#[cfg(TODO)]` to compile (it will still fail CI)
|
||
] }
|
||
unused_extern_crates = "warn"
|
||
unused_import_braces = "warn"
|
||
unused_lifetimes = "warn"
|
||
|
||
trivial_casts = "allow"
|
||
unused_qualifications = "allow"
|
||
|
||
[workspace.lints.rustdoc]
|
||
all = "warn"
|
||
missing_crate_level_docs = "warn"
|
||
|
||
# See also clippy.toml
|
||
[workspace.lints.clippy]
|
||
allow_attributes = "warn"
|
||
as_ptr_cast_mut = "warn"
|
||
await_holding_lock = "warn"
|
||
bool_to_int_with_if = "warn"
|
||
branches_sharing_code = "warn"
|
||
cast_possible_wrap = "warn"
|
||
char_lit_as_u8 = "warn"
|
||
checked_conversions = "warn"
|
||
clear_with_drain = "warn"
|
||
cloned_instead_of_copied = "warn"
|
||
coerce_container_to_any = "warn"
|
||
dbg_macro = "warn"
|
||
debug_assert_with_mut_call = "warn"
|
||
default_union_representation = "warn"
|
||
derive_partial_eq_without_eq = "warn"
|
||
disallowed_macros = "warn" # See clippy.toml
|
||
disallowed_methods = "warn" # See clippy.toml
|
||
disallowed_names = "warn" # See clippy.toml
|
||
disallowed_script_idents = "warn" # See clippy.toml
|
||
disallowed_types = "warn" # See clippy.toml
|
||
doc_broken_link = "warn"
|
||
doc_comment_double_space_linebreaks = "warn"
|
||
doc_include_without_cfg = "warn"
|
||
doc_link_with_quotes = "warn"
|
||
doc_markdown = "warn"
|
||
elidable_lifetime_names = "warn"
|
||
empty_enum = "warn"
|
||
empty_enum_variants_with_brackets = "warn"
|
||
empty_line_after_outer_attr = "warn"
|
||
enum_glob_use = "warn"
|
||
equatable_if_let = "warn"
|
||
exit = "warn"
|
||
expl_impl_clone_on_copy = "warn"
|
||
explicit_deref_methods = "warn"
|
||
explicit_into_iter_loop = "warn"
|
||
explicit_iter_loop = "warn"
|
||
fallible_impl_from = "warn"
|
||
filter_map_next = "warn"
|
||
flat_map_option = "warn"
|
||
float_cmp_const = "warn"
|
||
fn_params_excessive_bools = "warn"
|
||
fn_to_numeric_cast_any = "warn"
|
||
format_push_string = "warn"
|
||
from_iter_instead_of_collect = "warn"
|
||
get_unwrap = "warn"
|
||
if_let_mutex = "warn"
|
||
ignore_without_reason = "warn"
|
||
ignored_unit_patterns = "warn"
|
||
implicit_clone = "warn"
|
||
implied_bounds_in_impls = "warn"
|
||
imprecise_flops = "warn"
|
||
inconsistent_struct_constructor = "warn"
|
||
index_refutable_slice = "warn"
|
||
inefficient_to_string = "warn"
|
||
infinite_loop = "warn"
|
||
into_iter_without_iter = "warn"
|
||
invalid_upcast_comparisons = "warn"
|
||
ip_constant = "warn"
|
||
iter_filter_is_ok = "warn"
|
||
iter_filter_is_some = "warn"
|
||
iter_not_returning_iterator = "warn"
|
||
iter_on_empty_collections = "warn"
|
||
iter_on_single_items = "warn"
|
||
iter_without_into_iter = "warn"
|
||
large_digit_groups = "warn"
|
||
large_futures = "warn"
|
||
large_include_file = "warn"
|
||
large_stack_arrays = "warn"
|
||
large_stack_frames = "warn"
|
||
large_types_passed_by_value = "warn"
|
||
let_underscore_must_use = "warn"
|
||
let_unit_value = "warn"
|
||
linkedlist = "warn"
|
||
literal_string_with_formatting_args = "warn"
|
||
lossy_float_literal = "warn"
|
||
macro_use_imports = "warn"
|
||
manual_assert = "warn"
|
||
manual_clamp = "warn"
|
||
manual_instant_elapsed = "warn"
|
||
manual_is_power_of_two = "warn"
|
||
manual_is_variant_and = "warn"
|
||
manual_let_else = "warn"
|
||
manual_midpoint = "warn" # NOTE using `midpoint` is nicer for readability, but slower for floats
|
||
manual_ok_or = "warn"
|
||
manual_string_new = "warn"
|
||
map_err_ignore = "warn"
|
||
map_flatten = "warn"
|
||
match_bool = "warn"
|
||
match_same_arms = "warn"
|
||
match_wild_err_arm = "warn"
|
||
match_wildcard_for_single_variants = "warn"
|
||
mem_forget = "warn"
|
||
mismatching_type_param_order = "warn"
|
||
missing_enforced_import_renames = "warn"
|
||
missing_fields_in_debug = "warn"
|
||
missing_safety_doc = "warn"
|
||
mixed_attributes_style = "warn"
|
||
mut_mut = "warn"
|
||
mutex_integer = "warn"
|
||
needless_borrow = "warn"
|
||
needless_continue = "warn"
|
||
needless_for_each = "warn"
|
||
needless_pass_by_ref_mut = "warn"
|
||
needless_pass_by_value = "warn"
|
||
negative_feature_names = "warn"
|
||
non_std_lazy_statics = "warn"
|
||
non_zero_suggestions = "warn"
|
||
nonstandard_macro_braces = "warn"
|
||
only_used_in_recursion = "warn"
|
||
option_as_ref_cloned = "warn"
|
||
option_option = "warn"
|
||
or_fun_call = "warn"
|
||
path_buf_push_overwrite = "warn"
|
||
pathbuf_init_then_push = "warn"
|
||
precedence_bits = "warn"
|
||
ptr_as_ptr = "warn"
|
||
ptr_cast_constness = "warn"
|
||
pub_underscore_fields = "warn"
|
||
pub_without_shorthand = "warn"
|
||
rc_mutex = "warn"
|
||
readonly_write_lock = "warn"
|
||
redundant_type_annotations = "warn"
|
||
ref_as_ptr = "warn"
|
||
ref_option_ref = "warn"
|
||
rest_pat_in_fully_bound_structs = "warn"
|
||
return_and_then = "warn"
|
||
same_functions_in_if_condition = "warn"
|
||
self_only_used_in_recursion = "warn"
|
||
semicolon_if_nothing_returned = "warn"
|
||
set_contains_or_insert = "warn"
|
||
should_panic_without_expect = "warn"
|
||
single_char_pattern = "warn"
|
||
single_match_else = "warn"
|
||
single_option_map = "warn"
|
||
str_split_at_newline = "warn"
|
||
str_to_string = "warn"
|
||
string_add = "warn"
|
||
string_add_assign = "warn"
|
||
string_lit_as_bytes = "warn"
|
||
string_lit_chars_any = "warn"
|
||
suspicious_command_arg_space = "warn"
|
||
suspicious_xor_used_as_pow = "warn"
|
||
todo = "warn"
|
||
too_long_first_doc_paragraph = "warn"
|
||
too_many_lines = "warn"
|
||
trailing_empty_array = "warn"
|
||
trait_duplication_in_bounds = "warn"
|
||
transmute_ptr_to_ptr = "warn"
|
||
tuple_array_conversions = "warn"
|
||
unchecked_time_subtraction = "warn"
|
||
undocumented_unsafe_blocks = "warn"
|
||
unimplemented = "warn"
|
||
uninhabited_references = "warn"
|
||
uninlined_format_args = "warn"
|
||
unnecessary_box_returns = "warn"
|
||
unnecessary_literal_bound = "warn"
|
||
unnecessary_safety_doc = "warn"
|
||
unnecessary_self_imports = "warn"
|
||
unnecessary_semicolon = "warn"
|
||
unnecessary_struct_initialization = "warn"
|
||
unnecessary_wraps = "warn"
|
||
unnested_or_patterns = "warn"
|
||
unused_async = "warn"
|
||
unused_peekable = "warn"
|
||
unused_rounding = "warn"
|
||
unused_self = "warn"
|
||
unused_trait_names = "warn"
|
||
unwrap_used = "warn"
|
||
use_self = "warn"
|
||
useless_let_if_seq = "warn"
|
||
useless_transmute = "warn"
|
||
verbose_file_reads = "warn"
|
||
wildcard_dependencies = "warn"
|
||
wildcard_imports = "warn"
|
||
zero_sized_map_values = "warn"
|
||
|
||
# Disabled waiting on https://github.com/rust-lang/rust-clippy/issues/9602
|
||
#self_named_module_files = "warn"
|
||
|
||
# Things we explicitly allow:
|
||
manual_range_contains = "allow" # this one is just worse imho
|
||
map_unwrap_or = "allow" # so is this one
|
||
ref_patterns = "allow" # It's nice to avoid ref pattern, but there are some situations that are hard (impossible?) to express without.
|
||
too_many_arguments = "allow" # yes, we should avoid too many arguments, but enforcing it by lint is pointless.
|
||
|
||
# TODO(emilk): enable more of these lints:
|
||
cast_possible_truncation = "allow" # Moo much noise, sadly
|
||
clone_on_ref_ptr = "allow" # Might be too much with this enabled
|
||
iter_over_hash_type = "allow"
|
||
let_underscore_untyped = "allow"
|
||
missing_assert_message = "allow"
|
||
missing_errors_doc = "allow"
|
||
ref_option = "warn"
|
||
significant_drop_tightening = "allow" # An update of parking_lot made this trigger in a lot of places. TODO(emilk): fix those places
|
||
unnecessary_debug_formatting = "allow"
|
||
|
||
[patch.crates-io]
|
||
# Try to avoid patching crates! It prevents us from publishing the crates on crates.io.
|
||
# If you do patch always prefer to patch to the trunk branch of the upstream repo (i.e. `main`, `master`, …).
|
||
# If that is not possible, patch to a branch that has a PR open on the upstream repo.
|
||
# As a last resort, patch to a branch on our own repository.
|
||
#
|
||
# Prefer patching with `branch` over `rev` and let `Cargo.lock` handle the commit hash.
|
||
# That makes it easy to upade with `cargo update -p $CRATE`.
|
||
|
||
# datafusion = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-catalog = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-catalog-listing = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-common = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-common-runtime = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-datasource = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-doc = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-execution = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-expr = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-expr-common = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-ffi = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-aggregate = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-aggregate-common = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-nested = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-table = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-window = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-functions-window-common = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-macros = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-optimizer = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-physical-expr = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-physical-expr-common = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-physical-optimizer = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-physical-plan = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
# datafusion-sql = { git = "https://github.com/rerun-io/arrow-datafusion.git", branch = "tsaucer/52.3.0-inner-ffi" }
|
||
|
||
# ecolor = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# eframe = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# egui = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# egui_extras = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# egui_kittest = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# egui-wgpu = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
# emath = { git = "https://github.com/emilk/egui", branch = "main" }
|
||
|
||
# kittest = { git = "https://github.com/rerun-io/kittest.git", rev = 'ce7a2f3b12c36021889b50bdff671cec8016b0fb' }
|
||
|
||
# Useful while developing:
|
||
# ecolor = { path = "../../egui/crates/ecolor" }
|
||
# eframe = { path = "../../egui/crates/eframe" }
|
||
# egui = { path = "../../egui/crates/egui" }
|
||
# egui_extras = { path = "../../egui/crates/egui_extras" }
|
||
# egui_kittest = { path = "../../egui/crates/egui_kittest" }
|
||
# egui-wgpu = { path = "../../egui/crates/egui-wgpu" }
|
||
# emath = { path = "../../egui/crates/emath" }
|
||
# wgpu = { path = "../../wgpu/wgpu" }
|
||
|
||
# egui_plot = { git = "https://github.com/lucasmerlin/egui_plot.git", branch = "lucas/update-egui-0.35" }
|
||
# egui_plot = { path = "../../../egui_plot/egui_plot" }
|
||
|
||
# egui_tiles = { git = "https://github.com/rerun-io/egui_tiles", branch = "main" }
|
||
# egui_tiles = { path = "../egui_tiles" }
|
||
|
||
# egui_table = { git = "https://github.com/rerun-io/egui_table", branch = "lucas/update-egui" }
|
||
# egui_table = { path = "../egui_table" }
|
||
|
||
# egui_dnd = { git = "https://github.com/lucasmerlin/hello_egui.git", branch = "malmal/main" }
|
||
|
||
# egui_commonmark = { git = "https://github.com/rerun-io/egui_commonmark.git", branch = "lucas/update-egui-0.35" }
|
||
# egui_commonmark = { path = "../../forks/egui_commonmark/egui_commonmark" }
|
||
|
||
# walkers = { git = "https://github.com/rerun-io/walkers", branch = "emilk/egui-0.34" }
|
||
|
||
# dav1d = { path = "/home/cmc/dev/rerun-io/rav1d", package = "re_rav1d", version = "0.1.1" }
|