8000 Proof of concept: RattlerFS by chrisburr · Pull Request #1182 · conda/rattler · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Proof of concept: RattlerFS #1182

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

chrisburr
Copy link
Contributor
@chrisburr chrisburr commented Mar 24, 2025

This add a proof-of-concet FUSE based filesystem that transparently proxies the data in the package cache on demand.

Inspired by #1162, read there for some of the motivation. Unlike the overlayfs approach, I think this could work on linux, macos and even windows.

Also this is my first time writing rust so it's a bit of a mess but it shows the idea:

$ cargo run --bin rattler_fuse_test -- pixi.lock /tmp/cburr/test --env-name default

I would imagine this would normally be exposed by some kind of config setting for tools like pixi such that pixi run xxx sets up the fuse mount, runs the command and then exists. This works but it does wipe out the kernel filesystem cache every time, so there would be an argument for having a pixi mount command or similar.

The main missing functionality is:

  • Compilation of pyc files
  • Post-link scrips
  • Windows entrypoints
  • pip packages
  • The conda-meta/ directory
  • Nice-to-have: Include the offsets in the JSON files of the package cache to avoid the need to seek through files to find the instances of the prefix.

Post link scripts (and pyc files) could be implemented either with overlayfs or by making RattlerFS writable (presumably as an overlay to another directory).

.pyc files could alternatively be done by adding them to the central package cache and compiling them on demand.

And if anyone would like to take over this I'd be happy to let them 😄

@baszalmstra
Copy link
Collaborator

Very exciting!

@matthewfeickert
Copy link

@chrisburr 👋 Following up from our discussions in March, just curious if you have any plans for the future of this?

@chrisburr
Copy link
Contributor Author

In September I'll have an intern who will be working on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0