miden-debug 0.9.2

An interactive debugger for Miden VM programs
Documentation
[workspace]
members = [".", "crates/dap", "crates/engine"]
resolver = "2"

[workspace.package]
version = "0.9.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.1", path = "crates/dap", features = ["client"] }
miden-debug-engine = { version = "0.10.1", path = "crates/engine", default-features = false }
miden-assembly = { version = "0.25.8" }
miden-assembly-syntax = { version = "0.25.8" }
miden-core = { version = "0.25.8", default-features = false }
miden-debug-types = { version = "0.25.8", default-features = false }
miden-mast-package = { version = "0.25.8", default-features = false }
miden-processor = { version = "0.25.8", default-features = false }
miden-package-registry = { version = "0.25.8", features = ["resolver"] }
miden-project = { version = "0.25.8" }
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]
# Needed for 'inventory' to work
codegen-units = 1

[profile.release]
# Needed for 'inventory' to work
codegen-units = 1

[patch.crates-io]
#miden-assembly = { path = "../miden-vm/crates/assembly" }
#miden-assembly-syntax = { path = "../miden-vm/crates/assembly-syntax" }
#miden-core = { path = "../miden-vm/core" }
#miden-debug-types = { path = "../miden-vm/crates/debug-types" }
#miden-processor = { path = "../miden-vm/processor" }
#miden-mast-package = { path = "../miden-vm/crates/mast-package" }
#miden-package-registry = { path = "../miden-vm/crates/package-registry" }
#miden-project = { path = "../miden-vm/crates/project" }
#miden-assembly = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-assembly-syntax = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-core = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-debug-types = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-processor = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-mast-package = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-package-registry = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }
#miden-project = { git = "https://github.com/0xMiden/miden-vm", branch = "bitwalker/package-debug-info-consolidation" }



[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"]

[[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", "miden-debug-engine/tui"]
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"] }