<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>webcodr</title>
    <link>https://webcodr.io/topics/rust/</link>
    <description>Recent content on webcodr</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 05 Jul 2026 20:28:50 +0000</lastBuildDate>
    <atom:link href="https://webcodr.io/topics/rust/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Find things even faster with srchr</title>
      <link>https://webcodr.io/2026/07/find-things-even-faster-with-srchr/</link>
      <pubDate>Sun, 05 Jul 2026 20:28:50 +0000</pubDate>
      <guid>https://webcodr.io/2026/07/find-things-even-faster-with-srchr/</guid>
      <description>Inspired by my last post about rgp and fdp I got the idea to combine both into a more powerful and easier tool called srchr.
It’s a TUI written in Rust and uses similar or the same libraries as rg, fd, fzf and bat, but in one package. There are no external dependencies and it comes for macOS, Linux and Windows in aarch64 and x86-64.
Currently srchr is not available via package managers, but there’s an installation script:
</description>
      <content:encoded><![CDATA[<p>Inspired by my last post about <code>rgp</code> and <code>fdp</code> I got the idea to combine both into a more powerful and easier tool called <code>srchr</code>.</p>
<p>It&rsquo;s a TUI written in Rust and uses similar or the same libraries as <code>rg</code>, <code>fd</code>, <code>fzf</code> and <code>bat</code>, but in one package. There are no external dependencies and it comes for macOS, Linux and Windows in aarch64 and x86-64.</p>
<p>Currently <code>srchr</code> is not available via package managers, but there&rsquo;s an installation script:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl -fsSL https://raw.githubusercontent.com/webcodr/srchr/main/install.sh <span class="p">|</span> sh
</span></span></code></pre></div><p>I will also publish <code>srchr</code> on Homebrew, the AUR and perhaps some other package managers.</p>
<p>Beware, it&rsquo;s still under development and the UI is functional, but not finished yet. At the moment there is just a hardcoded Tokyo Night inspired color theme, but this will also change in the near future.</p>
<p><a href="https://github.com/webcodr/srchr">srchr on GitHub</a></p>
<h3 id="update"><a href="#update" class="heading-anchor">Update</a></h3>
<p>It&rsquo;s now available on Homebrew for macOS and Linux!</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">brew install webcodr/tap/srchr
</span></span></code></pre></div>]]></content:encoded>
    </item>
    
    <item>
      <title>Awesome CLI Tools</title>
      <link>https://webcodr.io/2024/03/awesome-cli-tools/</link>
      <pubDate>Wed, 06 Mar 2024 20:21:06 +0000</pubDate>
      <guid>https://webcodr.io/2024/03/awesome-cli-tools/</guid>
      <description>There are some incredibly useful CLI tools out there. Here’s a list with some awesome tools I’m using for my daily work.
atuin Atuin is a history replacement with a fuzzy finding search and sync/backup options (self-hosted if you need). It’s written in Rust (blazingly fast!) and stores the history entries in a SQLite db. You can even import your current history from your shell. Atuin supports bash, zsh, fish and NuShell.
</description>
      <content:encoded><![CDATA[<p>There are some incredibly useful CLI tools out there. Here&rsquo;s a list with some awesome tools I&rsquo;m using for my daily work.</p>
<h2 id="atuin"><a href="#atuin" class="heading-anchor">atuin</a></h2>
<p><a href="https://atuin.sh/">Atuin</a> is a history replacement with a fuzzy finding search and sync/backup options (self-hosted if you need). It&rsquo;s written in Rust (blazingly fast!) and stores the history entries in a SQLite db. You can even import your current history from your shell. Atuin supports bash, zsh, fish and NuShell.</p>
<h2 id="bat"><a href="#bat" class="heading-anchor">bat</a></h2>
<p>Need <code>cat</code> a lot? <a href="https://github.com/sharkdp/bat">Bat</a> is a cat clone on steroids with syntax highlighting, themes, git integration and much more.</p>
<h2 id="eza"><a href="#eza" class="heading-anchor">eza</a></h2>
<p>Everyone needs <code>ls</code> ? Nope, <a href="https://eza.rocks/">eza</a> is much better. Colored output, icons via nerd fonts, git status tracking per file, tons of display options &hellip;</p>
<h2 id="tldr"><a href="#tldr" class="heading-anchor">tldr</a></h2>
<p>Reading a man page can be frustrating, why can&rsquo;t I just have the TL;DR version? Well, <a href="https://tldr.sh/">tldr</a> does exactly that. Just use it like <code>man</code> and enjoy the TL;DR version of a man page.</p>
<h2 id="zoxide"><a href="#zoxide" class="heading-anchor">zoxide</a></h2>
<p>Like its siblings, <code>cd</code> is a little dated and clunky. With <a href="https://github.com/ajeetdsouza/zoxide">zoxide</a> you can easily jump to directories without typing the full path. It stores a history of your visited paths and you can jump via keywords to your directories.</p>
<h2 id="chezmoi"><a href="#chezmoi" class="heading-anchor">chezmoi</a></h2>
<p>You&rsquo;re using multiple computers or just want a simple and reliable way to store your dot files? <a href="https://www.chezmoi.io/">Chezmoi</a> is your friend and stores your dot files in a git repo with syncing capabilities to other devices. It&rsquo;s even possible to encrypt your files. If you have secrets in your dot files, chezmoi comes with integrations for many password managers to safely store your passwords, tokens etc.</p>
<h2 id="starship"><a href="#starship" class="heading-anchor">starship</a></h2>
<p>Your shell looks boring? Just theme it with <a href="https://starship.rs/">starship</a>! It&rsquo;s pretty easy to build your own and if you don&rsquo;t want to, there are many themes available. Starship also has integrations for many dev tools to show the current git status or currently active versions of your runtime environments like NodeJS, Rust, Go, Java etc.</p>
<h2 id="fzf"><a href="#fzf" class="heading-anchor">fzf</a></h2>
<p>Finding files with the usual suspects works fine, but <a href="https://github.com/junegunn/fzf">fzf</a> can do this faster and much more intuitive. It&rsquo;s a fuzzy finding search within your current directory, processes, git commits, history (if you don&rsquo;t like Atuin) and much more.</p>
<h2 id="ripgrep"><a href="#ripgrep" class="heading-anchor">ripgrep</a></h2>
<p>Ripgrep is a really fast regex-based search tool and can do much more than <code>grep</code> alone.</p>
<h2 id="btop"><a href="#btop" class="heading-anchor">btop</a></h2>
<p>Another <code>top</code> variant? Yup, but <a href="https://github.com/aristocratos/btop">btop</a> is way more like its modern GUI-based colleagues on macOS or Windows with CPU and GPU usage, process trees, I/O and disk activities, battery status &hellip;</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Introducing Server Runner</title>
      <link>https://webcodr.io/2023/05/introducing-server-runner/</link>
      <pubDate>Fri, 26 May 2023 23:53:33 +0000</pubDate>
      <guid>https://webcodr.io/2023/05/introducing-server-runner/</guid>
      <description>In my recent adventures with Rust, I planned to write a REST API with the help of the excellent book “Zero To Production In Rust” from Luca Palmieri. That’s still happening, but as a small side project, I wanted to write some kind of CLI tool.
A few weeks ago I wrote a bash script to run some web servers and check their status until they’re up and running. When all servers are ready, a command would be executed and all servers would be closed after this command is finished. Since I hate bash with a passion, I asked a friend to help me: ChatGPT.
</description>
      <content:encoded><![CDATA[<p>In my recent adventures with Rust, I planned to write a REST API with the help of the excellent book &ldquo;Zero To Production In Rust&rdquo; from Luca Palmieri. That&rsquo;s still happening, but as a small side project, I wanted to write some kind of CLI tool.</p>
<p>A few weeks ago I wrote a bash script to run some web servers and check their status until they&rsquo;re up and running. When all servers are ready, a command would be executed and all servers would be closed after this command is finished. Since I hate bash with a passion, I asked a friend to help me: ChatGPT.</p>
<p>I would never trust an AI in this day and age to write a code base for me, but for small scripts? Why not. As long as the scope is small and I can understand the code, ChatGPT is a really good tool. That script does exactly what I want and it&rsquo;s easy enough to understand, even for me as a bash hater.</p>
<p>But I wanted to do this properly and so I decided to rewrite this script as a small CLI tool program in Rust: Server Runner. Well, not a very creative name, but it does what it says.</p>
<h2 id="configuration"><a href="#configuration" class="heading-anchor">Configuration</a></h2>
<p>Server Runner is quite simple and just needs a small YAML file as configuration. Here&rsquo;s a small example.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">servers</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Hello World&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;http://localhost:3000&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">command</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;node index.js&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">command</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;node sleep.js&#34;</span><span class="w">
</span></span></span></code></pre></div><p>To start server runner, just run:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">server-runner -c servers.yaml
</span></span></code></pre></div><p>Server Runner will execute all server commands defined in the config section <code>servers</code> and waits until the URLs return HTTP 200. When all servers are up and running, the primary command will be started. After the command finished, all server processes will be killed off.</p>
<h2 id="how-do-i-get-it"><a href="#how-do-i-get-it" class="heading-anchor">How do I get it?</a></h2>
<p>Server Runner is available as a <a href="https://crates.io/crates/server-runner">Cargo Crate</a> and will be published soon on NPM with executables for macOS (aarch64, x86_64), Linux (aarch64, x86_64) and Windows (x86_64).</p>
<h3 id="installation-via-cargo"><a href="#installation-via-cargo" class="heading-anchor">Installation via Cargo</a></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">cargo add server-runner
</span></span></code></pre></div><p>The source code is available on <a href="https://github.com/webcodr/server-runner">GitHub</a>.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
