rtz 0.7.2

A tool to easily work with geo lookups via a binary, a library, or a server.
Documentation
[package]
name = "rtz"
version = "0.7.2"
edition = "2021"
authors = ["Aaron Roney <twitchax@gmail.com>"]
license = "MIT"
description = "A tool to easily work with geo lookups via a binary, a library, or a server."
readme = "../README.md"
homepage = "https://github.com/twitchax/rtz"
repository = "https://github.com/twitchax/rtz"
keywords = ["cli", "time", "zone", "timezone", "geospatial"]
categories = ["command-line-utilities"]
rust-version = "1.80"

[package.metadata."docs.rs"]
features = ["tz-ned", "tz-osm", "admin-osm"]

[lib]
name = "rtzlib"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]

[[bin]]
name = "rtz"
path = "src/bin.rs"
required-features = ["cli"]

[features]
default = ["cli"]
full = ["tz-ned", "tz-osm", "admin-osm", "self-contained", "rtz-core/full", "rtz-build/full"]

double-precision = ["rtz-core/double-precision", "rtz-build/double-precision"]
unsimplified = ["rtz-core/unsimplified"]
extrasimplified = ["rtz-core/extrasimplified"]
self-contained = ["rtz-core/self-contained", "rtz-build/self-contained", "include_bytes_aligned"]
owned-decode = []

tz-ned = ["rtz-core/tz-ned", "rtz-build/tz-ned"]
tz-osm = ["rtz-core/tz-osm", "rtz-build/tz-osm", "chrono-tz", "chrono"]
admin-osm = ["rtz-core/admin-osm", "rtz-build/admin-osm"]

cli = ["clap"]
web = ["full", "tokio", "config", "log", "simple_logger", "schemars", "chrono", "axum", "hyper", "tower", "tower-http", "http", "http-body-util", "utoipa", "utoipa-swagger-ui", "utoipa-redoc", "utoipa-rapidoc", "axum-insights", "tracing"]
wasm = ["wasm-bindgen", "wasm-bindgen-futures", "wee_alloc", "js-sys"]

force-rebuild = ["rtz-build/force-rebuild"]

[dependencies]
rtz-core = { path = "../rtz-core", version = "0.1.6"}

anyhow = { version = "1.0.72", features = ["backtrace"] }
rayon = "1.7.0"
geojson = "0.24.1"
geo = "0.29.3"
chashmap = "2.2.2"

rand = "0.9.0"
getrandom = { version = "0.3.1", features = ["wasm_js"] }

serde = { version = "1.0.126" }
serde_json = "1.0.64"

bincode = { version = "2", default-features = false, features = ["alloc", "serde"] }
include_bytes_aligned = { version = "0.1.3", optional = true }

# cli
clap = { version = "4.0.29", features = ["derive"], optional = true }

# tz-osm
chrono-tz ={ version = "0.10.1", features = ["serde"], optional = true }
chrono = { version = "0.4.39", features = ["serde"], optional = true }

# web
tokio = { version = "1.29.1", features = ["rt", "macros", "signal", "parking_lot", "rt-multi-thread"], optional = true }
config = { version = "0.15.7", optional = true }
log = { version = "0.4.8", features = ["release_max_level_info"], optional = true }
simple_logger = { version = "5.0.0", optional = true }
schemars = { version = "0.8.6", features = ["chrono"], optional = true }
axum = { version = "0.8.0", features = ["macros"], optional = true }
hyper = { version = "1.4.1", features = ["full"], optional = true }
tower = { version = "0.5.2", features = ["full"], optional = true }
tower-http = { version = "0.6.2", features = ["full"], optional = true }
http = { version = "1.1.0", optional = true }
http-body-util = { version = "0.1.2", optional = true }
utoipa = { version = "5.3.1", features = ["axum_extras"], optional = true }
utoipa-swagger-ui = { version = "9.0.0", features = ["axum", "vendored"], optional = true }
utoipa-redoc = { version = "6.0.0", features = ["axum"], optional = true }
utoipa-rapidoc = { version = "6.0.0", features = ["axum"], optional = true }

# telemetry
axum-insights = { version = "0.6.2", optional = true }
tracing = { version = "0.1.40", optional = true }

# wasm
wasm-bindgen = { version = "0.2.84", optional = true }
wasm-bindgen-futures = { version = "0.4.34", optional = true }
wee_alloc = { version = "0.4.5", optional = true }
js-sys = { version = "0.3.61", optional = true }

[dev-dependencies]
pretty_assertions = "1.4.0"
cities-json = "0.6.7"
futures = "0.3.28"
criterion = { version = "0.5", features = ["html_reports"] }

[build-dependencies]
rtz-build = { path = "../rtz-build", version = "0.2.8"}

[target.'cfg(not(target_family = "wasm"))'.dependencies]
reqwest = { version = "0.12.5", features = ["blocking"] }
zip = { version = "2.1.6" }

[[bench]]
name = "benches"
harness = false

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wasm)'] }