Announcing sandboxfs


Hello everyone!

I’m happy to announce that the first release of sandboxfs is available! This is my very first Rust project and crate, so please bear with me :slight_smile:

For a bit of context, sandboxfs is a FUSE file system that exposes an arbitrary view of the host’s file system. You can think of sandboxfs as an advanced version of bindfs (or mount --bind or mount_null(8) depending on your system) in which you can combine and nest files.

This project was originally written in Go but I hit a performance wall. About a year ago, I committed to learning Rust and chose to rewrite this project as an experiment because a quick prototype showed that the Rust rewrite could overcome the performance issues. The experiment proved so pleasant that I decided to just dump all old code and focus on the Rust variant alone.

The highlights of this journey are: that thanks to Rust’s strictness, I discovered a bunch of concurrency bugs in the original Go code that might have never been discovered; and that, well, Cargo is great. The lowlight is that the FUSE library I’m using is… not as mature as I’d like and doesn’t seem to be actively maintained, which is a pretty big liability. I’ll have to see how to handle this.

Anyway, without further ado, head to the announcement post for more details on what this project is about and what it intends to help with:

Thanks for reading!