5 releases (3 breaking)

0.4.0 Dec 6, 2022
0.3.0 Sep 18, 2022
0.2.0 Aug 4, 2022
0.1.1 Jun 28, 2022
0.1.0 Jun 28, 2022

#13 in #nixos

MIT license

29KB
634 lines

libnixstore

Is a library that provides simple access to your local nix store, based on c++ bindings. It mimics the already available perl bindings but also adds bindings on top, that might be useful.

Note: This project provides bindings, this makes the project automatically unsafe.

Supported nix version:

  • nix 2.8
  • nix 2.9
  • nix 2.10
  • nix 2.11

Requirements

It is only available for systems that have the nix package manager installed. To achieve this you should setup a simple shell.nix

with import <nixpkgs> { };
stdenv.mkDerivation {
  name = "xyz";
  nativeBuildInputs = [ rustc cargo gcc pkg-config ];
  buildInputs = [
    # required
    nix
    nlohmann_json
    libsodium
    boost

    # additional packages you might need
    rustfmt
    clippy
    # ...
  ];

  RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
}

Example

fn main() {
    libnixstore::init();
    println!("{}", libnixstore::get_store_dir());
}

Dependencies

~0.5–2MB
~31K SLoC