ae28552b3a83b5847303ce49902e9783c58d72ca
install-wheel-rs (#34)
This PR modifies the `install-wheel-rs` (and a few other crates) to get everything playing nicely. Specifically, CI should pass, and all these crates now use workspace dependencies between one another. As part of this change, I split out the wheel name parsing into its own `wheel-filename` crate, and the compatibility tag parsing into its own `platform-tags` crate.
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
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"
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"
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.
Description