hrrr 1.0.0

A fast native HRRR forecast-field viewer
[workspace]
members = [
    "crates/hrrr-acceptance",
    "crates/hrrr-contract",
    "crates/hrrr-portability",
]
resolver = "3"

[package]
name = "hrrr"
version = "1.0.0"
edition = "2024"
license = "MIT"
rust-version = "1.96"
description = "A fast native HRRR forecast-field viewer"
readme = "README.md"
documentation = "https://docs.rs/hrrr"
repository = "https://github.com/aoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoa/hrrr"
homepage = "https://github.com/aoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoa/hrrr"
keywords = ["hrrr", "weather", "egui", "wgpu", "grib"]
categories = ["gui", "science::geo"]
include = ["src/**", "README.md", "LICENSE"]

[features]
egui-test = ["dep:egui-tester-witness", "eternalist-apps/egui-test"]

[dependencies]
anyhow = "1.0.102"
atomic-write-file = "0.3.0"
bytemuck = { version = "1.24.0", features = ["derive"] }
crossbeam-channel = "0.5.15"
directories = "6.0.0"
dwemer_poolrooms = "0.9.1"
egui = "=0.34.3"
egui-wgpu = "=0.34.3"
egui-tester-witness = { version = "0.6.1", optional = true, features = ["egui"] }
eternalist-apps = { version = "0.3.1", features = ["serde"] }
fast-mvt = { version = "0.6.1", default-features = false, features = ["reader"] }
flate2 = "1.1.5"
fs4 = "0.12.0"
geo-types = "0.7.19"
grib = { version = "0.16.0", default-features = false }
hrrr-contract = { path = "crates/hrrr-contract", version = "0.2.0" }
jiff = "0.2.33"
lyon_tessellation = "1.0.20"
pmtiles = { version = "0.23.1", default-features = false, features = ["mmap-async-tokio"] }
serde = { version = "1.0.228", features = ["derive"] }
sha2 = "0.10.9"
tar = { version = "0.4.44", default-features = false }
tokio = { version = "1.48.0", features = ["rt"] }
toml = "1.1.2"
ureq = "3.3.0"
zip = { version = "7.2.0", default-features = false, features = ["deflate-flate2-zlib-rs"] }

[target.'cfg(target_os = "linux")'.dependencies]
nix = { version = "0.30.1", default-features = false, features = ["poll"] }
x11rb = { version = "0.13.2", default-features = false, features = ["randr"] }

[target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies]
tray-icon = { version = "0.24.1", default-features = false }

[lints]
workspace = true

[workspace.lints.rust]
warnings = "deny"
elided_lifetimes_in_paths = "deny"
unexpected_cfgs = "deny"
unsafe_code = "deny"
unused_crate_dependencies = "warn"
unused_lifetimes = "deny"
unused_qualifications = "deny"
unused_results = "deny"
ambiguous_glob_imports = "allow"
ambiguous_glob_reexports = "allow"
hidden_glob_reexports = "allow"

[workspace.lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"

[workspace.lints.clippy]
all = { level = "deny", priority = -2 }
pedantic = { level = "deny", priority = -1 }
cargo = { level = "warn", priority = -3 }

dbg_macro = "deny"
expect_used = "deny"
panic = "deny"
todo = "deny"
unimplemented = "deny"
unwrap_used = "deny"
allow_attributes_without_reason = "deny"

cargo_common_metadata = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
multiple_crate_versions = "allow"

enum_glob_use = "allow"
wildcard_imports = "allow"

items_after_statements = "allow"
many_single_char_names = "allow"
match_same_arms = "allow"
module_name_repetitions = "allow"
similar_names = "allow"
struct_field_names = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
unnested_or_patterns = "allow"

cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
float_cmp = "allow"
implicit_hasher = "allow"
manual_let_else = "allow"
map_unwrap_or = "allow"
uninlined_format_args = "allow"

ignored_unit_patterns = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
no_effect_underscore_binding = "allow"
redundant_closure_for_method_calls = "allow"
ref_option = "allow"
return_self_not_must_use = "allow"
trivially_copy_pass_by_ref = "allow"
unused_async = "allow"
used_underscore_binding = "allow"

[package.metadata.rust-starter]
format_command = ["cargo", "fmt", "--all", "--check"]
clippy_command = ["cargo", "clippy", "--locked", "--workspace", "--all-targets", "--all-features"]
test_command = ["cargo", "test", "--locked", "--workspace", "--all-targets", "--all-features"]
doc_command = ["cargo", "doc", "--locked", "--workspace", "--all-features", "--no-deps"]
canonicalize_commands = [
  ["cargo", "fix", "--workspace", "--all-targets", "--all-features", "--allow-dirty", "--allow-staged", "--allow-no-vcs"],
  ["cargo", "clippy", "--fix", "--workspace", "--all-targets", "--all-features", "--allow-dirty", "--allow-staged", "--allow-no-vcs"],
  ["cargo", "fmt", "--all"],
]

[package.metadata.rust-starter.source_files]
max_lines = 3000
include = ["*.rs", "**/*.rs"]
exclude = []