mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 05:15:00 +00:00
An extremely fast Python package and project manager, written in Rust.
|
||
---|---|---|
.cargo | ||
.github/workflows | ||
crates | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
requirements.in | ||
requirements.txt | ||
rust-toolchain.toml |
puffin
An experimental Python package manager.
Usage
To resolve a requirements.in
file:
cargo run -p puffin-cli -- compile requirements.in
To install from a resolved requirements.txt
file:
cargo run -p puffin-cli -- sync requirements.txt
Benchmarks
Resolution
To compare a warm run of puffin
to pip-compile
:
hyperfine --runs 10 --warmup 3 --prepare "rm -f /tmp/tmp.txt" \
"./target/release/puffin-cli compile requirements.txt" \
"pip-compile requirements.txt -o /tmp/tmp.txt"
To compare a cold run of puffin
to pip-compile
:
hyperfine --runs 10 --warmup 3 --prepare "rm -f /tmp/tmp.txt" \
"./target/release/puffin-cli compile requirements.txt --no-cache" \
"pip-compile requirements.txt --rebuild --pip-args '--no-cache-dir' -o /tmp/tmp.txt"
Installation
To compare a warm run of puffin
to pip
:
hyperfine --runs 10 --warmup 3 \
"./target/release/puffin-cli sync requirements.txt" \
"pip install -r requirements.txt --ignore-installed --no-deps"
To compare a cold run of puffin
to pip
:
hyperfine --runs 10 --warmup 3 \
"./target/release/puffin-cli sync requirements.txt --no-cache" \
"pip install -r requirements.txt --ignore-installed --no-cache-dir --no-deps"
License
Puffin is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Puffin by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.