Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nix-community/go-nix
Elements of Nix re-implemented as Go libraries [maintainer=@flokli]
https://github.com/nix-community/go-nix
go golang nix
Last synced: about 12 hours ago
JSON representation
Elements of Nix re-implemented as Go libraries [maintainer=@flokli]
- Host: GitHub
- URL: https://github.com/nix-community/go-nix
- Owner: nix-community
- License: apache-2.0
- Created: 2019-04-26T13:56:37.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-17T11:44:14.000Z (about 2 months ago)
- Last Synced: 2024-10-29T17:25:44.257Z (about 2 months ago)
- Topics: go, golang, nix
- Language: Go
- Homepage: https://matrix.to/#/#go-nix:matrix.org
- Size: 2.76 MB
- Stars: 124
- Watchers: 7
- Forks: 13
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-nix - Nix experiments written in go
_STATUS_: experimental
This repository holds a bunch of experiments written in Go.
## `cmd/gonix`
A command line entrypoint called `gonix`, currently implementing the nar
{cat,dump-path,ls} commands.They're not meant to be 100% compatible, but are documented in the `--help`
output.## `pkg/derivation`
A parser for Nix `.drv` files.
Functions to calculate derivation paths and output hashes.## `pkg/derivation/store`
A Structure to hold derivation graphs.
## `pkg/hash`
Methods to serialize and deserialize some of the hashes used in nix code and
`.narinfo` files.## `pkg/nar`
A Nix ARchive (NAR) file Reader and Writer, with an interface similar to
`archive/tar` from the stdlib, as well as a `DumpPath` method, which
will assemble a NAR representation of a local file system path.## `pkg/nar/ls`
A parser for .ls files (providing an index for .nar files)
## `pkg/nar/narinfo`
A parser and generator for `.narinfo` files.
## `pkg/nixbase32`
An implementation of the slightly odd "base32" encoding that's used in Nix,
providing some of the functions in `encoding/base32.Encoding`.## `pkg/storepath`
A parser and regexes for Nix Store Paths.
## `pkg/storepath/references`
A Nix Store path reference scanner.
## `pkg/sqlite`
A collection of interfaces and utilities for writing to and querying various `sqlite` databases that Nix uses.
[sqlc]: https://github.com/sqlc-dev/sqlc
## `pkg/sqlite/binary_cache_v6`
[SQLC] generated code for querying the Nar Info Disk Cache, typically located at `$XDG_CACHE_HOME/nix/binary-cache-v6.sqlite`.
## `pkg/sqlite/eval_cache_v5`
[SQLC] generated code for querying an instance of the Eval Cache, typically located at `$XDG_CACHE_HOME/nix/eval-cache-v5/*.sqlite`.
## `pkg/sqlite/fetcher_cache_v2`
[SQLC] generated code for querying the fetcher cache, typically located in `$XDG_CACHE_HOME/nix/fetcher-cache-v2.sqlite`.
## `pkg/sqlite/nix_v10`
[SQLC] generated code for querying the main Nix database, typically located in `/nix/var/nix/db.sqlite`.
## `pkg/wire`
Methods to parse and produce fields used in the low-level Nix wire protocol.