Announcing services-flake

I’d like to announce a new open-source project from Juspay called services-flake. It allows defining and running services in your project flakes, and works on both Linux and macOS . We internally use it in various projects at Juspay.

Features

  • services-flakes is based on flake-parts, which brings the NixOS module system to flakes and that heavily simplifies the DX while editing Nix.

    • Thus, you can share your services across projects (see the Nammayatri blog post below for an example)
  • It works on both Linux and macOS and runs services natively (configured in Nix) without using emulation

  • You can define multiple services of the same type

  • We have a native testing infrastructure that you can use to test your services both locally and in CI (pure Nix builds)

We are pretty happy at how it has shaped up so far. There’s room for improvement, and we’re open to any feedback you’ve got.

See Also

17 Likes

Looks interesting.
Maybe it would make sense to unify this three projects a bit?
We have now at minimum three projects doing the same thing.

Cool! What’s the difference with Devenv?

The README has a comparison, currently only against devenv.sh.
I think another contender would be numtide/devshell, which is more open to use as a component (unlike devenv), but doesn’t provide ready-to-use services.
Arion does something similar for docker-compose instead of process-compose, but also not a library of services, and no flake-parts module yet.

2 Likes
1 Like