qssh 0.0.2-alpha

Experimental quantum-safe SSH using post-quantum crypto. Research project - NOT for production. See LIMITATIONS.md
Documentation
.PHONY: all build test clean install run-server run-client fmt lint bench doc

# Default target
all: build test

# Build all binaries
build:
	cargo build --release --all

# Run all tests
test:
	cargo test --all

# Run unit tests only
test-unit:
	cargo test --lib

# Run integration tests only  
test-integration:
	cargo test --test '*'

# Clean build artifacts
clean:
	cargo clean
	rm -rf test_output/

# Install binaries
install: build
	sudo cp target/release/qssh /usr/local/bin/
	sudo cp target/release/qsshd /usr/local/bin/
	sudo cp target/release/qscp /usr/local/bin/
	sudo cp target/release/qssh-keygen /usr/local/bin/

# Development helpers
fmt:
	cargo fmt --all

lint:
	cargo clippy --all-targets --all-features -- -D warnings

# Security audit
audit:
	cargo audit

# Benchmarks
bench:
	cargo bench

# Documentation
doc:
	cargo doc --no-deps --open

# Quick tests
quick:
	cargo test --lib -- --test-threads=8

# Server with debug
server-debug:
	RUST_LOG=debug cargo run --bin qsshd -- --listen :42

# Example P2P
p2p-demo:
	cargo run --example p2p_demo -- listen

# Coverage report
coverage:
	cargo tarpaulin --out Html --output-dir target/coverage

# Release build with optimizations
release:
	RUSTFLAGS="-C target-cpu=native" cargo build --release

# Check everything before commit
pre-commit: fmt lint test
	@echo "✅ Ready to commit!"