Skip to content

🐍 Scan your Python dependencies for known security vulnerabilities with Rust-powered scanner

License

Notifications You must be signed in to change notification settings

nyudenkov/pysentry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

210 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PySentry

PyPI Downloads

Help to test and improve Β· Participate in pysentry usage survey

Please, send feedback to nikita@pysentry.com

A fast, reliable security vulnerability scanner for Python projects, written in Rust.

PySentry audits Python projects for known security vulnerabilities by analyzing dependency files and cross-referencing them against multiple vulnerability databases.

Documentation Β· Benchmarks Β· Buy Me a Coffee

Features

  • Multiple formats β€” uv.lock, poetry.lock, Pipfile.lock, pylock.toml, pyproject.toml, Pipfile, requirements.txt
  • Multiple sources β€” PyPA Advisory Database, PyPI JSON API, OSV.dev (all enabled by default)
  • PEP 792 support β€” Detects archived, deprecated, and quarantined packages
  • Flexible output β€” Human-readable, JSON, SARIF, Markdown
  • Fast β€” Written in Rust with async processing and caching

Installation

# Using uvx (recommended)
uvx pysentry-rs /path/to/project

# Using pip
pip install pysentry-rs

# Using cargo
cargo install pysentry

# Pre-built binaries available at GitHub Releases

See Installation Guide for all options.

Quick Start

# Scan current directory
pysentry

# Scan specific project
pysentry /path/to/project

# Filter by severity
pysentry --severity high

# Output to JSON
pysentry --format json --output report.json

# Fail on critical vulnerabilities only
pysentry --fail-on critical

# Block quarantined packages (malware protection)
pysentry --forbid-quarantined

See Quickstart Guide for more examples.

Pre-commit

repos:
  - repo: https://github.com/pysentry/pysentry-pre-commit
    rev: v0.4.0
    hooks:
      - id: pysentry

Configuration

PySentry supports TOML configuration via .pysentry.toml or pyproject.toml:

# .pysentry.toml
version = 1

[defaults]
severity = "medium"
fail_on = "high"

[sources]
enabled = ["pypa", "osv"]

[ignore]
ids = ["CVE-2023-12345"]

See Configuration Guide for all options.

Documentation

Full documentation is available at docs.pysentry.com:

Requirements

  • For requirements.txt scanning: Install uv (recommended) or pip-tools for dependency resolution
  • Python: 3.9–3.14 (for pip/uvx installation)
  • Rust: 1.79+ (for cargo installation or building from source)

Acknowledgments

About

🐍 Scan your Python dependencies for known security vulnerabilities with Rust-powered scanner

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Contributors 5