🐍 Pyscan
A dependency vulnerability scanner for your python projects, straight from the terminal.
- can be used within large projects. (see benchmarks)
- automatically finds dependencies either from configuration files or within source code.
- support for poetry,hatch,filt,pdm and can be integrated into existing build processes.
- hasn't been battle-hardened yet. PRs and issue makers welcome.
🕊️ Install
pip install pyscan-rs
look out for the "-rs" part or
cargo install pyscan
🐇 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
Pyscan will find any dependencies added through poetry, hatch, filt, pdm, etc. Here's the order of precedence for a source/config file:
requirements.txtpyproject.toml- your source code (
.py)
Pyscan will use your pip to find unknown versions, otherwise pypi.org for the latest version. Still, it is recommended to version-ize your requirements and use proper pep-508 syntax.
Building
pyscan requires a rust version of < v1.70, and might be unstable on previous releases.
There's an overview of the codebase at architecture. Grateful for all the contributions so far.
🦀 Note
pyscan doesn't make sure your code is safe from everything. Use all resources available to you like safety Dependabot, pip-audit, trivy and the likes.
🐰 Todo
As of October 15, 2023:
- Gather time to work on it (incredible task as a
high schoolercollege freshman) - Persistent state representation of a project's security.
- Graphical analysis of dependencies and their dependencies, and so on.
- Better display, search, filter of vulns
- Finish the "big" update (All of the above is a part of PR #17)
🐹 Donate
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.7
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.7.tar.gz | 1.1 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyscan_rs-0.1.7-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pyscan_rs-0.1.7-py3-none-win32.whl | Python 3 | none | Windows x86-32 | Details |
| pyscan_rs-0.1.7-py3-none-manylinux_2_34_x86_64.whl | Python 3 | none | Linux glibc 2.34+ x86-64 | Details |
| pyscan_rs-0.1.7-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| pyscan_rs-0.1.7-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 16.0 MB
Release files / pyscan_rs-0.1.7.tar.gz
| Download URL | pyscan_rs-0.1.7.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98b710c7c20446f76138d6651def9cf55331314fda62c2ea6684b9517d89cc90
|
|
BLAKE2b-256 checksum How to use checksums |
ec43a42c4255156c678e8a86db01e82432eaee050e3107b18ec860578cd2b448
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|
Release files / pyscan_rs-0.1.7-py3-none-win_amd64.whl
| Download URL | pyscan_rs-0.1.7-py3-none-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
099fa7f84e5083ea6c304b93133095d2be19457a99aba2ca50b643495f96fb39
|
|
BLAKE2b-256 checksum How to use checksums |
21d066ea03448fda25c7a99d5694628c0c11412f4bfa22cb42ae201b5a664dda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|
Release files / pyscan_rs-0.1.7-py3-none-win32.whl
| Download URL | pyscan_rs-0.1.7-py3-none-win32.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
2fc3f4988d244996c986f16b79871383b261a19d70dbe6e9cb694cd6232e1eeb
|
|
BLAKE2b-256 checksum How to use checksums |
8f15bc2efe97dc9b613e4a7aa17e09101668a87630cc18425ad2c8d0cb401a5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|
Release files / pyscan_rs-0.1.7-py3-none-manylinux_2_34_x86_64.whl
| Download URL | pyscan_rs-0.1.7-py3-none-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | Linux glibc 2.34+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
b87f47a09609e4fbda3b2f8c2052b96a341fa421d97f6165c627cc29e852be58
|
|
BLAKE2b-256 checksum How to use checksums |
03763516368fca117b13f3c48e1deb6107f7f0e7ee98afabef2e6d08faa8e9e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|
Release files / pyscan_rs-0.1.7-py3-none-macosx_11_0_arm64.whl
| Download URL | pyscan_rs-0.1.7-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
14212ac5f954e4e8db26c0d2e1ca1c4c4e5ee43ea88c20c2f52abe75f7d951ae
|
|
BLAKE2b-256 checksum How to use checksums |
b52a60f8fad86c17ea03b37607b5f77a6cc23a657db8fcd6510aed9405209c38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|
Release files / pyscan_rs-0.1.7-py3-none-macosx_10_12_x86_64.whl
| Download URL | pyscan_rs-0.1.7-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
752a24826012faa1e9d3c2852f1373793aa65ca97acac9de08a2de5ace9c690c
|
|
BLAKE2b-256 checksum How to use checksums |
2aeddeeeb7e45d7f48376e0311c6484351e3a08566c5c97c95ecc63ac718acf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.7.8
|