[workspace]
members = [".", "crates/dap", "crates/engine"]
resolver = "2"
[workspace.package]
version = "0.10.2"
rust-version = "1.96"
authors = ["Miden contributors"]
repository = "https://github.com/0xMiden/miden-debug"
homepage = "https://github.com/0xMiden/miden-debug"
documentation = "https://github.com/0xMiden/miden-debug"
categories = ["development-tools"]
keywords = ["miden", "debugger"]
license = "MIT"
readme = "README.md"
edition = "2024"
[workspace.dependencies]
clap = { version = "4.5", default-features = false, features = ["derive", "std", "env", "help", "suggestions", "error-context"]}
log = "0.4"
inventory = "0.3"
miden-debug-dap = { version = "0.9.2", path = "crates/dap", features = ["client"] }
miden-debug-engine = { version = "0.12.0", path = "crates/engine", default-features = false }
miden-assembly = { version = "0.29.0" }
miden-assembly-syntax = { version = "0.29.0" }
miden-core = { version = "0.29.0", default-features = false }
miden-debug-types = { version = "0.29.0", default-features = false }
miden-mast-package = { version = "0.29.0", default-features = false }
miden-processor = { version = "0.29.0", default-features = false }
miden-package-registry = { version = "0.29.0", features = ["resolver"] }
miden-project = { version = "0.29.0" }
rustc-hash = { version = "2.1" }
serde = { version = "1.0", default-features = false, features = [
"serde_derive",
"alloc",
"rc",
] }
serde_json = "1"
thiserror = "2.0"
[profile.dev]
codegen-units = 1
[profile.release]
codegen-units = 1
[patch.crates-io]
[package]
name = "miden-debug"
description = "An interactive debugger for Miden VM programs"
version.workspace = true
rust-version.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
categories.workspace = true
keywords.workspace = true
license.workspace = true
edition.workspace = true
[lib]
path = "src/lib.rs"
[[bin]]
name = "miden-debug"
path = "src/main.rs"
test = false
bench = false
required-features = ["std"]
[[bin]]
name = "miden-debug-python"
path = "src/main.rs"
test = false
bench = false
required-features = ["python"]
[[example]]
name = "compile-masm"
required-features = ["std"]
[[test]]
name = "println_smoke_test"
required-features = ["tui"]
[[test]]
name = "println_empty_string"
required-features = ["tui"]
[[test]]
name = "println_invalid_utf8"
required-features = ["tui"]
[[test]]
name = "println_oversized_length"
required-features = ["tui"]
[[test]]
name = "println_uninitialized_memory"
required-features = ["tui"]
[[test]]
name = "println_multiple_prints"
required-features = ["tui"]
[[test]]
name = "flamegraph_profile"
required-features = ["flamegraph"]
[features]
default = ["tui", "dap", "repl"]
flamegraph = ["std", "dep:env_logger", "dep:inferno"]
tui = ["std", "flamegraph", "dep:crossterm", "dep:env_logger", "dep:ratatui", "dep:tui-input", "dep:signal-hook", "dep:syntect", "miden-debug-engine/tui"]
repl = ["std", "dep:env_logger", "dep:rustyline", "miden-debug-engine/tui"]
dap = ["miden-debug-engine/dap"]
python = ["repl", "dep:pyo3"]
std = ["clap/std", "clap/env", "compact_str/std", "miden-assembly-syntax/std", "miden-debug-engine/std"]
proptest = ["miden-debug-engine/proptest"]
[dependencies]
clap.workspace = true
crossterm = { version = "0.29.0", optional = true, features = ["event-stream"] }
compact_str = { version = "0.9", default-features = false }
miden-debug-engine.workspace = true
env_logger = { version = "0.11", optional = true }
inferno = { version = "0.12", optional = true, default-features = false }
log.workspace = true
miden-assembly.workspace = true
miden-assembly-syntax.workspace = true
miden-core.workspace = true
miden-debug-types.workspace = true
miden-mast-package.workspace = true
miden-package-registry.workspace = true
miden-processor.workspace = true
miden-project.workspace = true
pyo3 = { version = "0.28.3", optional = true, features = ["auto-initialize"] }
ratatui = { version = "0.30.0", optional = true }
signal-hook = { version = "0.4.4", optional = true }
syntect = { version = "5.2.0", optional = true, default-features = false, features = [
"parsing",
"default-syntaxes",
"default-themes",
"yaml-load",
"regex-onig",
] }
thiserror.workspace = true
tui-input = { version = "0.15", optional = true }
rustyline = { version = "18.0", optional = true }
tokio = { version = "1.39.2", features = ["rt", "time", "macros", "rt-multi-thread"] }
tokio-util = "0.7.11"
futures = "0.3.30"
[build-dependencies]
pyo3-build-config = { version = "0.28.3", features = ["resolve-config"] }