[package]
name = "enphase-api"
description = "Rust client for Enphase/Envoy API"
license = "MIT"
readme = "README.md"
version = "1.0.0"
categories = ["api-bindings"]
keywords = ["api", "enphase", "envoy", "solar"]
repository = "https://github.com/JP-Ellis/enphase-api"
edition = "2024"
[dependencies]
reqwest = { version = "0.13", default-features = false, features = [
"cookies",
"form",
"json",
"rustls",
] }
serde = { version = "~1", default-features = false, features = ["derive"] }
serde_json = "~1"
thiserror = "~2"
tokio = { version = "1", default-features = false, features = ["time"] }
tracing = { version = "0.1.41", default-features = false, features = [
"attributes",
"log",
] }
[dev-dependencies]
anyhow = "=1.0.102"
insta = "=1.46.3"
pretty_assertions = "=1.4.1"
rstest = "=0.26.1"
tokio = { version = "=1.50.0", features = ["macros", "rt-multi-thread"] }
wiremock = "=0.6.5"
[features]
[lints]
[lints.rust]
future-incompatible = "warn"
missing_docs = "warn"
warnings = "warn"
[lints.clippy]
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
correctness = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
restriction = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
blanket-clippy-restriction-lints = "allow"
arbitrary_source_item_ordering = "allow"
else_if_without_else = "allow"
impl_trait_in_params = "allow"
implicit_return = "allow"
min_ident_chars = "allow"
missing_trait_methods = "allow"
multiple_crate_versions = "allow"
pattern_type_mismatch = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
ref_patterns = "allow"
self_named_module_files = "allow"
separated_literal_suffix = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
unreachable = "allow"
return_and_then = "allow"
panic_in_result_fn = "allow"
empty_structs_with_brackets = "allow"
[lints.rustdoc]
missing-crate-level-docs = "warn"