3 ms·
Forget bpftune, the real headliner here is Flox. Seems like a very cool and accessible wrapper around Nix. At first glance, it appears to be similar to Fleek, b
by d3Xt3r 2y ago
Forget bpftune, the real headliner here is Flox. Seems like a very cool and accessible wrapper around Nix. At first glance, it appears to be similar to Fleek, but not so clunky and broken, at least per my initial testing. I also like that it's written in Rust.
Anyone here using it for any of your projects? Would be keen to know how you're all using it and if you've run into any issues. Personally, (outside of dev environments), I'm thinking of using this to make my all my favorite CLI tools instantly available in any new environments (fish, bat, fd, rd, dua, yazi etc). I tend to distro-hop a lot, and having all my favorite utilities at hand would be a huge timesaver.
- z_mitchell 2y agoHey, I'm actually the author and a Flox engineer. I don't use anything else for my personal projects these days, no plain Nix and no containers. One of the posts that I link the article describes an environment used to make proctrace (https://github.com/zmitchell/proctrace https://github.com/zmitchell/proctrace), which includes both Rust and `bpftrace` for the tool itself, and some Node stuff for the documentation site. For Rust development specifically it's a little more setup than without Flox because a typical `rustup` install gives you everything by default, whereas the Rust packages are distributed individually in the Flox Catalog (e.g. install `cargo` and `rustc` separately). That's due to how Nixpkgs packages Rust tools, and we'll probably provide a more ergonomic situation in the future. The only other real downside for Rust development is if you need to compile for a different target than the host machine e.g. wasm. You would need to write a flake that provides those toolchains and add that flake to your manifest. That sounds like a lot of caveats and extra work, but that's because I’m long winded and have nothing else to really complain about. I have a Rust environment that I pushed to FloxHub, and then I pull a copy of it into each new project. I only needed to set it up once (which was easy) for it to work everywhere since it's reproducible and cross-platform by default.