rerun-cli 0.29.0

Log images, point clouds, etc, and visualize them effortlessly
[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",
  "data_loaders",
  "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