🐍 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 December 24, 2024:
- 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 college student with nothing else to do. I appreciate all the help I can get.
Metadata
Release files for pyscan-rs 0.1.8
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.8.tar.gz | 1.1 MB | Details |
Built distributions (wheels)
Total release size: 42.8 MB
Release files / pyscan_rs-0.1.8.tar.gz
| Download URL | pyscan_rs-0.1.8.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2fb753760971ad1f090066b0bf8543b6900238e7df2dc6ad42ecaa0fb936226c
|
|
BLAKE2b-256 checksum How to use checksums |
ce7c5de38e2fcf15e37e700a41215c1fdc4587d8369e9ab424b03489e63790c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-win_amd64.whl
| Download URL | pyscan_rs-0.1.8-py3-none-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9d991a6adf19f15e1fcdd132761bd527610ad0df7dfa3ff5de744f6b88d5258a
|
|
BLAKE2b-256 checksum How to use checksums |
87754235460e46b9f7286b329cf7817e659124584fa87ee02c81d987b2d42cee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-win32.whl
| Download URL | pyscan_rs-0.1.8-py3-none-win32.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
8f6c279f6617d6698a16b0b7fe174faadd49455bbc9627a2cb255617412c38fa
|
|
BLAKE2b-256 checksum How to use checksums |
1d3c3e610f544e52a32ec9e5d381036cf3bfdfa285fc078dd67cb56cad26d2db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-musllinux_1_2_x86_64.whl
| Download URL | pyscan_rs-0.1.8-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
3d6033f6f82b58a6b73cc22ac031b966f461fe7861ddec0f23ef5f2119433434
|
|
BLAKE2b-256 checksum How to use checksums |
95b4c28758e7186c5d86f1fcfed0404da764f098ca5a381309bb0aa23f73af30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-musllinux_1_2_i686.whl
| Download URL | pyscan_rs-0.1.8-py3-none-musllinux_1_2_i686.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Linux musl 1.2+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
8f70bba9b58e26f65c6a1e5cf5b1ff07ace62b0fc2d064269f883a69855cefc7
|
|
BLAKE2b-256 checksum How to use checksums |
55d3d010e4fdc7e6be3b1c35d6d2db5fe8c30e8e5f8162ec4af1723d6db3afe4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-musllinux_1_2_armv7l.whl
| Download URL | pyscan_rs-0.1.8-py3-none-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Linux musl 1.2+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
522bcf282f37d53b0d6bf2d2fdadad817ee8a427704ac9174c09eef2cea42c03
|
|
BLAKE2b-256 checksum How to use checksums |
3a1bf6e45f72da878eee417d4d20808fb6893939eb0f4035509d3a2324412161
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-musllinux_1_2_aarch64.whl
| Download URL | pyscan_rs-0.1.8-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
b8a77ba4547ca2ad217bdee188f8c94bfd40aae45d951c6266754909a8374ffb
|
|
BLAKE2b-256 checksum How to use checksums |
1bae0f97787882653f79f3ce45a9a8ffd468ce3477ba79de2ab3386ab852dfad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pyscan_rs-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
cc6453d8f670283f4fcef2d7335b1afe27d99dedba0c00483b7951f67040b724
|
|
BLAKE2b-256 checksum How to use checksums |
6db311371c1aebd012f54e6eb1c71e402d2765dd8fc05aefac5dee83efce9ca1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | pyscan_rs-0.1.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 4.2 MB |
| Tags | Linux glibc 2.17+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
e9a045d8fbeb730b1547fc322faa5e36fa5617890e0923673039eae8ec3c52e2
|
|
BLAKE2b-256 checksum How to use checksums |
f5ec624cb1172f4a38b217949fa59b4d831a11cc970f4125b804c2f52e6c5dde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | pyscan_rs-0.1.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Linux glibc 2.17+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
b2ace0388c900b6de0cf445b7fdc90fe644aadb370269aad36e5dc628ecb11e5
|
|
BLAKE2b-256 checksum How to use checksums |
d231c0540ac4f9ee857bb6a0b5bd7d0080d916c7e2249038848045f86c60f573
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | pyscan_rs-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
6fb3145b942a89b3c1ddafdb79d31659444c6f762bd49979bf3644a46e682736
|
|
BLAKE2b-256 checksum How to use checksums |
1af7f099623152cde85212ca27b5e41dc94ec68a30d45c14df7dbf6264191225
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-macosx_11_0_arm64.whl
| Download URL | pyscan_rs-0.1.8-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 |
f8b5990272f2ab2f58aa134104c7f245c4fd3bd8ad7ca54d07d4a67738874914
|
|
BLAKE2b-256 checksum How to use checksums |
031bc75e4be3b7227f91cb2bfae55b28780720eb0ba2c4c9f561f77124c19688
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|
Release files / pyscan_rs-0.1.8-py3-none-macosx_10_12_x86_64.whl
| Download URL | pyscan_rs-0.1.8-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 |
3484ad020dc03dfb8f7d26214512d203a2da0c0fb8033f1ad63a61b2e432928b
|
|
BLAKE2b-256 checksum How to use checksums |
5ad8ece38e93668695861864a373af2d61d6ef8b7921f37939ebce459eefaa81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.1
|