diff --git a/README.md b/README.md index c1eef887..31d9a7f2 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,47 @@ [docs-main]: https://prefix-dev.github.io/rattler_installs_packages [crates]: https://crates.io/crates/rattler_installs_packages [crates-badge]: https://img.shields.io/crates/v/rattler_installs_packages.svg + + +`RIP` is a library that allows the resolving and installing of Python [PyPi](https://pypi.org/) packages from Rust into a virtual environment. +It's based on our experience with building [Rattler](https://github.com/mamba-org/rattler) and aims to provide the same +experience but for PyPi instead of Conda. +It should be fast and easy to use. Like Rattler, this library is not a package manager itself but provides the low-level plumbing to be used in one. + +`RIP` is based on the quite excellent work of [posy](https://github.com/njsmith/posy) and we have tried to credit +the authors where possible. + +# Showcase + +Let's resolve the `flask` python package. +We've added a small binary to showcase this: + +![flask-install](https://github.com/prefix-dev/rip/assets/417374/75826d3e-717d-45fa-bc79-3bd0dec713d5) + +This showcases the downloading and caching of metadata from PyPi. As well as the package resolution using our solver, more on this below. +We cache everything in a local directory, so that we can re-use the metadata and don't have to download it again. + +## Features + +This is a list of current and planned features of `RIP`, the biggest are listed below: + +* [x] Downloading and aggressive caching of PyPi metadata. +* [x] Resolving of PyPi packages using [Resolvo](https://github.com/mamba-org/resolvo). +* [ ] Installation of wheel files (planned) +* [ ] Support sdist files (planned) + +More intricacies of the PyPi ecosystem need to be implemented, see our GitHub issues for more details. + + +# Solver + +We have integrated the stand-alone packaging SAT solver [Resolvo](https://github.com/mamba-org/resolvo), to resolve pypi packages. +This solver is incremental and adds packaging metadata during resolution of the SAT problem. +This feature can be enabled with the `resolvo-pypi` feature flag. + + +## Contributing 😍 + +We would love to have you contribute! +See the CONTRIBUTION.md for more info. For questions, requests or a casual chat, we are very active on our discord server. +You can [join our discord server via this link][chat-url].