Skip to main content

Lazaret

Static security, supply-chain and quality analysis for Python, JavaScript and SQL, with no dependencies: Lazaret runs on the Python standard library and its own native engine (written in Rust, with no external crates; every wheel carries it), and even building it downloads nothing.

pip install lazaret
lazaret path/to/project                 # scan; writes lazaret-report.{html,json}
lazaret . --ci --sarif out.sarif        # quality gate for CI, SARIF for code scanning
lazaret . --deps                        # also audit node_modules and site-packages
lazaret-registry scan npm:left-pad      # audit a published npm / PyPI package
lazaret guard npm install express       # check what npm, pnpm, yarn, Bun, pip or uv installs, before it runs
lazaret-sca --update-bundle             # download OSV + CISA KEV + EPSS into cve-bundle.json
lazaret-sca . --bundle cve-bundle.json  # match installed dependencies against CVEs
lazaret-mcp                             # MCP server, so an AI assistant can scan code

What it finds:

  • Security: SQL/command/code injection, SSTI, XXE, unsafe deserialization, XSS sinks, weak crypto, disabled TLS verification, hardcoded secrets (provider signatures and entropy, in code and in config files), and more, across 63 pattern rules plus supply-chain and coverage findings.
  • Taint analysis: follows untrusted input through assignments, function calls, and across files into sinks, in Python and in JavaScript and TypeScript (read with a real parser), with Flask, Django, FastAPI and Express routes modeled, category-aware sanitizers, and a configurable source/sink/sanitizer spec.
  • Supply chain, in your tree, in --deps and in published npm and PyPI packages: install hooks followed to the scripts they run and the scripts those start; code that runs at import, and in registry scans the code a package runs only when it is used; the strings a file decodes as it runs (hex, base64, its own decoding, XOR or character-code helpers, javascript-obfuscator's string arrays and proxy objects); a value received over the network in one file and run in another; data read from the machine followed to where it is sent; credential sweeps; reverse shells and miners; programs set to start at login; worms that publish themselves; code hidden off-screen; smuggled binaries and nested archives; names one change from a popular package's; and a new dependency published days before a release. On 516 real malicious npm and PyPI releases, 83% get the SUSPICIOUS verdict (GuardDog 71%), against 3 of 429 popular packages (GuardDog 18). Those releases were read while the detectors were written; of 747 others that none was written from, 78% do, and 98% of those verdicts rest on what the code does.
  • Install guard: lazaret guard in front of npm install, npm ci, pnpm add, yarn add, bun add, pip install, uv add, uv sync, uv run or uvx resolves what would be installed, fetches and scans every package in memory, and installs nothing if one is SUSPICIOUS, can't be checked, or is younger than --min-age (2 days by default). Private registries and indexes are read with the credentials the package manager's own settings give, sent to that host only. --plan checks without installing; verdicts are cached by digest.
  • Quality: bugs, code smells, complexity, duplication, with a quality gate and ratings.

Every command prints its version with --version; the scanners also name the engine. Lazaret's scanning engine is native code, written in Rust with no external crates. pip installs it with the platform wheels for Linux (x86-64 and ARM64, glibc 2.28 or later), macOS (Apple silicon, and Intel from 10.12) and Windows (x64); everywhere else pip builds a wheel from the source distribution, which compiles the engine and needs Rust (rustup).

Two of its building blocks are usable on their own (provisional APIs until 1.0): lazaret.pg, a PostgreSQL client in pure Python with SCRAM-SHA-256, channel binding and TLS; and lazaret.safexml, a layer that makes the stdlib XML parsers safe for untrusted input.

Licensed under Apache-2.0. The Unicode 13.0 tables the scanners pin text to are Unicode data, under the Unicode License v3, so the package is Apache-2.0 AND Unicode-3.0; the platform wheels' native engine also includes Rust translations of CPython's regular expression engine and shell tokenizer, under CPython's license, so those wheels are Apache-2.0 AND Python-2.0.1 AND Unicode-3.0. Each carries the licenses and notices it names. Documentation, source and issue tracker: https://github.com/lazaret-dev/lazaret · https://lazaret.dev · Changes: https://github.com/lazaret-dev/lazaret/blob/main/CHANGELOG.md

Metadata

Release files for lazaret 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lazaret 0.1.8
File Size Uploaded Provenance Actions
lazaret-0.1.8.tar.gz 1.6 MB With provenance Details for lazaret-0.1.8.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for lazaret 0.1.8
File Actions
lazaret-0.1.8-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for lazaret-0.1.8-py3-none-win_amd64.whl
lazaret-0.1.8-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details for lazaret-0.1.8-py3-none-manylinux_2_28_x86_64.whl
lazaret-0.1.8-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details for lazaret-0.1.8-py3-none-manylinux_2_28_aarch64.whl
lazaret-0.1.8-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for lazaret-0.1.8-py3-none-macosx_11_0_arm64.whl
lazaret-0.1.8-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for lazaret-0.1.8-py3-none-macosx_10_12_x86_64.whl

Total release size: 16.8 MB

Release files / lazaret-0.1.8.tar.gz

Download URL lazaret-0.1.8.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
328d997bdbaa6f5040b4e3e748ca2caa5a5c4f5800432cc1138fa2dee890cfb2
BLAKE2b-256 checksum
How to use checksums
52d4bf2d41b0fab401c27d76ff4925584dc91e2f06528a2b4b9f0b46a0e51207
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / lazaret-0.1.8-py3-none-win_amd64.whl

Download URL lazaret-0.1.8-py3-none-win_amd64.whl
Size 3.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
f35eac5b6870c710161e78bc21e276afab42029e2a84373b09435d3b4b7275d2
BLAKE2b-256 checksum
How to use checksums
a4f58ab26744c9132322e8135800a6e7b9a4853b00e46091793be6e4c971ad6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / lazaret-0.1.8-py3-none-manylinux_2_28_x86_64.whl

Download URL lazaret-0.1.8-py3-none-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
db90f75ae7a090dc0c9808061895089224833237c2849efc6413646a6e7a3d6c
BLAKE2b-256 checksum
How to use checksums
ab4247f99d3ba58864f7f850fa8959e75858bfbb482f7d88b1acd852f7421445
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / lazaret-0.1.8-py3-none-manylinux_2_28_aarch64.whl

Download URL lazaret-0.1.8-py3-none-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
8e120426ffe92e4e646401cc5c89b56e784bd2fea081f8b9f932e9f4f42efb30
BLAKE2b-256 checksum
How to use checksums
92dcc3b502743c99e4c23df936a667fec75cfd5d4c931b61d7210d3e3927bb58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / lazaret-0.1.8-py3-none-macosx_11_0_arm64.whl

Download URL lazaret-0.1.8-py3-none-macosx_11_0_arm64.whl
Size 2.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
51dbc2e27c4d3bf331edca3056815198c03662e42579c8b87c9a789cea51904a
BLAKE2b-256 checksum
How to use checksums
f1f8f9c53857ee37f237d867a0b10d3a53cd7353eb5385b1d8078c0e22b6b43a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / lazaret-0.1.8-py3-none-macosx_10_12_x86_64.whl

Download URL lazaret-0.1.8-py3-none-macosx_10_12_x86_64.whl
Size 3.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0581a4cb92be2ef72ebd0a27a505703ff3e92235be6ac128cd49e23ebf3e9606
BLAKE2b-256 checksum
How to use checksums
589d30a9ce496d27bab5f3c8a6e32e0325e8afbeaa59369e517b067ba1040e1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Security for lazaret 0.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for lazaret-0.1.8.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page