Files
2026-07-13 13:05:14 +08:00

135 lines
4.6 KiB
TOML

[package]
name = "rerun-cli"
authors.workspace = true
categories = ["visualization", "computer-vision"]
description = "Log images, point clouds, etc, and visualize them effortlessly"
edition.workspace = true
homepage.workspace = true
include.workspace = true
keywords = ["mesh", "plotting", "point-cloud", "robotics", "visualization"]
license.workspace = true
publish = true
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true
default-run = "rerun" # If someone types `cargo run` in this workspace, this is what we staert
[lints]
workspace = true
[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
[package.metadata.cargo-shear]
# TODO(lancedb/lance#3073): remove `lance` feature flag
ignored = ["re_server"]
[[bin]]
name = "rerun"
path = "src/bin/rerun.rs"
# This binary's name collides with `crates/top/rerun` (the library).
# https://github.com/rust-lang/cargo/issues/6313
doc = false
[features]
## The default is what the user gets when they call `cargo install rerun-cli --locked`,
## so we have all the bells and wistles here, except those that may require extra tools
## (like "nasm").
## That is: `cargo install rerun-cli --locked` should work for _everyone_.
default = ["web_viewer", "base"]
## Our base feature set, included in `default` and in `release`, but excludes the web viewer.
base = ["native_viewer", "map_view", "oss_server", "perf_telemetry"]
# !!!IMPORTANT!!!
#
# Do you _really_ want to add features in `release_no_web_viewer` that are not in `base`?
#
# Here are some reasons not to:
# - These features will be missing from the `cargo install rerun-cli --locked` command our users will inevitably use.
# - These features will not be picked up in places where we cannot use the `release` feature set (e.g. rerun_js).
# - This list is not exhaustive and will unexpectedly grow in the future.
#
# If you insist on adding a feature here, please make sure you address all the concerns above.
#
# `nasm`
# ------
#
# This requires external build tools (the `nasm` cli) and would break any build on a system without it. Mitigation: a
# warning with instructions is printed when building `rerun-cli` in release mode without the `nasm` feature (see
# `build.rs`).
## The features we enable when we build the pre-built binaries during our releases,
## but excluding the web viewer.
## This may enable features that require extra build tools that not everyone has.
release_no_web_viewer = ["base", "lance", "nasm"]
## The features we enable when we build the pre-built binaries during our releases.
## These are the binaries we put in our release artifacts, and bundle in our Python wheel.
## This may enable features that require extra build tools that not everyone has.
release_full = ["release_no_web_viewer", "web_viewer"]
## Support the map view.
## This adds a lot of extra dependencies.
map_view = ["rerun/map_view"]
## Enable faster native video decoding with assembly.
## You need to install [nasm](https://github.com/netwide-assembler/nasm) to compile with this feature.
nasm = ["rerun/nasm"]
## Support spawning a native viewer.
## This adds a lot of extra dependencies, so only enable this feature if you need it!
native_viewer = ["rerun/native_viewer"]
## Enable the in-memory Rerun Server, useful for testing.
oss_server = ["rerun/oss_server"]
## Add support for Lance tables in the in-memory OSS Rerun Server (`oss_server` feature flag).
## This is opt-in because of <https://github.com/lance-format/lance/issues/3073>.
# TODO(lancedb/lance#3073): remove feature flag
lance = ["re_server/lance"]
## Enables integration with `re_perf_telemetry` (OpenTelemetry, Jaeger).
##
## This only works on native, and only with `TELEMETRY_ENABLED` set.
perf_telemetry = ["rerun/perf_telemetry"]
## Support serving a web viewer over HTTP.
##
## Enabling this inflates the binary size quite a bit, since it embeds the viewer wasm.
# When building from source (in the repository), this feature adds quite a bit
# to the compile time since it requires compiling and bundling the viewer as wasm.
#
# TODO(#4295): web_viewer shouldn't require rerun/sdk
web_viewer = ["rerun/web_viewer", "rerun/sdk"]
[dependencies]
re_build_info.workspace = true
re_error.workspace = true
re_log = { workspace = true, features = ["setup"] }
re_memory.workspace = true
rerun = { workspace = true, default-features = false, features = [
"analytics",
"importers",
"glam",
"image",
"log",
"run",
"server",
] }
re_server = { workspace = true, optional = true }
document-features.workspace = true
mimalloc.workspace = true
[build-dependencies]
re_build_tools.workspace = true