🐍 Pyscan
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.tomlor, 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.txtpyproject.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.
Metadata
Release files for pyscan-rs 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyscan_rs-0.1.5.tar.gz | 613.5 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyscan_rs-0.1.5-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pyscan_rs-0.1.5-py3-none-win32.whl | Python 3 | none | Windows x86-32 | Details |
| pyscan_rs-0.1.5-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| pyscan_rs-0.1.5-py3-none-macosx_10_7_x86_64.whl | Python 3 | none | macOS 10.7+ x86-64 | Details |
Total release size: 11.1 MB
Release files / pyscan_rs-0.1.5.tar.gz
| Download URL | pyscan_rs-0.1.5.tar.gz |
|---|---|
| Size | 613.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a3204d4559e37dfeca9af1e967085d670aab74a01bfa4234ea53702a5b0d372
|
|
BLAKE2b-256 checksum How to use checksums |
b951df4d6b8e29755306d898595df3876171ca0fc0cb63dd0e54bba55ef91c10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.1.0
|
Release files / pyscan_rs-0.1.5-py3-none-win_amd64.whl
| Download URL | pyscan_rs-0.1.5-py3-none-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
82435f1f1388afc5191f38b445b41bedef4b2e5eb17c3fa00b1117aad7deabc8
|
|
BLAKE2b-256 checksum How to use checksums |
b49f7b0b5e04a5f500777e8ebb4635c8b6162b97bab1d6bb022fceab567a58be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.1.0
|
Release files / pyscan_rs-0.1.5-py3-none-win32.whl
| Download URL | pyscan_rs-0.1.5-py3-none-win32.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
effac8ebb192b8c9b9a13047f7f9ede7384442fa57699bec4ead3ca223f1dd13
|
|
BLAKE2b-256 checksum How to use checksums |
170e07d0bc7a3aff0dfead3be1d6d0da13437eed40f9a1f477a669f75e7f89fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.1.0
|
Release files / pyscan_rs-0.1.5-py3-none-macosx_11_0_arm64.whl
| Download URL | pyscan_rs-0.1.5-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1beee54595b10557524c724e638d19efb06a2d741f08dfd9013762358f2beafa
|
|
BLAKE2b-256 checksum How to use checksums |
4937edff1f3080223f82cc2163ac6a0108daf3ee0a84b841dbc744284d08b699
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.1.0
|
Release files / pyscan_rs-0.1.5-py3-none-macosx_10_7_x86_64.whl
| Download URL | pyscan_rs-0.1.5-py3-none-macosx_10_7_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Python 3 macOS 10.7+ x86-64 |
|
SHA-256 checksum How to use checksums |
57467cb6f84e36b3f1f0c2199609a5e7c7d9a654405703016b2d4d17b78f1b74
|
|
BLAKE2b-256 checksum How to use checksums |
87f94e1fcfd9b0c39492452d94ddc03c915a679bba39bea562146999b9b56cb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.1.0
|