cargo-features = ["trim-paths", "panic-immediate-abort"] [workspace] members = [ "ush-obfuscate", "base62", "unshell-leaves/leaf-pty", "unshell-leaves/leaf-shell", "examples/endpoint_test", ] resolver = "2" [workspace.package] version = "0.1.0" edition = "2024" authors = ["ASTATIN3"] license = "MIT" repository = "https://github.com/Astatin3/unshell" include = ["LICENSE", "**/*.rs", "Cargo.toml"] [workspace.dependencies] rkyv = "0.8.16" thiserror = "2.0.18" chrono = "0.4.44" static_init = "1.0.4" portable-pty = "0.9.0" crossbeam-channel = "0.5.15" const-random = "0.1.18" ratatui = "0.30.0" unshell = { path = "." } # unshell-protocol = { path = "./unshell-protocol" } # ush-obfuscate = { path = "./ush-obfuscate" } # base62 = { path = "./base62" } # Leaves leaf-pty = { path = "./unshell-leaves/leaf-pty" } [package] name = "unshell" version.workspace = true edition.workspace = true description = "Pure no_std implementation of the UnShell Protocol" [features] default = ["counter_shuffle_feistel_lcg"] log = [] log_debug = ["log", "dep:chrono"] interface = [] interface_ratatui = ["interface", "dep:ratatui"] counter_shuffle_none = [] counter_shuffle_feistel = [] counter_shuffle_feistel_lcg = [] [dependencies] rkyv = { workspace = true } thiserror = { workspace = true, optional = true } chrono = { workspace = true, optional = true } static_init = { workspace = true } const-random = { workspace = true } ratatui = { workspace = true, optional = true } [dev-dependencies] crossbeam-channel.workspace = true [build-dependencies] [profile.minimize] inherits = "release" strip = true # Strip symbols from the binary opt-level = "z" # Optimize for size lto = true # Link tree optimization codegen-units = 1 panic = "immediate-abort" debug = false # Remove debug trim-paths="all" [lints.rust] elided_lifetimes_in_paths = "warn" future_incompatible = { level = "warn", priority = -1 } nonstandard_style = { level = "warn", priority = -1 } rust_2018_idioms = { level = "warn", priority = -1 } rust_2021_prelude_collisions = "warn" semicolon_in_expressions_from_macros = "warn" unsafe_op_in_unsafe_fn = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" trivial_casts = "allow" # missing_docs = "warn"