Proof of concept: RattlerFS - #1182
Conversation
|
Very exciting! |
|
@chrisburr 👋 Following up from our discussions in March, just curious if you have any plans for the future of this? |
|
In September I'll have an intern who will be working on this. |
|
For Windows I was looking into ProjFS, which provides a similar mechanism as fuse but natively for Windows. We could also do something similar with NFS, maybe. Perhaps it makes sense to set up this module in an abstract fashion where we can implement adapters for different filesystem bridges. |
Yeah abstracting this definitely makes sense! I think FUSE makes sense for the first implementation as:
In the longer term there is:
In the next week or so I'm going to open an issue with plan for implementing rattler-fs (or whatever we call this before my intern starts in September. |
|
Makes sense! Id be very happy to contribute in any way I can. |
|
Replaced by #2566 |
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:
I would imagine this would normally be exposed by some kind of config setting for tools like pixi such that
pixi run xxxsets 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 apixi mountcommand or similar.The main missing functionality is:
conda-meta/directoryPost link scripts (and pyc files) could be implemented either with overlayfs or by making RattlerFS writable (presumably as an overlay to another directory).
.pycfiles 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 😄