<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>projects on frai</title><link>https://frai.dev/projects/</link><description>Recent content in projects on frai</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 25 Oct 2023 00:00:00 -0300</lastBuildDate><atom:link href="https://frai.dev/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>bitrev</title><link>https://frai.dev/projects/bitrev/</link><pubDate>Wed, 25 Oct 2023 00:00:00 -0300</pubDate><guid>https://frai.dev/projects/bitrev/</guid><description>&lt;p&gt;BitRev is a BitTorrent client written entirely in Rust. It is a rewrite of tornado, my earlier OCaml client, with the same goal: hand it a &lt;code&gt;.torrent&lt;/code&gt; file and get the file back, piece by piece, verified.&lt;/p&gt;&#10;&lt;h2 id="try-it"&gt;try it&lt;/h2&gt;&#10;&lt;div class="codeblock"&gt;&#10; &lt;div class="codeblock-bar"&gt;&lt;span class="codeblock-lang"&gt;bash&lt;/span&gt;&lt;button class="codeblock-copy" type="button" aria-label="copy code"&gt;copy&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/fraidev/bitrev &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; bitrev&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cargo run --release -- samples/debian-12.10.0-amd64-netinst.iso.torrent&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Then check that what came down is what you asked for:&lt;/p&gt;&#10;&lt;div class="codeblock"&gt;&#10; &lt;div class="codeblock-bar"&gt;&lt;span class="codeblock-lang"&gt;bash&lt;/span&gt;&lt;button class="codeblock-copy" type="button" aria-label="copy code"&gt;copy&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openssl dgst -sha256 debian-12.10.0-amd64-netinst.iso&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;The hash should match the one in Debian&amp;rsquo;s &lt;a href="https://cdimage.debian.org/debian-cd/current/amd64/bt-cd/SHA256SUMS"&gt;SHA256SUMS&lt;/a&gt;. Tests run with &lt;code&gt;cargo test&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>