- russh = "0.65", default-features off, aws-lc-rs only (ADR-002: no flate2, no rsa; tree RC-free except the recorded ssh-key 0.7.0-rc.11 pin riding the russh keys path) - alkcall 0.10, alkvault 0.1 version-pinned; no path deps - standing toolkit: tokio, thiserror, tracing, parking_lot, zeroize - edition 2024, rust-version 1.89 - ADR-003 feature graph: session/git/tunnel/sftp, default = [], flat and independent — features gate nothing yet (wave-2 decline core is the first consumer) - task w1-manifest completed; notes/summary filled Verified: cargo tree (no rsa/pkcs1/flate2), cargo test, cargo test --all-features, cargo clippy --all-targets -- -D warnings (default + all-features), cargo fmt --check, taskgraph validate
54 lines
2.0 KiB
TOML
54 lines
2.0 KiB
TOML
# Single-crate protocol/door crate (the alktty template). No workspace:
|
|
# the composition story is deferred — alkssh's substance is the mappings
|
|
# (family ADR-003).
|
|
[workspace]
|
|
members = ["."]
|
|
|
|
[package]
|
|
name = "alkssh"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.89"
|
|
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]
|
|
# ADR-003: flat and independent — no feature implies another; `default = []`
|
|
# by design (a default build has no capabilities; every unfeatured open
|
|
# declines fail-closed). Features gate nothing yet — the wave-2 decline core
|
|
# is their first consumer; the per-feature sibling deps land with their
|
|
# first consuming wave.
|
|
default = []
|
|
session = []
|
|
git = []
|
|
tunnel = []
|
|
sftp = []
|
|
|
|
[dependencies]
|
|
# ADR-002: aws-lc-rs only; default features off — no flate2, no rsa
|
|
# (ed25519-only; the tree stays RC-free except the ssh-key pin riding the
|
|
# russh keys path). Never enable russh's `des`/`dsa` features.
|
|
russh = { version = "0.65", default-features = false, features = ["aws-lc-rs"] }
|
|
alkcall = "0.10"
|
|
alkvault = "0.1"
|
|
tokio = { version = "1.54", features = ["full"] }
|
|
thiserror = "2.0"
|
|
tracing = "0.1"
|
|
parking_lot = "0.12"
|
|
zeroize = "1.9"
|
|
|
|
[dev-dependencies]
|
|
|
|
[profile.release]
|
|
lto = "thin" |