[package]
name = "miden-assembly"
version.workspace = true
description = "Miden VM assembly language"
documentation = "https://docs.rs/miden-assembly"
readme = "README.md"
categories = ["compilers", "no-std"]
keywords = ["assembler", "assembly", "language", "miden"]
license.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true
edition.workspace = true

[lib]
bench = false
doctest = false

[features]
default = ["std"]
std = ["miden-assembly-syntax/std", "miden-core/std", "thiserror/std"]
testing = ["logging", "miden-assembly-syntax/testing"]
logging = ["dep:env_logger"]

[dependencies]
# Miden dependencies
miden-assembly-syntax.workspace = true
miden-core.workspace = true
miden-mast-package.workspace = true

# External dependencies
env_logger = { workspace = true, optional = true }
log.workspace = true
smallvec.workspace = true
thiserror.workspace = true

[dev-dependencies]
# NOTE: We add miden-assembly as a dev-dependency with the "testing" feature to ensure that
# testing-specific functionality is available during test runs. This is a workaround since
# cargo doesn't currently support enabling test-related features automatically.
# See: https://github.com/rust-lang/cargo/issues/2911#issuecomment-1483256987
miden-assembly = { path = ".", default-features = false, features = ["testing"] }
miden-mast-package = { workspace = true, features = ["arbitrary"] }
# core lib and processor are imported using paths to avoid specifying dependency versions
miden-core-lib = { path = "../lib/core", default-features = false }
miden-processor = { path = "../../processor", features = ["testing"] }
insta = { workspace = true }
proptest = { workspace = true, features = ["std"] }
