Cachix founder here. Here are a few links for getting started:
- https://nix.dev Nix tutorials
- https://devenv.sh Fast, Declarative, Reproducible, and Composable Developer Environments
Let me know if you have any questions. Domen
You're more than welcome to share your wisdom about nix and everything related to it at our meetup.
> Starting with Cachix v1.3, we’re enabling multipart uploads directly to storage.
I would be interested to hear more about the design of the new system.
E.g. does it make use of Cloudflare R2 for storage? How is authentication handled?
Would be great to hear more, if you can share!
We have a Rust library that has bindings for many languages, most of which call the lib trough FFI. Is is worth investing time to set up flakes / nix builds that would be able to produce Java, dotnet, php packages for different platforms?
Also, does there exists a opensource plan for cachix?
Nix essentially relies on all its packages (and their linked dependencies) ending up under /nix/store. -- I'm not sure how easy it is to then take native shared libraries from /nix/store, and then distribute these to systems which don't have /nix/store.
Whereas, say, applications could be bundled using nix bundle. https://nixos.org/manual/nix/unstable/command-ref/new-cli/ni...
That said, I think Nix could still otherwise make a useful addition to the project. Something like https://devenv.sh/ would make setting up a development environment (especially for multiple languages) much easier.
You could set up a nix shell with all the dependencies you need to build the libraries, then build them "outside" of nix with something like `nix-shell --run`. You'd then at least have a reproducible environment for running builds.
You could alternatively build out libraries to a /nix/store with a derivation and then use nix's own tooling to ensure that the outputted files had no runtime dependencies on other nix dependencies. From there you could freely copy them from the store.
In both situation I think you could take advantage of Nix's various cross-compilation support.
I found it yesterday (via another HN post), which shows the steps needed for exactly your use case.
Here's a very easy guide using Github actions:
https://nix.dev/tutorials/continuous-integration-github-acti...
See their other tutorials:
It was super easy, and super fast. Well worth the $