From af6e44b116f643bdd21a92d0760188e3389f3285 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 14 May 2025 22:21:01 +0200 Subject: [PATCH] doc/rl-next: Add c-api --- doc/manual/rl-next/c-api.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 doc/manual/rl-next/c-api.md diff --git a/doc/manual/rl-next/c-api.md b/doc/manual/rl-next/c-api.md new file mode 100644 index 000000000..3b2abfda5 --- /dev/null +++ b/doc/manual/rl-next/c-api.md @@ -0,0 +1,19 @@ +--- +synopsis: "C API: functions for locking and loading a flake" +issues: 10435 +prs: [12877, 13098] +--- + +This release adds functions to the C API for handling the loading of flakes. Previously, this had to be worked around by using `builtins.getFlake`. +C API consumers and language bindings now have access to basic locking functionality. + +It does not expose the full locking API, so that the implementation can evolve more freely. +Locking is controlled with the functions, which cover the common use cases for consuming a flake: +- `nix_flake_lock_flags_set_mode_check` +- `nix_flake_lock_flags_set_mode_virtual` +- `nix_flake_lock_flags_set_mode_write_as_needed` +- `nix_flake_lock_flags_add_input_override`, which also enables `virtual` + +This change also introduces the new `nix-fetchers-c` library, whose single purpose for now is to manage the (`nix.conf`) settings for the built-in fetchers. + +More details can be found in the [C API documentation](@docroot@/c-api.md).