An Elixir Library to create + unpack Nix Archives. Only directly serializes + deserializes, with no intermediate state that can be inspected (PRs welcome :)).
# Deserialize
ExNar.deserialize! (File.read!("/path/to/.nar"), "")
#=> :ok
# Serialize
ExNar.serialize!("/path/to/serialize")
#=> <<13,0,0,0,...>>
# Serialize byte stream
ExNar.serialize!("hello world", :bytestream)
#=> <<13,0,0,0,...>>
If available in Hex, the package can be installed
by adding ex_nar
to your list of dependencies in mix.exs
:
def deps do
[
{:ex_nar, "~> 0.2.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ex_nar.
Thanks to Eelco Dolstra, for the specification The Purely Functional Software Deployment Model, PG 93, Figure 5.2