[package]
edition = "2024"
name = "pzsh"
version = "0.3.5"
authors = ["paiml"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Performance-first shell framework with sub-10ms startup"
readme = "README.md"
keywords = [
"shell",
"zsh",
"bash",
"performance",
"cli",
]
categories = ["command-line-utilities"]
license = "MIT"
repository = "https://github.com/paiml/pzsh"
[features]
default = []
full = [
"ml",
"simd",
]
ml = [
"aprender",
"aprender-shell",
]
simd = ["trueno"]
[lib]
name = "pzsh"
path = "src/lib.rs"
[[bin]]
name = "pzsh"
path = "src/main.rs"
[[example]]
name = "basic_config"
path = "examples/basic_config.rs"
[[example]]
name = "benchmark"
path = "examples/benchmark.rs"
[[example]]
name = "color"
path = "examples/color.rs"
[[example]]
name = "completion"
path = "examples/completion.rs"
[[example]]
name = "lint_config"
path = "examples/lint_config.rs"
[[example]]
name = "parser"
path = "examples/parser.rs"
[[example]]
name = "plugin"
path = "examples/plugin.rs"
[[example]]
name = "prompt"
path = "examples/prompt.rs"
[[example]]
name = "shell_init"
path = "examples/shell_init.rs"
[[example]]
name = "theme"
path = "examples/theme.rs"
[[example]]
name = "zsh_features"
path = "examples/zsh_features.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[bench]]
name = "startup"
path = "benches/startup.rs"
harness = false
[dependencies.ahash]
version = "0.8"
features = ["serde"]
[dependencies.anyhow]
version = "1"
[dependencies.aprender]
version = "0.25"
optional = true
[dependencies.aprender-shell]
version = "0.3"
optional = true
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.dirs]
version = "6"
[dependencies.hostname]
version = "0.4"
[dependencies.lru]
version = "0.16"
[dependencies.quanta]
version = "0.12"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.thiserror]
version = "2"
[dependencies.toml]
version = "0.9"
[dependencies.trueno]
version = "0.14"
optional = true
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.test-case]
version = "3"
[lints.clippy]
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
collapsible_if = "allow"
double_must_use = "allow"
format_push_string = "allow"
manual_let_else = "allow"
manual_strip = "allow"
map_unwrap_or = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
option_if_let_else = "allow"
ptr_arg = "allow"
redundant_clone = "allow"
redundant_closure_for_method_calls = "allow"
single_char_pattern = "allow"
struct_excessive_bools = "allow"
too_many_lines = "allow"
uninlined_format_args = "allow"
unnecessary_literal_bound = "allow"
unnecessary_sort_by = "allow"
unnecessary_wraps = "allow"
wildcard_imports = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"
[profile.bench]
inherits = "release"
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true