[package]
name = "mxsh"
version = "0.2.0"
edition = "2024"
rust-version = "1.85"
description = "Embeddable POSIX-style shell parser and runtime"
readme = "README.md"
keywords = ["shell", "posix", "parser", "runtime"]
categories = ["command-line-utilities", "parsing"]
license = "Apache-2.0"
repository = "https://github.com/rescrv/mxsh"
[features]
default = ["cli"]
parser = []
runtime = []
unix-runtime = ["runtime"]
serde = ["dep:serde", "dep:serde_json"]
embed = ["parser", "runtime", "serde"]
frontend = ["embed"]
cli = ["frontend", "unix-runtime"]
test-support = ["runtime"]
[dependencies]
libc = "0.2"
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }
[dev-dependencies]
proptest = "1.6"
[[bin]]
name = "mxsh"
path = "src/bin/mxsh.rs"
required-features = ["cli"]
[[example]]
name = "custom_frontend"
path = "examples/custom_frontend.rs"
required-features = ["frontend", "test-support"]
[[example]]
name = "embedded"
path = "examples/embedded.rs"
required-features = ["embed", "test-support"]
[[example]]
name = "command_not_found"
path = "examples/command_not_found.rs"
required-features = ["embed", "test-support"]
[[example]]
name = "toysh"
path = "examples/toysh.rs"
required-features = ["cli"]
[[bench]]
name = "parser_large_scripts"
harness = false
required-features = ["parser"]
[profile.test]
opt-level = 2