diff options
| author | John Bargman | 2026-04-15 08:23:09 +0000 |
|---|---|---|
| committer | John Bargman | 2026-04-15 08:23:09 +0000 |
| commit | db6b79edbfca3ab7049af2492acd567b099559f5 (patch) | |
| tree | f54df4a8af70b057032e5af882bd6d1e6be87bf2 /docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html | |
| parent | 4f877207787edd592687f338772d95c9ec2c7038 (diff) | |
| download | nixtaml-website-main.tar nixtaml-website-main.tar.gz nixtaml-website-main.tar.bz2 nixtaml-website-main.tar.lz nixtaml-website-main.tar.xz nixtaml-website-main.tar.zst nixtaml-website-main.zip | |
agentic ai; is so; fucking cool; omgmain
Diffstat (limited to 'docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html')
| -rw-r--r-- | docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html b/docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html new file mode 100644 index 0000000..6927341 --- /dev/null +++ b/docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html @@ -0,0 +1,179 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="utf-8"> + <meta name="generator" content="Docutils 0.22.4: https://docutils.sourceforge.io/"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta content="Nixtamal, Nix, hash algorithm, BLAKE3, input pinning, dependency management" name="keywords"> + <meta content="How to pin a Codeberg repository with Nixtamal + Nix" name="description"> + <meta name="author" content="toastal"> + <meta name="dcterms.date" content="2026-03-01"> + <link rel="schema.dcterms" href="http://purl.org/dc/terms/"> + <meta content="" name="robots"> + <title> + Setting the Hash Algorithm to BLAKE3 | Nixtamal + </title> + <meta name="generator" content="soupault"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <meta http-equiv="X-XSS-Protection" content="1;mode=block"> + <meta http-equiv="X-Content-Type-Options" content="nosniff"> + <meta http-equiv="Content-Security-Policy" content="default-src 'self';"> + <meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin"> + <meta name="theme" content="crimson"> + <link rel="icon" type="image/svg+xml" href="/asset/_hashed/nixtamal/image/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg"> + <link rel="stylesheet" href="/asset/_hashed/nixtamal/style/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css"> + <link rel="stylesheet" href="/asset/_hashed/sugilite256/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css"> + <link rel="stylesheet" href="/asset/_hashed/sugilite256/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css" media="(prefers-color-scheme: dark)"> + <link rel="stylesheet" href="/asset/_hashed/nixtamal/style/main-lmdn1rci18371fnrcqrwga636ip08irz.css"> + <link rel="author" href="/humans.txt"> + </head> + <body> + <div id="DocWrapper" class="DocWrapper"> + <div class="Banner-wrapper"> + <header id="Banner" class="Banner"> + <pre role="none" class="Banner-flair">âââ»+â» â±ââ³âââââ³ââââ» +ââââââââ¹ââ¹â£â«ââââ£â«â +â¹âââ¹â± â¹ â¹ â¹â¹â¹ â¹â¹â¹ââ</pre> + <a href="/" class="SiteLogo" title="Home"> + <svg viewbox="0 0 79.375 27.099415" class="SiteLogo-image" role="img" aria-labelledby="SiteLogo-desc"> + <use href="/asset/_hashed/nixtamal/image/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg#logo"> + <desc id="SiteLogo-desc"> + Home + </desc> + </use> + </svg> + </a> + <nav id="Navigation" class="Banner-navigation Navigation Navigation--banner" aria-expanded="true"> + <a class="Navigation-item" href="/install/">Install</a> + <a class="Navigation-item" href="/manpage/">Manpage</a> + <a class="Navigation-item" href="/changelog/">Changelog</a> + <a class="Navigation-item" href="/roadmap/">Roadmap</a> + <a class="Navigation-item" href="/cookbook/">Cookbook</a> + <a class="Navigation-item" href="/real-world-showcase/">Real-world showcase</a> + + <a class="Navigation-item" href="/community/">Community</a> + <a class="Navigation-item" href="/faqs/"><abbr title="frequently asked questions">FAQs</abbr></a> + <a class="Navigation-item" href="/funding/">Funding</a> + </nav> + </header> + <hr class="Banner-separator"> + </div> + <main id="Main" class="Main"> + <article id="Article" class="Article Stack"> + <header class="Headline Article-headline"> + <h1 itemprop="headline" class="title"> + Setting the Hash Algorithm to BLAKE3 + </h1> + </header> + <section itemprop="articleBody" id="Content" class="Content Article-body"> + <p> + Nix supports a number of hash algorithms: + </p> + <ul class="simple"> + <li> + <p> + <del> + MD5 (deprecated) + </del> + </p> + </li> + <li> + <p> + <del> + SHA-1 (deprecated) + </del> + </p> + </li> + <li> + <p> + SHA-256 (default) + </p> + </li> + <li> + <p> + SHA-512 + </p> + </li> + <li> + <p> + BLAKE3 (experimental) + </p> + </li> + </ul> + <p> + BLAKE3 support requires Nix version 2.31+ & enabling the <a class="reference external" href="https://nix.dev/manual/nix/2.31/development/experimental-features.html#xp-feature-blake3-hashes"><span class="docutils literal"><span class="pre">blake3-hashes</span></span> experimental feature</a>. +This algorithm is very good with tree-like structuresâââlike the file system, which is what Nix is often hashing. +BLAKE3 offers faster hashing & is more secure which makes it a good choice for new setups that can afford to try it out. +At the time of writing, Nix flakes does not & cannot support changing the hash algorithm away from SHA-256 for input pinning requiring an input pinner like <a class="reference external" href="https://nixtamal.toast.al/"><cite>Nixtamal</cite></a> to automate it. + </p> + <section id="how-to-use-the-blake3-hash-algorithm-with-nix-nixtamal"> + <h2> + How to use the BLAKE3 hash algorithm with Nix + Nixtamal + </h2> + <p> + Letâs show the way using the <a class="reference external" href="https://gitlab.com/whisperfish/whisperfish"><cite>WhisperFish</cite></a> repositoryâs latest commit, but you can use any input kind. + </p> + <p class="rubric"> + Using BLAKE3 on a single input + </p> + <pre class="code kdl literal-block"><span class="c1">// manifest.kdl +</span><span class="nl">inputs</span><span class="w"> </span><span class="o">{</span><span class="nl"> +</span><span class="nl"> whisperfish</span><span class="w"> </span><span class="o">{</span><span class="nl"> +</span><span class="nl"> archive</span><span class="w"> </span><span class="o">{</span><span class="nl"> +</span><span class="nl"> url</span><span class="w"> </span><span class="s">"https://gitlab.com/whisperfish/whisperfish/-/archive/{{fresh-value}}/whisperfish-{{fresh-value}}.tar.bz2"</span><span class="w"> +</span><span class="w"> </span><span class="o">}</span><span class="w"> +</span><span class="nl"> hash</span><span class="w"> </span><span class="na">algorithm=</span><span class="s">BLAKE3</span><span class="w"> +</span><span class="w"> </span><span class="o">}</span><span class="w"> +</span><span class="nl"> fresh-cmd</span><span class="w"> </span><span class="o">{</span><span class="nl"> +</span><span class="nl"> $</span><span class="w"> </span><span class="s">git</span><span class="w"> </span><span class="s">ls-remote</span><span class="w"> </span><span class="s">--branches</span><span class="w"> </span><span class="s">main</span><span class="w"> </span><span class="s">"https://gitlab.com/whisperfish/whisperfish.git"</span><span class="w"> +</span><span class="nl"> |</span><span class="w"> </span><span class="s">cut</span><span class="w"> </span><span class="s">-f1</span><span class="w"> +</span><span class="w"> </span><span class="o">}</span><span class="w"> +</span><span class="o">}</span></pre> + <p> + Additionally, you can set BLAKE3 to be the default in the manifest fileâs top level. + </p> + <p class="rubric"> + Project-wide default + </p> + <pre class="code kdl literal-block"><span class="c1">// manifest.kdl +</span><span class="nl">version</span><span class="w"> </span><span class="s">"1.0.0"</span><span class="w"> +</span><span class="nl">default-hash-algorithm</span><span class="w"> </span><span class="s">BLAKE3</span></pre> + </section> + </section> + </article> + </main> + <footer id="Footer" class="Footer"> + <p> + Site made with <a href="https://nixos.org">Nix</a> (<abbr title="dependency">dep</abbr> management), <a href="https://nickel-lang.org">Nickel</a> (<abbr title="configuration">config</abbr>), <a href="https://soupault.net">Soupault</a> (<abbr title="static site generator">SSG</abbr>), <a href="https://docutils.sourceforge.io">Docutils</a> (<abbr title="reStructuredText">rST</abbr> rendering), <a href="https://mandoc.bsd.lv">mandoc</a> (manpage conversion), & <a href="https://hub.darcs.net/toastal/sugilite256">sugilite256</a> (color scheme). + </p> + <small class="Footer-copyright"> + © 2025â2026 <span itemtype="https://schema.org/Person" itemscope=""><a itemprop="url" href="https://toast.al"><span itemprop="name">toastal</span></a></span>. + © 2026 Nixtamal contributors. + Some rights reserved. + Except where otherwise noted, the content on this website is licensed under <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC-BY-SA-4.0</abbr>. + Citations must attribute the workâs writer/maker & include a hyperlink to this website (or rather the work itself). + Yes, these rules/clauses apply to <abbr title="large language models">LLM</abbr>s & <abbr title="artificial intellegence">AI</abbr> assistants too. + </small> + <div id="Maker" itemscope="" itemtype="https://schema.org/Person"> + <link itemprop="url" href="https://toast.al/"> + <meta itemprop="name" content="toastal"> + <meta itemprop="foundingDate" content="2025"> + <link itemprop="logo" href="https://nixtamal.toast.al/asset/_hashed/nixtamal/image/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg"> + <div itemprop="address" itemscope="" itemtype="https://schema.org/PostalAddress"> + <meta itemprop="addressCountry" content="TH"> + </div> + <link itemprop="sameAs" href="https://keybase.io/toastal"> + <link itemprop="sameAs" href="https://liberapay.com/toastal/"> + <link itemprop="sameAs" href="https://types.pl/@toastal"> + <link itemprop="sameAs" href="https://hub.darcs.net/toastal"> + <link itemprop="sameAs" href="https://smeder.ee/~toastal"> + <link itemprop="sameAs" href="https://nest.pijul.com/toastal"> + <link itemprop="sameAs" href="https://codeberg.org/toastal/"> + <link itemprop="sameAs" href="https://git.sr.ht/~toastal/"> + <link itemprop="sameAs" href="https://gitlab.com/toastal"> + <link itemprop="sameAs" href="https://github.com/toastal"> + </div> + </footer> + </div> +</body> +</html> |
