1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[]
= "rerun-cli"
= true
= ["visualization", "computer-vision"]
= "Log images, point clouds, etc, and visualize them effortlessly"
= true
= true
= true
= ["mesh", "plotting", "point-cloud", "robotics", "visualization"]
= true
= true
= "README.md"
= true
= true
= true
= "rerun" # If someone types `cargo run` in this workspace, this is what we staert
[]
= true
[]
= true
= ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
[]
# TODO(lancedb/lance#3073): remove `lance` feature flag
= ["re_server"]
[[]]
= "rerun"
= "src/bin/rerun.rs"
# This binary's name collides with `crates/top/rerun` (the library).
# https://github.com/rust-lang/cargo/issues/6313
= false
[]
## 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_.
= ["web_viewer", "base"]
## Our base feature set, included in `default` and in `release`, but excludes the web viewer.
= ["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.
= ["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_no_web_viewer", "web_viewer"]
## Support the map view.
## This adds a lot of extra dependencies.
= ["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.
= ["rerun/nasm"]
## Support spawning a native viewer.
## This adds a lot of extra dependencies, so only enable this feature if you need it!
= ["rerun/native_viewer"]
## Enable the in-memory Rerun Server, useful for testing.
= ["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
= ["re_server/lance"]
## Enables integration with `re_perf_telemetry` (OpenTelemetry, Jaeger).
##
## This only works on native, and only with `TELEMETRY_ENABLED` set.
= ["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
= ["rerun/web_viewer", "rerun/sdk"]
[]
= true
= true
= { = true, = ["setup"] }
= true
= { = true, = false, = [
"analytics",
"data_loaders",
"glam",
"image",
"log",
"run",
"server",
] }
= { = true, = true }
= true
= true
[]
= true