liveplot 2.0.0

Realtime interactive plotting library using egui/eframe, with optional gRPC and Parquet export support.
Documentation
[package]
name = "liveplot"
version = "2.0.0"
edition = "2021"
autobins = false
license = "Apache-2.0"
homepage = "https://github.com/ulikoehler/liveplot-rs"
repository = "https://github.com/ulikoehler/liveplot-rs"
description = "Realtime interactive plotting library using egui/eframe, with optional gRPC and Parquet export support."

[lib]
name = "liveplot"
path = "src/lib.rs"

[features]
default = ["tiles"]
# Opt-in tracing for traces table width debugging (silenced by default)
traces_table_debug = []
# Enable building gRPC examples and proto codegen
grpc = [
	"dep:tokio",
	"dep:tonic",
	"dep:tonic-prost",
	"dep:prost",
	"dep:prost-types",
	"dep:async-stream",
	"dep:futures-core",
]
# Optional FFT support (UI & computation)
fft = [
    "dep:rustfft",
]
# Optional Parquet export support via Apache Arrow
parquet = [
    "dep:arrow-array",
    "dep:arrow-schema",
    "dep:parquet",
]
# Optional helper for example to query monitor geometry for sizing/positioning
window_control_display_info = [
	"dep:display-info",
]

# Optional tiles layout engine for helper APIs & examples
tiles = ["dep:egui_tiles"]

[dependencies]
eframe = { version = "0.33", features = ["wgpu"] }
egui = "0.33"
egui_plot = "0.34"
egui_tiles = { version = "0.14", optional = true }
egui_dnd = "0.14"
chrono = "0.4"
rfd = "0.17"
image = "0.25"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
egui_table = "0.7"
serde_yaml = "0.9"
downcast-rs = "2"
usvg = "0.45"
resvg = "0.45"
tiny-skia = "0.11"
rustfft = { version = "6", optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync"], optional = true }
tonic = { version = "0.14", features = ["transport"], optional = true }
tonic-prost = { version = "0.14", optional = true }
prost = { version = "0.14", optional = true }
prost-types = { version = "0.14", optional = true }
async-stream = { version = "0.3", optional = true }
futures-core = { version = "0.3", optional = true }
arrow-array = { version = "57", optional = true }
arrow-schema = { version = "57", optional = true }
parquet = { version = "57", optional = true, features = ["arrow"] }
display-info = { version = "0.5", optional = true }
egui-phosphor = "0.11"
once_cell = "1.21.3"

[build-dependencies]
tonic-prost-build = "0.14"

## note: this repository uses `examples/embedded_tiles.rs` as the tiles example

[[example]]
name = "embedded_tiles"
path = "examples/embedded_tiles.rs"
required-features = ["tiles"]

[[example]]
name = "client"
path = "examples/client.rs"
required-features = ["grpc"]

[[example]]
name = "grpc-server"
path = "examples/grpc-server.rs"
required-features = ["grpc"]

[[example]]
name = "sine"
path = "examples/sine.rs"

[[example]]
name = "sine_cosine_delayed_snapshot"
path = "examples/sine_cosine_delayed_snapshot.rs"
required-features = ["parquet"]

[[example]]
name = "window_control"
path = "examples/window_control.rs"
required-features = ["window_control_display_info"]

[[example]]
name = "thresholds_sine"
path = "examples/thresholds_sine.rs"

[[example]]
name = "custom_trace_colors"
path = "examples/custom_trace_colors.rs"

[[example]]
name = "embedded_window"
path = "examples/embedded_window.rs"

[[example]]
name = "features"
path = "examples/features.rs"