Skip to main content

Real Tracker X: cross-ecosystem dependency trust scanner

Project description

rtx — Real Tracker X

PyPI CI Coverage License Downloads SLSA

Author: Andreas Fahl
Tagline: Cross-ecosystem dependency trust scanner for secure upgrades.

Problem

Modern software supply chains depend on sprawling, fast-moving dependency graphs. Teams struggle to evaluate risk before upgrading, face alert fatigue from siloed advisories, and lack unified visibility across ecosystems. Compromised maintainers, typosquats, and abandoned packages frequently slip past point-in-time audits.

Solution

rtx pre-computes the blast radius of any change. It ingests manifests from Python, JavaScript, Java, Rust, Go, PHP, .NET, Ruby, Conda, and Homebrew projects, builds a full dependency tree, enriches it with OSV and GitHub advisories, and evaluates trust using transparent heuristics (abandonment, churn, maintainer health, typosquats). Reports yield deterministic exit codes for CI and can be exported as Rich tables, JSON, or HTML bundles.

Demo (10s Asciinema)

asciicast

Installation

pip install rtx-trust

Quickstart

rtx scan --format table
rtx scan --path examples/mixed
rtx pre-upgrade --manager npm --package react --version 18.0.0
rtx report --format json --output reports/rtx.json

CLI Overview

  • rtx scan: Detect manifests in the current directory, build the dependency graph, and score trust.
  • rtx pre-upgrade: Simulate dependency upgrades and compare trust deltas before applying.
  • rtx report: Render persisted reports in JSON, table, or HTML formats for CI workflows.
  • rtx list-managers: List supported package managers, manifest file patterns, and detection confidence.

Library API

from pathlib import Path
from rtx.api import scan_project
report = scan_project(Path("./my-service"), managers=["npm", "pypi"])
print(report.summary())

Examples

  • examples/npm: Node.js service with npm lockfiles.
  • examples/pypi: Python project using pyproject.toml and uv.lock.
  • examples/mixed: Polyglot workspace combining npm, Poetry, Maven, Cargo, and Docker.

Architecture

  • Modular scanners per ecosystem share a common threat-evaluation core.
  • Advisory providers (OSV, GitHub, ecosystem feeds) run asynchronously with caching.
  • Trust policy engine computes risk scores and exit codes.
  • SBOM generator emits CycloneDX v1.5 for every scan and pre-upgrade run.

Security Notes

  • No install scripts are executed; all metadata resolution is offline-first with bounded timeouts.
  • All dependencies are vendored with hashes; CI blocks on unpinned packages.
  • Releases publish signed wheels, SBOMs, and SLSA provenance via GitHub OIDC + cosign.

Roadmap

  1. Artifact attestation for container images.
  2. Native integrations for Maven Enforcer and Gradle.
  3. Streaming trust dashboards with anomaly alerts.
  4. Workspace diff views for GitHub, GitLab, and Bitbucket Apps.

FAQ

Why another dependency scanner? rtx focuses on pre-upgrade guardrails, not post-incident triage.
Does it phone home? No. Network requests are limited to advisories and metadata endpoints; they respect enterprise proxies.
Can I extend support? Yes. Create a plugin under src/rtx/scanners and register it in rtx.registry.
How do exit codes map to severity? 0 = safe, 1 = medium trust gaps, 2 = high/critical risk.

Community & Support

Author Attribution

Copyright © 2025 Andreas Fahl.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rtx_trust-0.1.0.tar.gz (217.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rtx_trust-0.1.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file rtx_trust-0.1.0.tar.gz.

File metadata

  • Download URL: rtx_trust-0.1.0.tar.gz
  • Upload date:
  • Size: 217.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0rc1

File hashes

Hashes for rtx_trust-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0fcfdfdb949a0974c139f7a8d42f9df2689ee46cd35ff642887ea61226118c19
MD5 80921e7b2f5b6d4f5ad027157ce056c7
BLAKE2b-256 f958a0fa46108359e8dfcb5d63ff3285f4d0e3f434f2e4f6361949d72e93a9cb

See more details on using hashes here.

File details

Details for the file rtx_trust-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rtx_trust-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0rc1

File hashes

Hashes for rtx_trust-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c12fd867414a7cc02dcd8d60ead991d0ab6d427953e8565e0426189c33343846
MD5 726f9621b55ead5574c46a74d6783813
BLAKE2b-256 895d876e698eb6f4f7f613e35becf867df9abcf87fb68b2ab8b331baada2fb2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page