[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]
arbitrary = ["std", "dep:proptest"]
default = ["std"]
std = [
    "dep:miden-package-registry",
    "miden-assembly-syntax/std",
    "miden-core/std",
    "miden-mast-package/std",
    "miden-project/std",
    "proptest?/std",
    "tempfile/getrandom",
    "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
miden-package-registry = { workspace = true, optional = true }
miden-project = { workspace = true, features = ["serde"] }

# External dependencies
env_logger = { workspace = true, optional = true }
log.workspace = true
proptest = { workspace = true, optional = 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"] }
insta = { workspace = true }
miden-test-serde-macros.workspace = true
proptest = { workspace = true, features = ["std"] }
tempfile.workspace = true
