espflash 4.4.0

A command-line tool for interacting with Espressif devices
Documentation
[package]
name         = "espflash"
version      = "4.4.0"
edition      = "2024"
rust-version = "1.88"
description  = "A command-line tool for interacting with Espressif devices"
repository   = "https://github.com/esp-rs/espflash"
license      = "MIT OR Apache-2.0"
keywords     = ["cli", "embedded", "esp"]
categories   = ["command-line-utilities", "development-tools", "embedded"]

exclude = [
    "tests", # do not include test elfs/scripts in the released package
]

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.{ archive-format }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "zip"

[package.metadata.docs.rs]
features            = ["serialport"]
no-default-features = true
rustdoc-args        = ["--cfg", "docsrs"]

[[bin]]
name              = "espflash"
path              = "./src/bin/espflash.rs"
required-features = ["cli", "serialport"]

[dependencies]
addr2line       = { version = "0.25", optional = true }
base64          = "0.22"
bitflags        = "2.9"
bytemuck        = { version = "1.23", features = ["derive"] }
clap            = { version = "4.5", features = ["derive", "env", "wrap_help"], optional = true }
clap_complete   = { version = "4.5", optional = true }
comfy-table     = { version = "7.1", optional = true }
crossterm       = { version = "0.29", optional = true }
ctrlc           = { version = "3.4", optional = true }
defmt-decoder   = { version = "1.0", features = ["unstable"], optional = true }
dialoguer       = { version = "0.12", optional = true }
directories     = { version = "6.0", optional = true }
env_logger      = { version = "0.11", optional = true }
esp-idf-part    = "0.6"
flate2          = "1.1"
gimli           = "0.32.3"
indicatif       = { version = "0.18", optional = true }
log             = "0.4"
md-5            = "0.11"
miette          = "7.6"
object          = "0.39"
reed-solomon    = { version = "0.2.1", optional = true }
regex           = { version = "1.11", optional = true }
serde           = { version = "1.0", features = ["derive"] }
serialport      = { version = "4.7", default-features = false, optional = true }
sha2            = "0.10"
slip-codec      = { version = "0.4", optional = true }
strum           = { version = "0.28", features = ["derive"] }
thiserror       = "2.0"
toml            = { version = "1.1.2+spec-1.1.0", optional = true }
update-informer = { version = "1.2", optional = true }

[target.'cfg(unix)'.dependencies]
libc = "0.2.174"

[target.'cfg(target_os = "linux")'.dependencies]
nix = { version = "0.30", features = ["signal", "time"] }

[features]
default = ["cli"]
cli = [
    "dep:addr2line",
    "dep:clap",
    "dep:clap_complete",
    "dep:comfy-table",
    "dep:crossterm",
    "dep:ctrlc",
    "dep:defmt-decoder",
    "dep:dialoguer",
    "dep:directories",
    "dep:env_logger",
    "dep:indicatif",
    "dep:update-informer",
    "miette/fancy",
    "serialport",
]

# Enables connecting to a device via serial port
serialport = ["dep:reed-solomon", "dep:regex", "dep:serialport", "dep:slip-codec", "dep:toml"]