[package]
edition = "2024"
name = "plozone"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "3D spatial zone engine: geofencing, octree hole-scanning, realtime sync (WebSocket + QUIC + io_uring), voxel pathfinding, and AV sensor fusion."
readme = "README.md"
keywords = [
"geofencing",
"octree",
"spatial",
"zone",
"3d",
]
categories = [
"science::geo",
"algorithms",
"game-development",
]
license-file = "LICENSE"
repository = "https://github.com/fentz26/plozone"
[features]
av = []
bevy = ["dep:bevy"]
default = []
embedded = []
full = [
"parallel",
"pathfinding",
"tiled",
"game",
"net",
"gnss",
"lidar",
"terrain",
"pipeline",
"server",
"av",
"embedded",
"quic",
]
game = []
geo = ["dep:geo-types"]
gnss = []
io_uring = [
"server",
"dep:tokio-uring",
]
lidar = []
mimalloc = ["dep:mimalloc"]
net = [
"dep:postcard",
"dep:lz4_flex",
"dep:zstd",
]
parallel = ["dep:rayon"]
pathfinding = []
pipeline = ["dep:crossbeam-channel"]
prometheus = [
"server",
"dep:metrics",
"dep:metrics-exporter-prometheus",
]
quic = [
"server",
"dep:quinn",
"dep:rustls",
"dep:bytes",
]
server = [
"net",
"dep:tokio",
"dep:tokio-tungstenite",
"dep:futures-util",
]
terrain = [
"dep:mcubes",
"dep:lin_alg",
]
tiled = []
[lib]
name = "plozone"
path = "src/lib.rs"
[[bin]]
name = "plozone"
path = "src/bin/plozone.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "proptest"
path = "tests/proptest.rs"
[[bench]]
name = "benchmarks"
path = "benches/benchmarks.rs"
harness = false
[dependencies.bevy]
version = "0.16"
features = ["bevy_log"]
optional = true
default-features = false
[dependencies.bytes]
version = "1"
optional = true
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.lin_alg]
version = "1"
optional = true
[dependencies.lz4_flex]
version = "0.11"
optional = true
[dependencies.mcubes]
version = "0.1"
optional = true
[dependencies.parry3d]
version = "0.28"
[dependencies.postcard]
version = "1.1"
features = ["alloc"]
optional = true
[dependencies.quinn]
version = "0.11"
optional = true
[dependencies.rayon]
version = "1"
optional = true
[dependencies.rstar]
version = "0.13"
[dependencies.rustls]
version = "0.23"
features = ["ring"]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.smallvec]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
optional = true
[dependencies.tokio-tungstenite]
version = "0.26"
optional = true
[dependencies.zstd]
version = "0.13"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.serde_json]
version = "1"
[target.'cfg(target_os = "linux")'.dependencies.geo-types]
version = "0.7"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.metrics]
version = "0.24"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.metrics-exporter-prometheus]
version = "0.16"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.mimalloc]
version = "0.1"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.tokio-uring]
version = "0.5"
optional = true