feat: initialize Rust workspace with core and cli crates#2
Merged
PrasanthYT merged 1 commit intomainfrom Mar 2, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR introduces the foundational architecture of Scanr, including the Rust workspace structure, CLI command skeleton, CI pipeline, distribution channels, and structured documentation.
It establishes the technical base required for implementing dependency scanning, SBOM generation, and vulnerability investigation in future milestones.
Architecture Setup
Rust Workspace
Created a workspace-level
Cargo.tomlwith:scanr-core— core logic layer (currently placeholder)scanr-cli— CLI interface layerThis separation enforces modularity and prepares for scalable feature expansion.
CLI Skeleton (clap Integration)
Implemented command structure using
clap:Additional functionality:
scanr --helpscanr --versionlib.rsThis establishes a stable command surface for future feature implementation.
CI Pipeline
Added and validated GitHub Actions workflow (
ci.yml):Triggers:
Build step:
cargo build --workspace --releaseWorkflow syntax verified locally.
Distribution Channels
Aligned installer structure to defined channels:
installers/install.sh(curl-based install)installers/npm/package.jsonbin/scanr.jsinstallers/homebrew/scanr.rbinstallers/aur/PKGBUILDinstallers/README.mdfor channel documentationRemoved unused
bunchannel for scope clarity.Documentation (MkDocs)
Rewritten documentation structure:
mkdocs.ymlnavigationdocs/index.mddocs/cli.mddocs/core.mddocs/installation.mddocs/development.mdValidation:
Build passes successfully.
Git Configuration
Updated
.gitignore:/target/Cargo.lock/site/Ensures clean repository hygiene.
Validation Checklist
cargo build --workspace --releasepassesmkdocs build --strictpassesRemaining step:
Impact
Why This Matters
This milestone transitions Scanr from repository setup to a structured, extensible CLI security tool.
It satisfies: