Skip to content

bobbanj/rpv-kit

Repository files navigation

Rust Cross-Platform Validation Kit

CI License

A public reference implementation for validating cross-platform Rust development environments. This project is intentionally independent and contains no proprietary code.

RPV Kit (rpv) runs structured validation tests across filesystem, keyring, SQLite, HTTP, TLS, compression, JSON, logging, configuration, environment, process execution, and file watching — then generates CI-ready reports in Markdown, JSON, and HTML.

Supported platforms

Platform Keyring backend CI runner
Windows Credential Manager windows-latest
macOS Keychain macos-latest
Linux Secret Service ubuntu-latest

Quick start

Prerequisites

  • Rust stable (see rust-toolchain.toml)
  • Platform keyring dependencies:
    • Linux: libsecret-1-dev, D-Bus session
    • Windows / macOS: no extra setup required

Build

cargo build --release

Run all validations

cargo run --release -- validate

Reports are written to report-output/ by default:

report-output/
├── validation-report.md
├── validation-report.json
└── validation-report.html

Individual module tests

rpv system-info
rpv keyring-test
rpv filesystem-test
rpv sqlite-test
rpv http-test
rpv tls-test

CLI reference

Command Description
validate Run all modules and generate reports
system-info Print platform and toolchain information
keyring-test Keyring store/load/update/delete tests
filesystem-test Filesystem operation tests
sqlite-test Embedded SQLite tests
http-test HTTP client tests (requires network)
tls-test TLS certificate validation tests
export-report Convert a JSON report to MD or HTML

Options

rpv validate --output ./reports --formats markdown json html --strict
rpv export-report --input report.json --output report.md --format markdown

Validation modules

Module What it validates
filesystem Create, read, write, rename, metadata, missing entries
keyring Store, load, update, delete, migration, edge cases
sqlite In-memory DB, CRUD, transactions
http GET requests, headers, timeouts
tls HTTPS, certificate chains, invalid cert rejection
compression gzip roundtrip, SHA-256 integrity
json Serialize, deserialize, roundtrip, error handling
logging tracing subscriber init and structured fields
configuration TOML config loading, env overrides
environment Env vars, cwd, temp dir, args
process Subprocess spawn, exit codes
file_watch Filesystem event notifications

Optional features (disabled by default):

cargo build --features clipboard,notifications

Keyring tests

The keyring module exercises the native credential store on each platform:

  • store — write a credential
  • load — read it back
  • update — overwrite the value
  • delete — remove and verify absence
  • migration — move a credential between service names
  • corrupted_entry — empty/overwritten credential handling
  • missing_entryNoEntry error for absent credentials
  • permission_denied — skipped in CI (requires manual platform setup)

CI integration

GitHub Actions runs on Linux, Windows, and macOS:

  1. cargo fmt --check
  2. cargo check
  3. cargo test
  4. cargo clippy -- -D warnings
  5. rpv validate with artifact upload

See CI.md for details on adapting the workflow to your project.

Documentation

Example reports

Sample CI artifacts are in examples/reports/.

License

Licensed under either of:

at your option.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages