<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Radu Marias</title>
    <description>The latest articles on DEV Community by Radu Marias (@xorio42).</description>
    <link>https://dev.to/xorio42</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1586788%2F372cbf54-eba0-41ce-95e8-27a22a7b11cf.jpg</url>
      <title>DEV Community: Radu Marias</title>
      <link>https://dev.to/xorio42</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xorio42"/>
    <language>en</language>
    <item>
      <title>From a bash status line to a Rust binary that spawns in 0.34 ms — and why ~99% of it didn't matter</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Fri, 05 Jun 2026 00:08:52 +0000</pubDate>
      <link>https://dev.to/xorio42/from-a-bash-status-line-to-a-rust-binary-that-spawns-in-034-ms-and-why-99-of-it-didnt-matter-5eb1</link>
      <guid>https://dev.to/xorio42/from-a-bash-status-line-to-a-rust-binary-that-spawns-in-034-ms-and-why-99-of-it-didnt-matter-5eb1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Up front, to be fair: this article was written with Claude Code (AI) — as were the code, the benchmarks, and the charts. The voice is modeled on my own past, non-AI articles; the model followed a &lt;a href="https://github.com/radumarias/claude-code-statusline/blob/main/docs/style-guide.md" rel="noopener noreferrer"&gt;style guide&lt;/a&gt; reverse-engineered from them. My human writing: &lt;a href="https://medium.com/@xorio42" rel="noopener noreferrer"&gt;medium.com/@xorio42&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf58qdse4fg7shhjwplu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf58qdse4fg7shhjwplu.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;First, for anyone who doesn't use Claude Code: it's an AI coding assistant that runs in your terminal, and a &lt;strong&gt;status line&lt;/strong&gt; is the little bar along the bottom of it. Mine shows, at a glance, which model you're on, how much of the context window you've burned, how much of your usage budget is left, and what the session has cost — a tiny dashboard so you're not flying blind. This is the story of making that little program as fast as I could.&lt;/p&gt;

&lt;p&gt;It all started by accident. I stumbled on the &lt;code&gt;/statusline&lt;/code&gt; command inside Claude Code one day and had no idea what it was about, so I went looking. I read the &lt;a href="https://code.claude.com/docs/en/statusline" rel="noopener noreferrer"&gt;docs&lt;/a&gt;, and right there at the top is an example &lt;strong&gt;status line&lt;/strong&gt; — two lines, model and folder and a little context — and it looked really nice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feczz1zgkgimb1r98fedx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feczz1zgkgimb1r98fedx.png" alt="Claude Code's default two-line status line" width="776" height="212"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Code's default two-line status line — the docs example that started it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And then I got curious, the way you do: could I make something similar, but &lt;strong&gt;one line&lt;/strong&gt; and more compact? A status line reads a JSON envelope on stdin, prints one colored line, and exits. That's it. So I tried, and ended up with something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Opus] high  [my-project]  ctx ██░░░ 42%  5h ████░ 85% ↻2h30m  wk 10%  1h16m  $11.55
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One honest aside, because it's kind of the whole point of a small experiment like this: all of it was vibe coding. I do &lt;strong&gt;not&lt;/strong&gt; generally encourage that — but for experiments, PoCs, and little learning projects, it's great, and this was exactly that.&lt;/p&gt;

&lt;p&gt;Then a &lt;strong&gt;friend&lt;/strong&gt; asked me to send him the config, so I quickly spun up a GitHub repo with Claude Code to share it. Which, side note, is lovely — Claude Code's install-by-prompt: you hand it a prompt plus a repo and it installs everything for you, no copy-paste dance. Neat.&lt;/p&gt;

&lt;p&gt;But then &lt;strong&gt;another friend&lt;/strong&gt; in the same group looked at it and said it was too slow :)) — and this was when it ran in ~5–15 ms. So I rewrote it in &lt;strong&gt;Rust&lt;/strong&gt;. When it got down to ~1 ms, that same friend said: fast, you don't even feel it — but not the fastest it can be. So I said "hold my beer," and went down one of the most instructive rabbit holes I've been in for a while.&lt;/p&gt;

&lt;p&gt;Because here's the thing — the status line runs &lt;em&gt;constantly&lt;/em&gt;, after every message and on an idle timer, so you pay that startup cost over and over. And that turned it into a really nice learning project around one question: how low can a process spawn go? I learned a lot here, so I wanted to write it down. Let the journey begin.&lt;/p&gt;

&lt;p&gt;And here's the part that frames everything below: the actual logic runs in &lt;strong&gt;~6 microseconds&lt;/strong&gt;. ~99% of every run is the OS spawning a process. Almost everything below is the story of optimizing &lt;em&gt;that&lt;/em&gt; — and of a benchmark that turned out to be the biggest bug of all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bash: you have to think in forks
&lt;/h2&gt;

&lt;p&gt;The original script forked &lt;code&gt;jq&lt;/code&gt; once per field — 12 launches, ~48 ms out of ~73 ms total. &lt;em&gt;Aargh.&lt;/em&gt; So the first realization was that the real currency here is &lt;strong&gt;forks&lt;/strong&gt;, not lines of code.&lt;/p&gt;

&lt;p&gt;First win: &lt;strong&gt;one &lt;code&gt;jq&lt;/code&gt; call&lt;/strong&gt; for all fields, joined with an ASCII Unit Separator (&lt;code&gt;0x1f&lt;/code&gt;) — not a tab, because the shell's &lt;code&gt;IFS&lt;/code&gt; collapses tabs and would silently drop empty fields and shift every later column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;$'&lt;/span&gt;&lt;span class="se"&gt;\x&lt;/span&gt;&lt;span class="s1"&gt;1f'&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; model effort &lt;span class="nb"&gt;dir &lt;/span&gt;ctx five_h ... &amp;lt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;
  jq &lt;span class="nt"&gt;-rj&lt;/span&gt; &lt;span class="s1"&gt;'[.model.display_name, .effort.level, .workspace.current_dir, ...]
          | join("")'&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$input&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then &lt;strong&gt;replace every other subprocess with a builtin&lt;/strong&gt;. This is where bash is actually &lt;code&gt;performant&lt;/code&gt;, if you let it be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;folder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;##*/&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;            &lt;span class="c"&gt;# not: basename "$dir"&lt;/span&gt;
&lt;span class="nv"&gt;now&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'%(%s)T'&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;    &lt;span class="c"&gt;# not: date +%s&lt;/span&gt;
&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; cost &lt;span class="s1"&gt;'%.2f'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$raw&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="c"&gt;# not: echo | awk&lt;/span&gt;
&lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; &lt;span class="nt"&gt;-rd&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt; input       &lt;span class="c"&gt;# not: input=$(cat)   ← the stdin read, fork-free&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One gotcha that cost me time: &lt;code&gt;input=$(&amp;lt;/dev/stdin)&lt;/code&gt; reads &lt;strong&gt;empty&lt;/strong&gt; under Claude Code's stdin piping and blanks every field. So you have to test against the real pipe, not a synthetic one. I learned that the hard way :)&lt;/p&gt;

&lt;p&gt;Result: &lt;strong&gt;~6 ms with 1 fork.&lt;/strong&gt; And a session-keyed cache that reprints the last line &lt;em&gt;before&lt;/em&gt; the &lt;code&gt;jq&lt;/code&gt; parse even runs: &lt;strong&gt;~1.8 ms, 0 forks.&lt;/strong&gt; Already pretty good for a &lt;code&gt;simple&lt;/code&gt; script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33d6a915efzu7r4k6yuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33d6a915efzu7r4k6yuo.png" alt="the one-line status line" width="799" height="111"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;What I built: one compact line — model, folder, context + 5-hour usage bars, weekly quota, elapsed time, and cost.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Rust: meeting the wall
&lt;/h2&gt;

&lt;p&gt;Then I thought, how about a native binary. I rewrote it in &lt;strong&gt;Rust&lt;/strong&gt; — a hand-written recursive-descent JSON parser, &lt;strong&gt;zero external crates&lt;/strong&gt; (offline build, tiny binary), output byte-identical to the script. A &lt;code&gt;parity-check.sh&lt;/code&gt; diffs both across 14 envelopes so they can never drift apart. The render function is pure — &lt;code&gt;render(input, now)&lt;/code&gt; with the clock injected — so it's deterministic and testable. I really appreciate the &lt;code&gt;compiler&lt;/code&gt; here; once it's green, you mostly trust it. After you understand why it lets you do things, you start to think that's the &lt;strong&gt;correct&lt;/strong&gt; way to do them.&lt;/p&gt;

&lt;p&gt;So I measured the logic with a million-iteration micro-bench, fully expecting to find something to optimize:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;parse JSON               ~2933 ns
render_parsed (format)   ~2373 ns
render (parse+format)    ~5696 ns   ← the whole logic: ~0.006 ms
render_bar (one bar)      ~309 ns
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;~6 µs.&lt;/strong&gt; The render you actually see on screen is rounding error. ~99% of every invocation is process spawn. And this is the lesson that reframed the whole project for me: you can't optimize code that isn't the bottleneck. An empty &lt;code&gt;fn main(){}&lt;/code&gt; spawns just as fast as mine.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2d9oki0ztzr8qzetxmpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2d9oki0ztzr8qzetxmpq.png" alt="Where the time actually goes" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  So optimize &lt;em&gt;being a process&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;If the code isn't the cost, the levers all live in the spawn path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Static linking&lt;/strong&gt; — no &lt;code&gt;ld.so&lt;/code&gt; mapping shared libs at launch, ~25–35% off spawn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="c"&gt;# .cargo/config.toml — scoped to Linux (macOS has no static libc)&lt;/span&gt;
&lt;span class="nn"&gt;[target.'cfg(target_os = "linux")']&lt;/span&gt;
&lt;span class="py"&gt;rustflags&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"-C"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="py"&gt;"target-feature&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="err"&gt;+crt-static&lt;/span&gt;&lt;span class="s"&gt;"]&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Skip the runtime preamble&lt;/strong&gt; with &lt;code&gt;#![no_main]&lt;/code&gt; and a C &lt;code&gt;main&lt;/code&gt; — this bypasses std's &lt;code&gt;lang_start&lt;/code&gt; (the stack-overflow guard + the SIGPIPE handler):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nd"&gt;#![no_main]&lt;/span&gt;

&lt;span class="nd"&gt;#[no_mangle]&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="s"&gt;"C"&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_argc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;i32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_argv&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="nb"&gt;u8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;i32&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// read stdin → render → write → flush explicitly (no lang_start to do it for us)&lt;/span&gt;
    &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is safe because the output line is &lt;code&gt;&amp;lt; PIPE_BUF&lt;/code&gt;, so the single &lt;code&gt;write&lt;/code&gt; is atomic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I let 89 agents argue about it
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fglk9fs4don35izgo2d3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fglk9fs4don35izgo2d3s.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point I didn't want to keep &lt;em&gt;guessing&lt;/em&gt; what to optimize. So I ran a structured multi-agent brainstorm — an "ultracode" workflow where some agents propose optimizations and &lt;em&gt;other&lt;/em&gt; agents adversarially refute each one, and everyone has to actually build and measure. Actually I ran &lt;strong&gt;three&lt;/strong&gt; of these adversarial brainstorms in parallel, for variety and so they'd cross-check each other — the ~89 agents and 169 ideas below are the totals across all three. I ran it with Claude Code's new &lt;a href="https://claude.com/blog/introducing-dynamic-workflows-in-claude-code" rel="noopener noreferrer"&gt;dynamic workflows&lt;/a&gt; (see the &lt;a href="https://x.com/trq212/status/2061907337154367865" rel="noopener noreferrer"&gt;launch post&lt;/a&gt; too) — which honestly was the perfect tool for this, because the brainstorm &lt;em&gt;is&lt;/em&gt; one of those patterns: fan out a lot of agents to generate, point adversarial agents at the ideas to refute them, then generate-and-filter down to what survives.&lt;/p&gt;

&lt;p&gt;Here's the actual prompt I kicked it off with — typos and all, I'm leaving it exactly as I typed it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;/effort ultracode
&lt;span class="p"&gt;-&lt;/span&gt; analyze the whole flow for native and find ways to optimize even more, use also dynamic workflow
&lt;span class="p"&gt;-&lt;/span&gt; organize a brainstorming session between muliple agents, lunch several agents to emit ideas and other to refute them
&lt;span class="p"&gt;-&lt;/span&gt; most of the agents have them use Opus latest model but make some agents, randomly like 10-30% of them, use Sonnet latest model, for variety, and also have different effort levels selected for them also randomly between all agents like [high, xhigh, "ultracode", max]
&lt;span class="p"&gt;-&lt;/span&gt; run this for 30m and show me the results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjq27b3zyckaua1uaobqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjq27b3zyckaua1uaobqu.png" alt="Six Workflow Patterns" width="800" height="445"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The six dynamic-workflow patterns (credit: @trq212). The brainstorm leaned on Fanout-and-Synthesize, Generate-and-Filter, and Adversarial Verification.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;89 agents&lt;/strong&gt;, mixed models and effort levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Brainstorm&lt;/strong&gt; — 120 ideas across 14 lenses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debate&lt;/strong&gt; — +49 more, 6 angles → 169 raw ideas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Curate&lt;/strong&gt; — down to 22 canonical candidates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refute&lt;/strong&gt; — each judged through 3 adversarial lenses (impact / constraint / measurability), &lt;strong&gt;default-refuted&lt;/strong&gt; — an idea only survives if a majority of lenses fail to kill it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agents didn't reason in the abstract — they built real musl binaries, an empty-&lt;code&gt;main&lt;/code&gt; floor, ran &lt;code&gt;readelf&lt;/code&gt;, &lt;code&gt;gdb&lt;/code&gt; catchpoints, &lt;code&gt;getrusage&lt;/code&gt; fault counts. Neat to watch, honestly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: 22 canonical → 6 kept, 16 rejected. Exactly one — musl — moved measurable wall-clock.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Switch to musl.&lt;/strong&gt; Static glibc bloated the binary to 1.07 MB; musl brings it down to 431 KB with far fewer startup relocations:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;build&lt;/th&gt;
&lt;th&gt;size&lt;/th&gt;
&lt;th&gt;warm spawn (min)&lt;/th&gt;
&lt;th&gt;self-relocs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;dynamic PIE&lt;/td&gt;
&lt;td&gt;~334 KB&lt;/td&gt;
&lt;td&gt;~0.57 ms&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;static glibc&lt;/td&gt;
&lt;td&gt;~1.07 MB&lt;/td&gt;
&lt;td&gt;~0.38 ms&lt;/td&gt;
&lt;td&gt;1475 + 23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;static musl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~431 KB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~0.34 ms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;400 + 0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rustup target add x86_64-unknown-linux-musl
cargo build &lt;span class="nt"&gt;--release&lt;/span&gt; &lt;span class="nt"&gt;--target&lt;/span&gt; x86_64-unknown-linux-musl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;That's &lt;strong&gt;2.5× smaller&lt;/strong&gt;, relocs 1475→400 and 23→0. The warm-spawn gain is real but small — only ~0.04–0.09 ms — so footprint is the bigger win. The one place size actually matters is the &lt;strong&gt;cold&lt;/strong&gt; page-cache regime: musl pays &lt;strong&gt;+0.50 ms&lt;/strong&gt; there vs glibc's &lt;strong&gt;+0.78 ms&lt;/strong&gt;, faulting ~3× fewer pages.&lt;/p&gt;

&lt;p&gt;And one last &lt;code&gt;execve&lt;/code&gt; detail that's easy to miss: &lt;strong&gt;use an absolute path&lt;/strong&gt; in &lt;code&gt;settings.json&lt;/code&gt;. A &lt;code&gt;~&lt;/code&gt;-prefixed command isn't &lt;code&gt;execve&lt;/code&gt;-able, so it gets routed through a &lt;code&gt;/bin/sh&lt;/code&gt; wrapper — that's ~0.7–0.9 ms of pure bash startup you pay every single call.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json-doc"&gt;&lt;code&gt;&lt;span class="c1"&gt;// settings.json — write the absolute path, NOT ~/.claude/...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/home/you/.claude/claude-statusline"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dead-ends are the real value here, so I'm keeping the whole ledger so nobody re-proposes them without new evidence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daemon/socket front-end&lt;/strong&gt; (keep it resident) — &lt;em&gt;net regression&lt;/em&gt;, ~2.2× slower (7.4 ms vs 3.3 ms), because Claude Code forks a client per call anyway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;taskset&lt;/code&gt; core-pinning&lt;/strong&gt; (to reduce variance) — made p50 &lt;strong&gt;~10× worse&lt;/strong&gt; on a hybrid CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;target-cpu=native&lt;/code&gt; / PGO / &lt;code&gt;build-std&lt;/code&gt;&lt;/strong&gt; — these only recompile the 6 µs logic; they can't touch glibc's prebuilt resolvers, PGO breaks the offline build, and &lt;code&gt;build-std&lt;/code&gt; is nightly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static no-PIE, strip &lt;code&gt;.eh_frame&lt;/code&gt;, &lt;code&gt;-z norelro&lt;/code&gt;, self-provided &lt;code&gt;memcpy&lt;/code&gt;&lt;/strong&gt; — sub-noise, or already subsumed by musl.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic micro-opts&lt;/strong&gt; (preallocated &lt;code&gt;String&lt;/code&gt;, zero-copy &lt;code&gt;Cow&lt;/code&gt; parser, hand-rolled &lt;code&gt;itoa&lt;/code&gt;) — all sub-µs, and &lt;code&gt;itoa&lt;/code&gt;/integer-cents also &lt;strong&gt;broke output parity&lt;/strong&gt; (round-half-away vs &lt;code&gt;%.2f&lt;/code&gt;'s round-half-to-even). Not worth it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then freeze the win so it can't quietly regress:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# parity-check.sh hard-fails if the binary ever links dynamically&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;file &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-qi&lt;/span&gt; &lt;span class="s1"&gt;'dynamically linked'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"FAIL: &lt;/span&gt;&lt;span class="nv"&gt;$BIN&lt;/span&gt;&lt;span class="s2"&gt; is dynamically linked (expected static)."&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&amp;amp;2
  &lt;span class="nb"&gt;exit &lt;/span&gt;1
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  But the biggest bug was the benchmark itself
&lt;/h2&gt;

&lt;p&gt;Here's the part I'm a little embarrassed about, but it's the most useful thing I learned, so I'll leave it in. I had been reporting &lt;strong&gt;~1.1 ms&lt;/strong&gt; warm spawn for a long time. The harness timed each sample like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;now_us&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ENV&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nv"&gt;e&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;now_us&lt;span class="si"&gt;)&lt;/span&gt;   &lt;span class="c"&gt;# ← two $(...) = two forks&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each &lt;code&gt;$(...)&lt;/code&gt; forks a subshell. &lt;strong&gt;Two per iteration.&lt;/strong&gt; That phantom ~0.8–1.7 ms made &lt;code&gt;/bin/true&lt;/code&gt; and my real binary indistinguishable — I was measuring the ruler, not the thing. The fix is to capture &lt;code&gt;$EPOCHREALTIME&lt;/code&gt; with no fork at all:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; s &lt;span class="s1"&gt;'%s'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$EPOCHREALTIME&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ENV&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; e &lt;span class="s1"&gt;'%s'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$EPOCHREALTIME&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;True warm spawn: &lt;strong&gt;~0.4 ms.&lt;/strong&gt; So the biggest single correction in this whole project wasn't a speedup — the benchmark was just overcounting.&lt;/p&gt;

&lt;p&gt;One bonus trap: &lt;code&gt;/usr/bin/true&lt;/code&gt; is &lt;strong&gt;dynamically linked&lt;/strong&gt;, so it actually spawns &lt;em&gt;slower&lt;/em&gt; than my static binary, which gave me confusing negative "binary − baseline" deltas. The honest baseline is a same-profile empty-&lt;code&gt;main&lt;/code&gt; Rust binary (&lt;code&gt;floor.rs&lt;/code&gt;) — that's what attributes spawn vs logic correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest conclusion
&lt;/h2&gt;

&lt;p&gt;So where did the &lt;code&gt;journey&lt;/code&gt; land? ~0.34 ms warm spawn, zero forks, under 1 MB. And — I have to be honest — it doesn't really matter. A once-a-second status line is imperceptible whether it's 6 ms or 0.3 ms. &lt;strong&gt;The native edge is footprint, not felt speed.&lt;/strong&gt; So the bash script stays the default (it needs only &lt;code&gt;jq&lt;/code&gt; + bash, and it's trivially auditable); the native binary is an opt-in for people who want a tiny, zero-fork footprint and already have &lt;code&gt;cargo&lt;/code&gt;. Both render byte-identically.&lt;/p&gt;

&lt;p&gt;Three things I'm taking with me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Measure the right layer.&lt;/strong&gt; ~99% of the cost was spawn; the code was never the bottleneck.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust your benchmark last.&lt;/strong&gt; Validate the ruler before the thing you measure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adversarial review beats brainstorming.&lt;/strong&gt; 169 ideas were cheap; curating them to 22, then refuting all but 6 of those — with evidence — was the value.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't get me wrong — none of this is software craftsmanship taken to perfection, it's just a small tool. But it taught me a lot about where time actually goes when you spawn a process, and that's the kind of thing &lt;strong&gt;Rust&lt;/strong&gt; keeps quietly teaching me. Learning it was one of the best decisions I made, and projects like this are how I keep learning :)&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd try next
&lt;/h2&gt;

&lt;p&gt;One honest limitation I keep coming back to: the refute stage stopped at &lt;em&gt;argument&lt;/em&gt;. The agents judged each candidate optimization on paper — a verdict, not a measurement. That's already a big step up from a plain brainstorm, but hey, the natural next step is to let every surviving idea actually get &lt;strong&gt;built and benchmarked for real&lt;/strong&gt;, in isolation, and then pick the winner from measured data instead of from a verdict.&lt;/p&gt;

&lt;p&gt;And the nice thing is dynamic workflows can already do this. You can give each agent its own git &lt;strong&gt;worktree&lt;/strong&gt; (&lt;code&gt;isolation: worktree&lt;/code&gt;), so a refute/implement stage spins up one worktree per candidate, implements that idea there, runs the benchmark &lt;em&gt;in that worktree&lt;/em&gt;, and reports its numbers back — and the final selection is made from the real benchmark data across all the worktrees. I would imagine that's a much more honest funnel than the one I ran. You do &lt;strong&gt;not&lt;/strong&gt; need a separate "agent teams" feature for this — you can just instruct the dynamic workflow to do exactly that in the prompt.&lt;/p&gt;

&lt;p&gt;This is the part I find genuinely exciting. Claude Code has been shipping a whole little family of these — subagents, an agent view, &lt;a href="https://code.claude.com/docs/en/agent-teams" rel="noopener noreferrer"&gt;agent teams&lt;/a&gt;, programmatic MCP/API/CLI calls (similar in spirit to dynamic workflows but aimed at MCP/APIs/CLI, and at generating CLIs), and now dynamic workflows — which is basically agent logic running &lt;em&gt;inside&lt;/em&gt; the agent. That last one is the powerful one: it's what let me express the fan-out → refute → curate dance in the first place, and it could express this worktree-benchmark-select loop just as naturally.&lt;/p&gt;

&lt;p&gt;Full source, the honest harness, and the whole rejected-ideas ledger are in &lt;a href="https://github.com/radumarias/claude-code-statusline" rel="noopener noreferrer"&gt;the repo&lt;/a&gt; — come look, fork it, break it, send a PR. And if you've got a lever that beats the &lt;code&gt;execve&lt;/code&gt; floor, plese show me the measurement :)&lt;/p&gt;

&lt;p&gt;And one more time — thank you to the friends in that little group. To the one who asked for the config in the first place, and especially to the one who kept heckling the speed: "too slow," then "fast, but not the fastest it can be." That ribbing is the whole reason any of this exists — it kept nudging me one rabbit hole deeper, and it turned into one of the most fun things I've learned in a while. Thank you :)&lt;/p&gt;

&lt;p&gt;Let the journey begin. To be continued…&lt;/p&gt;

</description>
      <category>rust</category>
      <category>performance</category>
      <category>bash</category>
      <category>cli</category>
    </item>
    <item>
      <title>AI agents and MCPs beauty</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Wed, 24 Sep 2025 11:43:47 +0000</pubDate>
      <link>https://dev.to/xorio42/ai-agents-and-mcps-beauty-3gl2</link>
      <guid>https://dev.to/xorio42/ai-agents-and-mcps-beauty-3gl2</guid>
      <description>&lt;p&gt;After playing a bit with AI agents like Claude Code, Codex, Gemini-cli, warp terminal (warp. dev), and MCP, I feel that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LLMs are the brain (but alone, they cannot interact with the outside world)&lt;/li&gt;
&lt;li&gt;MCP servers are the tools (that help the brain interact with the world)&lt;/li&gt;
&lt;li&gt;Agents are the hands (that link the brain with the tools)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P.S.&lt;/p&gt;

&lt;p&gt;Don't get me wrong, I don't think we're there, just yet, that AI is even remotely close to replacing us (although in some aspects it is), or agree with this hype on AI, where people are giving it way too much credit.&lt;/p&gt;

&lt;p&gt;However, it's wise to use it for what it's good at, but not to have absurd expectations when it's not yet good enough.&lt;br&gt;
Because it's here to stay, just like the Internet, and it can significantly enhance us.&lt;/p&gt;

&lt;p&gt;And we should not forget:&lt;br&gt;
"It is not the strongest of the species that survives,&lt;br&gt;
not the most intelligent that survives.&lt;br&gt;
It is the one that is the most adaptable to change."&lt;/p&gt;

&lt;p&gt;Humans are best at (compared to other animals):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;making tools&lt;/li&gt;
&lt;li&gt;collaboration
The internet and its services are the best collaboration medium, and AI models are the most effective tools.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>FOSE (Free and Open Source Education)</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Fri, 27 Dec 2024 06:31:14 +0000</pubDate>
      <link>https://dev.to/xorio42/fose-free-and-open-source-education-km0</link>
      <guid>https://dev.to/xorio42/fose-free-and-open-source-education-km0</guid>
      <description>&lt;p&gt;Information used for education, and access to it, should be free and publicly available, just like sunlight, air, and rainwater&lt;/p&gt;

&lt;p&gt;If you want to make money from education, teach and help people to learn, and sell that, but using free and publicly  available information&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/radumarias_courses-course-i-activity-7277791177511194624-5coh?utm_source=share&amp;amp;utm_medium=member_android" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/radumarias_courses-course-i-activity-7277791177511194624-5coh?utm_source=share&amp;amp;utm_medium=member_android&lt;/a&gt;&lt;/p&gt;

</description>
      <category>firstyearincode</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Coding challenge: Design and Implement an Advanced Text Search System</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Thu, 26 Dec 2024 00:04:14 +0000</pubDate>
      <link>https://dev.to/xorio42/coding-challenge-design-and-implement-an-advanced-text-search-system-326l</link>
      <guid>https://dev.to/xorio42/coding-challenge-design-and-implement-an-advanced-text-search-system-326l</guid>
      <description>&lt;p&gt;&lt;a href="https://www.meetup.com/star-tech-rd-reloaded/events/305257486/" rel="noopener noreferrer"&gt;https://www.meetup.com/star-tech-rd-reloaded/events/305257486/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>elasticsearch</category>
      <category>regex</category>
    </item>
    <item>
      <title>Free courses</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Wed, 25 Dec 2024 21:30:17 +0000</pubDate>
      <link>https://dev.to/xorio42/free-courses-2e74</link>
      <guid>https://dev.to/xorio42/free-courses-2e74</guid>
      <description>&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/radumarias_courses-course-i-activity-7277791177511194624-5coh?utm_source=share&amp;amp;utm_medium=member_android" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/radumarias_courses-course-i-activity-7277791177511194624-5coh?utm_source=share&amp;amp;utm_medium=member_android&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>contribute to open source</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Sun, 01 Dec 2024 10:22:53 +0000</pubDate>
      <link>https://dev.to/xorio42/contribute-to-open-source-mlj</link>
      <guid>https://dev.to/xorio42/contribute-to-open-source-mlj</guid>
      <description>&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/radumarias_hi-if-you-want-to-contribute-to-open-source-activity-7268924972876582913-D2AL?utm_source=share&amp;amp;utm_medium=member_android" rel="noopener noreferrer"&gt;contribute to OSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>AI agents</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Sun, 24 Nov 2024 12:37:49 +0000</pubDate>
      <link>https://dev.to/xorio42/ai-agents-1hc7</link>
      <guid>https://dev.to/xorio42/ai-agents-1hc7</guid>
      <description>&lt;p&gt;Join our engaging community exploring the rise of AI agents! Let’s dive into the technical aspects and brainstorm creative ideas together. We’d love to have you on board! &lt;a href="https://t.me/+QQNb3paneEg5NTM8" rel="noopener noreferrer"&gt;https://t.me/+QQNb3paneEg5NTM8&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Idea: Make Apache Flight (gRPC) work over HTTP/3 (QUIC) and make use of RDMA (fast memory transfer). All made in Rust</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Thu, 21 Nov 2024 06:52:04 +0000</pubDate>
      <link>https://dev.to/xorio42/idea-make-apache-flight-grpc-work-over-http3-quic-and-make-use-of-rdma-fast-memory-2gbb</link>
      <guid>https://dev.to/xorio42/idea-make-apache-flight-grpc-work-over-http3-quic-and-make-use-of-rdma-fast-memory-2gbb</guid>
      <description>&lt;p&gt;&lt;a href="https://medium.com/@xorio42/project-idea-81c5a7faf307" rel="noopener noreferrer"&gt;https://medium.com/@xorio42/project-idea-81c5a7faf307&lt;/a&gt;&lt;/p&gt;

</description>
      <category>quic</category>
      <category>http3</category>
      <category>apacheflight</category>
      <category>tonic</category>
    </item>
    <item>
      <title>I'm the 5th most active GitHub user in Romania :)</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Wed, 28 Aug 2024 23:38:07 +0000</pubDate>
      <link>https://dev.to/xorio42/im-the-5th-most-active-github-user-in-romania--2g2j</link>
      <guid>https://dev.to/xorio42/im-the-5th-most-active-github-user-in-romania--2g2j</guid>
      <description>&lt;p&gt;&lt;a href="https://committers.top/romania" rel="noopener noreferrer"&gt;https://committers.top/romania&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With projects from &lt;a href="https://xorio.rs/" rel="noopener noreferrer"&gt;https://xorio.rs/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to build a virtualized GPU that executes remotely and keeping your data local?</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Fri, 23 Aug 2024 13:28:59 +0000</pubDate>
      <link>https://dev.to/xorio42/how-to-build-a-virtualized-gpu-that-executes-remotely-and-keeping-your-data-local-1e0k</link>
      <guid>https://dev.to/xorio42/how-to-build-a-virtualized-gpu-that-executes-remotely-and-keeping-your-data-local-1e0k</guid>
      <description>&lt;p&gt;The idea is to build something like this:&lt;/p&gt;

&lt;p&gt;Virtualization for GPU that allows you to run local GPU apps and the code is actually run in the cloud, keeping your data local.&lt;/p&gt;

&lt;p&gt;Functionality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;vGPU&lt;/code&gt; is a &lt;code&gt;virtualization&lt;/code&gt; layer for a &lt;code&gt;GPU&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;your local app "runs" on local &lt;code&gt;vGPU&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;local app decrypts the actual local data and sends the (&lt;code&gt;CUDA&lt;/code&gt;) instructions to the remote &lt;code&gt;GPU-Coortinator&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GPU-Coortinator&lt;/code&gt; distribute the instructions to multiple real &lt;code&gt;GPU&lt;/code&gt;s&lt;/li&gt;
&lt;li&gt;then it sends the results back to &lt;code&gt;vGPU&lt;/code&gt; which sends them to the local app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The advantage is your private data never leaves  your network in plain. Only actual GPU instructions (CUDA instructions) are sent over the wire but encrypted with TLS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know it will be slow, but in cases where the data flow is small compared to processing time it could be a reasonable compromise for the security it gives you.&lt;/p&gt;

&lt;p&gt;Also because instructions are distributed to multiple GPUs, when possible, it could offer better performance, in some cases, than locally&lt;/p&gt;

&lt;p&gt;schema &lt;a href="https://github.com/radumarias/rvirt-gpu/blob/main/website/resources/schema2.png" rel="noopener noreferrer"&gt;https://github.com/radumarias/rvirt-gpu/blob/main/website/resources/schema2.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;implementation ideas &lt;a href="https://github.com/radumarias/rvirt-gpu/wiki/Implementation" rel="noopener noreferrer"&gt;https://github.com/radumarias/rvirt-gpu/wiki/Implementation&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Hitchhiker’s Guide to Building an Encrypted Filesystem in Rust</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Mon, 12 Aug 2024 22:12:53 +0000</pubDate>
      <link>https://dev.to/xorio42/the-hitchhikers-guide-to-building-an-encrypted-filesystem-in-rust-d8e</link>
      <guid>https://dev.to/xorio42/the-hitchhikers-guide-to-building-an-encrypted-filesystem-in-rust-d8e</guid>
      <description>&lt;p&gt;&lt;a href="https://medium.com/@xorio42/the-hitchhikers-guide-to-building-an-encrypted-filesystem-in-rust-4d678c57d65c" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xyu1u23jiqjyx5m9ziu.png" alt=" " width="800" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@xorio42/the-hitchhikers-guide-to-building-an-encrypted-filesystem-in-rust-4d678c57d65c" rel="noopener noreferrer"&gt;The Hitchhiker’s Guide to Building an Encrypted Filesystem in Rust&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cryptography</category>
      <category>fikesystem</category>
      <category>fuse</category>
      <category>privacy</category>
    </item>
    <item>
      <title>The Hitchhiker’s Guide to Building a Distributed Filesystem in Rust. The continuation (part 2)</title>
      <dc:creator>Radu Marias</dc:creator>
      <pubDate>Tue, 06 Aug 2024 11:36:59 +0000</pubDate>
      <link>https://dev.to/xorio42/the-hitchhikers-guide-to-building-a-distributed-filesystem-in-rust-the-continuation-part-2-12o5</link>
      <guid>https://dev.to/xorio42/the-hitchhikers-guide-to-building-a-distributed-filesystem-in-rust-the-continuation-part-2-12o5</guid>
      <description>&lt;p&gt;&lt;a href="https://medium.com/@xorio42/the-hitchhikers-guide-to-building-a-distributed-filesystem-in-rust-the-continuation-part-2-ad1fd8bc9cf8" rel="noopener noreferrer"&gt;The Hitchhiker’s Guide to Building a Distributed Filesystem in Rust. The continuation (part 2)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>fuse</category>
      <category>sharding</category>
      <category>consistenthashing</category>
    </item>
  </channel>
</rss>
