Skip to content

Commit

Permalink
feat: add README (#17)
Browse files Browse the repository at this point in the history
Added a new README.
  • Loading branch information
tdejager authored Sep 26, 2023
1 parent 83f4751 commit e60acb8
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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].

0 comments on commit e60acb8

Please sign in to comment.