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

137 lines
4.4 KiB
TOML

[package]
name = "rerun_py" # name of the rust crate
edition.workspace = true
license.workspace = true
publish = false
rust-version.workspace = true
version.workspace = true
[lints]
workspace = true
[lib]
crate-type = ["cdylib"]
name = "rerun_bindings" # name of the .so library that the Python module will import
[features]
default = ["extension-module", "perf_telemetry"]
## Extra features that aren't ready to be included in release builds yet.
extra = []
## The features we turn on when building the `rerun-sdk` PyPi package
## for <https://pypi.org/project/rerun-sdk/>.
pypi = ["extension-module", "nasm", "web_viewer", "server", "perf_telemetry"]
## We need to enable the `pyo3/extension-module` when building the SDK,
## but we cannot enable it when building tests and benchmarks, so we
## must make it an optional feature.
## * <https://pyo3.rs/latest/faq.html#i-cant-run-cargo-test-or-i-cant-build-in-a-cargo-workspace-im-having-linker-issues-like-symbol-not-found-or-undefined-reference-to-_pyexc_systemerror>
## * <https://pyo3.rs/main/building-and-distribution#building-python-extension-modules>
extension-module = ["pyo3/extension-module"]
## Enable faster native video decoding with assembly.
## You need to install [nasm](https://github.com/netwide-assembler/nasm) to compile with this feature.
nasm = ["re_video/nasm"]
## Enables integration with `re_perf_telemetry` (OpenTelemetry, Jaeger).
##
## This only works on native.
perf_telemetry = [
"dep:re_perf_telemetry",
"re_redap_client/perf_telemetry",
"re_perf_telemetry/session_id_reader",
]
## Add support for the in-memory OSS server.
server = ["re_sdk/server", "dep:re_grpc_server"]
## Support serving a web viewer over HTTP with `serve()`.
##
## Enabling this adds quite a bit to the binary size,
## since it requires bundling the viewer as wasm.
web_viewer = ["re_sdk/web_viewer", "dep:re_web_viewer_server", "dep:re_grpc_server"]
[dependencies]
re_arrow_util.workspace = true
re_auth.workspace = true
re_build_info.workspace = true
re_chunk.workspace = true
re_lenses_core.workspace = true
re_lenses.workspace = true
re_chunk_store.workspace = true
re_format.workspace = true
re_importer.workspace = true
re_datafusion.workspace = true
re_error.workspace = true
re_redap_client.workspace = true
re_grpc_client.workspace = true
re_grpc_server = { workspace = true, optional = true }
re_log = { workspace = true, features = ["setup"] }
re_log_encoding.workspace = true
re_log_types.workspace = true
re_mcap.workspace = true
re_mp4_reader.workspace = true
re_parquet.workspace = true
re_memory.workspace = true
re_quota_channel.workspace = true
re_sdk = { workspace = true, features = ["importers"] }
re_sorbet.workspace = true
re_tracing = { workspace = true, features = ["server"] }
re_tuid.workspace = true
re_types_core.workspace = true
re_uri.workspace = true
re_video.workspace = true
re_web_viewer_server = { workspace = true, optional = true }
re_server = { workspace = true, features = ["lance"] }
anyhow.workspace = true
arrow = { workspace = true, features = ["pyarrow"] }
chrono.workspace = true #TODO(#9317): migrate to jiff
comfy-table.workspace = true
crossbeam.workspace = true
datafusion.workspace = true
datafusion-ffi.workspace = true
document-features.workspace = true
futures.workspace = true
itertools.workspace = true
jiff.workspace = true
memmap2.workspace = true
infer.workspace = true
mimalloc = { workspace = true, features = ["local_dynamic_tls"] }
numpy.workspace = true
parking_lot.workspace = true
pyo3 = { workspace = true, features = [
"abi3-py310", # Require at least Python 3.10
"chrono", #TODO(#9317): migrate to jiff
] }
rand = { workspace = true, features = ["std", "std_rng"] }
rustls = { workspace = true, features = ["ring"] }
strum.workspace = true
strum_macros.workspace = true
tracing.workspace = true
uuid.workspace = true
# Deps for remote feature
re_protos = { workspace = true, features = ["py"] }
tokio = { workspace = true, features = ["rt-multi-thread"] }
tokio-stream.workspace = true
tonic = { workspace = true, default-features = false, features = ["transport"] }
url.workspace = true
thiserror.workspace = true
# Native dependencies:
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
re_perf_telemetry = { workspace = true, features = ["session_id_reader"], optional = true }
[dev-dependencies]
tempfile.workspace = true
[build-dependencies]
re_build_tools.workspace = true
pyo3-build-config.workspace = true