Skip to main content

python dependency vulnerability scanner

Project description

🐍 Pyscan

CI Liscense PyPI GitHub issues Top Language

A dependency vulnerability scanner for your python projects, straight from the terminal.
  • 🚀 blazingly fast scanner that can be used within large projects quickly.
  • 🤖 automatically uses requirements.txt, pyproject.toml or, the source code.
  • 🧑‍💻 can be integrated into existing build processes.
  • 💽 In its alpha stage, some features may not work correctly. PRs and issue makers welcome.

🕊️ Install

> pip install pyscan-rs

look out for the "-rs" part or

> cargo install pyscan

check out the releases.

🐇 Usage

Go to your python source directory (or wherever you keep your requirements.txt/pyproject.toml) and run:

> pyscan

or

> pyscan -d path/to/src

Docker

[WARNING: docker subcommand currently does not work, if you are installing pyscan solely for that purpose. It will be fixed and released in the next version. Thanks for the patience, people with actual jobs (i dont know anyone else who actually uses docker)]

Pyscan can scan inside docker images given you provide the correct path inside. This is still in its early stage and may break easily.

> pyscan docker -n my-docker-image -p /path/inside/container/to/source

by "source" I mean requirements.txt, pyproject.toml or your python files. Note: Your docker engine/daemon should be running as pyscan utilizes the docker create command.


Here's the order of precedence for a "source" file:
  • requirements.txt
  • pyproject.toml
  • your python source code (.py) [highly discouraged]

Pyscan will find dependency versions from pip if not provided within the source file. Even though, Make sure you version-ize your requirements and use proper pep-508 syntax.

Building

pyscan requires a rust version of < v1.70, as it uses once_cell which is unstable on previous releases. There's an overview of the codebase coming soon for people who wanna contribute. Appreciate all the help so far.

🦀 Note

pyscan uses OSV as its database for now. There are plans to add a few more.

pyscan doesn't make sure your code is safe from everything. Use all resources available to you like Dependabot, pip-audit or trivy.

🐰 Todo

As of June 27, 2023:

  • Gather time to work on it (incredible task as a high schooler)
  • Multi-threading
  • Better display, search, filter of vulns
  • Plethora of output options (stick to >> for now)
  • Architecture write-up

🐹 Sponsor

While not coding, I am a broke high school student with nothing else to do. I appreciate all the help I can get.

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

pyscan_rs-0.1.5.tar.gz (613.5 kB view hashes)

Uploaded Source

Built Distributions

pyscan_rs-0.1.5-py3-none-win_amd64.whl (2.5 MB view hashes)

Uploaded Python 3 Windows x86-64

pyscan_rs-0.1.5-py3-none-win32.whl (2.3 MB view hashes)

Uploaded Python 3 Windows x86

pyscan_rs-0.1.5-py3-none-macosx_11_0_arm64.whl (2.8 MB view hashes)

Uploaded Python 3 macOS 11.0+ ARM64

pyscan_rs-0.1.5-py3-none-macosx_10_7_x86_64.whl (3.0 MB view hashes)

Uploaded Python 3 macOS 10.7+ x86-64

Supported by

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