# Single-crate protocol/door crate (the alktty template). No workspace: # the composition story is deferred — alkssh's substance is the mappings # (family ADR-003); the russh pin is decided (ADR-002: 0.65.0, aws-lc-rs). [workspace] members = ["."] [package] name = "alkssh" version = "0.1.0" edition = "2021" rust-version = "1.88" license = "MIT OR Apache-2.0" description = "SSH adapter for the alk family: russh-wrapped vanilla-ssh termination bridged to/from alkcall channels — session/pty, tunnels, git exec — with every capability mapping a fail-closed cargo feature (no features: no capabilities)" repository = "https://git.alk.dev/alkdev/alkssh" keywords = ["ssh", "russh", "protocol", "alkcall", "network"] categories = ["network-programming", "asynchronous"] # The package policy (the sibling crates' convention): the published crate # ships the architecture docs (the authoritative contract) but not the # process surface — reviews, research, plans, task files, the working # agents' config, AGENTS.md. exclude = [".opencode/", "AGENTS.md", "docs/reviews/", "docs/plans/", "docs/research/", "docs/sdd_process.md", "tasks/"] [lib] name = "alkssh" [features] # The capability feature graph (ADR-003) lands with implementation start: # session (→ alktty), tunnel (→ alktunnels), git (→ alkgit), sftp (→ # alkfs, deferred placeholder). The default build carries no capabilities # by design — every mapping is opt-in and every unfeatured channel open # declines fail-closed. default = [] [dependencies] tokio = { version = "1.54.1", features = ["full"] } # Deliberately empty until implementation start — the russh pin is decided # (ADR-002: 0.65.0, aws-lc-rs); russh + alkcall + sibling-crate deps land # with implementation. [dev-dependencies] [profile.release] lto = "thin"