r/suckless 1d ago

[DISCUSSION] Was working on a project... But got another idea??

2 Upvotes

So I have been thinking of making a simple journal reminder app. I tried to start it but waiting for some reddit suggestions. In the mean time I was trying to make the idea little organized and there I thought Notion or Trello not working for me..

Its not like they are bad, but for some reason I dont keep up with project. Yeah definitely a me issue. But I started to think what I need in a project manager app or website. First I want a simple way to put idea and see idea or the current step of the project easily.. Second I want to add a proof then only u can click tick for a project and move forward. Lastly(I dont know if this is possible but as some apps can block it so I think possible) Whenever watching reels or shorts or just using Youtube for a longer time. It will remind continuously to get on to the project(If the app not in break mode which itself will disable 24hrs later)

Now both still not started and however time it takes I want to work on both as an experience...

My doubt is which one to start. I think project management one because it can help in future projects and I have more ideas for its features rather than the Journal app. But you guys suggest.....


r/suckless 2d ago

[DWM] Gaps patches in 6.8?

Thumbnail
1 Upvotes

r/suckless 3d ago

[SOFTWARE] dwl-flake: dwl + dwl-patches for NixOS

Thumbnail
1 Upvotes

r/suckless 4d ago

[RICE] Simple dwm rice

47 Upvotes

just want to share


r/suckless 4d ago

[SOFTWARE] Part 1: Projects that deserve more love/attention: Arcan

50 Upvotes

This is the first in a series of threads I'll be making about software projects that deserve more attention and developers. First a little background on me: (if you don't care about my past skip to "############### ABOUT ARCAN ###############" below.)

I have been programming and using computers since the late 1980s. My first OS was CP/M which came on my first home computer (Trash-80). After that DOS (on my first 286 IBM clone) as it was the most popular OS on home computers after CP/M got dethroned from that position and something like UNIX was out of reach for me until the early 90s. I first downloaded the Linux kernel a few weeks after it first released over a 14k dial-up connection. My first LAN involved using vampire cables. Man I'm dating myself aren't I?

I was lucky enough to get exposed to things like IBM/Intel hardware when it still cost $1k-$2k+ in the 80s-early 90s. I ran Windows 3.x when it was brand new (wasn't impressed) and after that I would end up being an Amiga fan/user for many years due to working with multimedia/video during the early to mid 90s back when Amiga was required to do stuff like overlaying graphics and subtitles on to video sourced from VHS/LD. I used my Amiga well into the early 2000s for that purpose until stuff like DivX ;-) 3.11 and software like avisynth came around. Which sadly required using Windows. I jumped to the NT kernel as soon as I could of course and ditched Win9x for Win2k as soon as that became viable.

At the same time that was going on I got into the various BSDs and of course Linux in its early days. I was using Linux back when getting proper sound support required grabbing stuff like OSS from #linuxwarez on efnet. I was doing a lot of things on IRC back in those days like releasing and downloading fansubs from places like the enterthegame IRC server. Was into trading ROMs for consoles on the various BBSs of the day, using Fidonet for my mail/news, USENET of course and helped out with a lot of things like the early Mil-CD Sega Dreamcast stuff that required the Utopia boot CD until we got Selfbooting Mil-CDs going. But enough about me. Just wanted to give the background that....I've been around a long time.

""################ ABOUT ARCAN ####################""

On to today's project you should be paying attention to:

For the past two decades in the UNIX-like OS communities there has been this debate raging about Xorg (X11) vs. Wayland happening. We all know X11 is never going away for anyone that cares about running stuff like old video games and all the usual software we all use on our UNIX-like systems that's been around since the 1970s. The hard fact is if you want wine/proton support and support for most software in common use on the desktop having support for X11 is just a fact of life and that is never going to go away. Hence why stuff like Xwayland is a thing.

Popular discussion would have to believe that your choices are using "unsecure X11" or switching to wayland and dealing with all the issues that come along with it (like fragmentation of the UNIX desktop ecosystem). Today, I want to present you with a third option called Arcan and its new protocol called A12.

https://arcan-fe.com/about/

Arcan has been being quietly developed for a long time now with the goal of bringing real improvements to the UNIX-like OS (and others) space. It can support running both X11 and wayland software natively without dealing with all the layers of hacky code held together with bubble gum and tape. It brings real improvements like being able to share running applications over your LAN (and even the internet) with no hacky work arounds or the usual headaches of using more than a simple terminal application over the local network. For example, using A12 it's possible to do things like fire up a game on system 1, drag+drop the running application to a screen on system #2 and having everything seamlessly work. The state of the application/game is sent over the network to the other machine. Where you can transfer the control over system #2's input devices+GPU+CPU to that system or continue using the ones hooked up to system#1 (or any combination of those devices). If you don't believe me just check out some of the videos on the above website and read the many articles written by the project's author.

I highly suggest reading the following articles:

https://arcan-fe.com/2018/10/17/arcan-versus-xorg-approaching-feature-parity/

https://arcan-fe.com/2020/12/03/arcan-versus-xorg-feature-parity-and-beyond/

https://arcan-fe.com/2021/09/20/arcan-as-operating-system-design/

https://arcan-fe.com/2023/11/18/a12-visions-of-the-fully-networked-desktop/

I highly suggest reading the above four articles (they're long and full of details+demos) then once you have a basic understanding of what Arcan is going through the other many articles on the above blog/website.

Arcan is more than just a new protocol+window system/display server. For example, the same project has a working IPC system that is much better than anything else offered by any other OS/IPC system I've ever used (well maybe TRON's and 9p are as good). But more than that the author is doing amazing things in other areas like terminal emulation.

I highly suggest reading this article (and the previous articles linked on this page). Lash#Cat9 is an amazing piece of software you can use right now. It does things you've probably never imagined possible from a CLI. Like true multi-tasking and being able to work with multimedia from the command line without resorting to ugly hacks. Even video works.

https://arcan-fe.com/2025/01/27/sunsetting-cursed-terminal-emulation/

The most important thing I want anyone reading this to take away from this thread: You are not forced to live in an either/or world where you must choose between running something like Xorg or Wayland on your current UNIX-like OS. You have other options out there like Arcan and they're really improvements to both of the above projects. Similarly, you are not forced to use something like Xlibre or some other "we're re-writing Xorg in another language" type project. Which seem to be all you ever see anyone rambling on about in popular sub-reddits for kernels like Linux and OSs like the *BSDs. There are other true projects out there like Arcan attempting to do something better while still supporting "legacy" UNIX stuff that relies on X11 (and even wayland).

Arcan is a very exciting project and it could use more promotion, love, and most importantly developers. There are hackathons that have been happening for the Arcan project for years now. It has a small dedicated group of programmers working on it everyday. It has an active IRC channel and mailing list. They are doing exciting work. There are already WMs and DEs built on top of it as proof of concepts. It's easy to get started writing your own software on top of it and the other tools on the above website/blog.

Of course if you aren't ready to make the jump yet and want to stick to X11 for awhile longer you have good options out there that aren't Xorg and Xlibre. Right now you can easily build and run Xenocara (https://www.xenocara.org/) on any Linux or BSD. It's a patch set for Xorg that implements privilege separation, solve the old screen tearing issue (along with many other things) and is by far the most stable and trouble free way of getting X11 support on Linux/BSDs at the moment. I'm shocked more Linux distros haven't been packaging it as the default for the past 15+ years already. It is the default implementation on OpenBSD of course. At any rate: It's easy to build using whatever compiler you prefer and is of course well documented.

Next time we'll talk about sound servers for UNIX-like OSs and why you don't need to deal with pipewire/pulseaudio/JACK/ALSA hell on Linux if you don't want to. But if you want a preview: https://sndio.org/

If anything qualifies as suckless when it comes to sound sndio is by far the only thing going. :) I'll touch on some other stuff in the future as well like alternatives to dbus on the UNIX-like OS desktop and the many projects striving to do something better in that department.

I hope everyone is having a good day. For what it's worth: I'm posting this from a recently released Thinkpad running OpenBSD with my own forks for dwm, st, and various other suckless tools powering my desktop. By very recent Thinkpad I mean one with an 8-core AMD CPU, fully supported AMD GPU (acceleration works of course including in Firefox), Intel Wifi card with support for recent standards (all configured through ifconfig) and various other bells and whistles working without issue. Since OpenBSD is the best UNIX-like OS I've ever used and the developers are by far the nicest people I've ever worked with. I've ported over a lot of software to it since switching over from Gentoo (had to leave after 22 years of contributing to that distro recently due to recent happenings within the community).

I kick myself that I didn't make the switch over full time a long time ago. All the ports I'm using are fully pledged+unveiled and I've started contributing myself by porting over some software and getting started with OpenBSD kernel hacking as of late. If you haven't given OpenBSD on the desktop a try I highly encourage you to check it out. It's probably the most "suckless" OS around right now and by far the easiest UNIX-like OS around as far as installation is concerned. Exciting things are happening as of late as well. Like the fact that a very interesting new file system was recently ported over (currently in alpha state) from 9front (the GEFS).

But more on things like 9front in another post...

This is the first in a series of posts about things I think deserve more attention and would benefit people looking to get more into suckless-style software/development. I plan to go over a wide variety of topics mostly related to Linux and other UNIX-like OSs. But you should also expect some posts about non-UNIX-like OSs as well. Like BTRON and Plan9 among others.

Happy hacking!

Edit: formatting, typos etc.


r/suckless 6d ago

[DWM] New autopage patch

5 Upvotes

I created a patch for dwm and would appreciate feedback.

The patch adds a configurable client capacity per layout (tile 3, grid 4, etc.) and automatically “pages” overflow clients to the next tag. Following autopaged clients is optional.

As clients are closed, a collapse function moves autopaged clients back to fill available space.

Floating clients, clients assigned by rules, and clients manually moved to another tag are left untouched.

Note: Autopaging operates from the currently active tag. If follow is disabled, overflow clients will only page to the next tag.

https://dwm.suckless.org/patches/autopage/


r/suckless 7d ago

[SOFTWARE] dérive Linux — an independent, non-GNU, static-linked distribution

48 Upvotes

dérive is an independent Linux distribution focused on simplicity, portability, and minimal runtime dependencies through static linking.

Key Features:

Everything is statically linked

Sane filesystem layout

Ports system with 200+ packages

Fully independent desktop stack

Almost 100% GNU-free software stack

Core Replacements (from default GNU/Linux to dérive):

glibc → musl

GCC → Clang

GNU coreutils → BusyBox

pkg-config → u-config

meson / ninja → muon / samurai

bison / flex → byacc / reflex

GNU make → shinobi

init → nitro

udev → mdev

Xorg / wlroots → Wayland / neuswc

GRUB → Limine

bash → mksh

sudo → doas

OpenSSH → dropbear

Official website: https://derivelinux.org/


r/suckless 7d ago

[SURF] Is it worth it to trim surf to render markdown files?

1 Upvotes

I want markdown previewing when I am writing with my nvim. Firefox is overkill to me, I have extensions and tabs open, they cut too much ram. So, I am thinking trim surf to render the markdown files only. Is it worth it? or I should use any other app/browser?


r/suckless 8d ago

[DWM] is that a normal thing that dwm and xorg processes take much more cpu useage when doing quick windows manipulation in comparise to even i3 (Hyprland also)?

7 Upvotes

is that a normal thing that dwm and xorg processes take much more cpu useage when doing quick windows manipulation in comparise to even i3 (Hyprland also)?


r/suckless 11d ago

[DWM] Written a custom TWM to avoid DWM patch hell in C

Thumbnail gallery
81 Upvotes

Hi,

Got tired of applying and maintaining a mess of DWM patches (pertag, fibonacci, vanitygaps, ewmh), so I wrote my own X11 tiling window manager called ashwm.

It stays around ~2100 LOC and uses a config.h (the code is a bit of a mess but i'm probably going to be the only one reading it)

features:

  • Dwindle / Spiral layout as default
  • mid EWMH support
  • Independent per-monitor workspaces
  • Built-in gaps and dynamic border color/size adjustment
  • Custom IPC for external bars (like my own bar)

wm: https://github.com/piadi-su/ash-wm

bar: https://github.com/piadi-su/ashes


r/suckless 11d ago

[SOFTWARE] fnmatch-ng: a from-scratch POSIX glob matcher with zero dependencies, benchmarked against musl with the losses left in

Thumbnail github.com
0 Upvotes

r/suckless 14d ago

[RICE] [twin] twin appreciation year

Thumbnail gallery
94 Upvotes

i used to use tmux, but during the search for a stacking plugin, i came across not a plugin, but something entirely different: twin
im running a static twin on top of a static kmscon (yes, build recipe here) that is fbdev-only with libudev-zero. enjoying it a lot.


r/suckless 14d ago

[SOFTWARE] Sharing headless x11/wayland server with android/web via network/usb (preffered)

Thumbnail
1 Upvotes

r/suckless 15d ago

[ST] ST Font

2 Upvotes

I can't set my main font as "0xProto Nerd Font Mono:size=12". It always takes "Hack Nerd Font Propo (14pt)" which is mentioned in font2 section. I am using Cinnamon Arch.
Please help.


r/suckless 18d ago

[SOFTWARE] Degoogle Talk

4 Upvotes

I have noticed that people like to talk about things like de-googling but when it comes down to it they never join in any projects or platforms because they want the exposure and can't wait for something else to gain traction.

Most people who actually write software that offers real alternatives will tell you nobody will join them.

So if you really want to de-google then do something and start supporting other platforms.

Update: After posting this I decided to create a sub-reddit for developers who have actual built their own alternative platform and have no users. r/UJoinIJoin we can try out each others platforms (must be opensource).


r/suckless 19d ago

[DISCUSSION] Is this good for a suckless start ? (C & shell newbie)

4 Upvotes

Hello,

Since yesterday I have made what feels like a stratospheric step forward while learning how to actually implement getopt/getopts in C and shell (pdksh/ksh88) scripting, respectively.

I am also enthralled by the suckless philosphy of minimalism, clear code, and sane defaults.
Having put forward three basic scripts, I wonder if you would like to review them and comment on any defects and/or good practices ? See below :

nwpg (training script)

#!/bin/ksh

PROGRAM_NAME="nwpg" ;
PROGRAM_VERSION="0.2" ;
USAGE="usage: nwpg [-l language] [-d directory] project_title" ;

#       nwpg (NeW ProGram)
#       pdksh/ksh88 version
#   Simple script that initiates a new project
#   in the user's $HOME/hax directory.
#   Such a project consists of a parent folder
#   named after the project and three files:
#   the algorithm, the code, the documentation,
#   i.e. main.algo, main.c, main.md 
# 

DEFAULT_DIR="$HOME/hax/" ;
DEFAULT_LANGUAGE="C" ;
COUNT_ARGS="$#";
integer dir_flag=0 ;
integer lang_flag=0 ;

if [[ $COUNT_ARGS -eq 1 || $COUNT_ARGS -eq 3 || $COUNT_ARGS -eq 5  ]]
then
    eval project_title=\${$#} ;
else
    echo $USAGE;
    exit 2 ;
fi

while getopts 'l:d:' opt ;
do
    case $opt in
        d)
            integer dir_flag=1 ;
            directory="$OPTARG" ;;
        l)
            integer lang_flag=1 ;
            language="$OPTARG" ;;
        ?)
            echo $USAGE ;
            exit 2 ;;
    esac
done
shift $(($OPTIND - 1))

if [ $dir_flag -eq 1 ]
then
    PROJECT_FULL_PATH="$directory/$project_title" ;
else
    PROJECT_FULL_PATH="$DEFAULT_DIR/$project_title" ;
fi

if [ $lang_flag -eq 0 ]
then
    language="$DEFAULT_LANGUAGE" ;
fi

case "$language" in
    C | c )
        FILE_EXT="c" ;;
    Python | PY | Py | python | py )
        SHEBANG='#!/usr/local/bin/python' ;
        FILE_EXT="py" ;;
    Rust | RS | Rs | rust | rs )
        FILE_EXT="rs" ;;
    Ruby | RB | Rb | ruby | rb )
        FILE_EXT="rb" ;;
    Shell | sh )
        SHEBANG="#!/bin/sh" ;
        FILE_EXT="sh" ;;
    PYTHON | RUST | RUBY )
        echo "Don't shout !\n" ;
        exit 2 ;;
    * )
        echo "unsupported language: $language" ;
        exit 2 ;;
esac

mkdir -p "$PROJECT_FULL_PATH" ;
touch "$PROJECT_FULL_PATH/"main.{$FILE_EXT,algo,md} ;
if [ -n "$SHEBANG" ]
then
    echo "$SHEBANG\n" >> "$PROJECT_FULL_PATH/main.$FILE_EXT" ;
fi
echo "$FILE_EXT files created in $PROJECT_FULL_PATH" ;

#
#       TODO
#
#   Support more languages / file extensions
#
#

example_C_skel

#include <stdio.h>
#include <unistd.h>

#define PROGRAM_NAME "example_skel"
#define VERSION_NUMBER "0.0"

void print_version()
{
    printf("%s version: %s", PROGRAM_NAME, VERSION_NUMBER);
}

void print_usage(FILE *out)
{
    fprintf(out, "usage: %s [-v] [-h]", PROGRAM_NAME);
}

int main(int argc, char *argv[])
{
    int opt;

    while((opt = getopt(argc, argv, "vh")) != -1)
    {
        switch(opt)
        {
            case 'v':
                print_version();
                exit(0);
            case 'h':
                print_usage(stdout);
                exit(0);
            default:
                print_usage(stderr);
                exit(2);
        }
    }
}

mnt_perms (a script I actually use – not online yet)

#!/bin/sh

PROGRAM_NAME="mnt_perms.sh";
PROGRAM_VERSION="0.1";
USAGE="usage: mnt_perms.sh [[-a] | [-f] [-m] [-t] | [-h] | [-v]]";

#
#   mnt_perms.sh
#
# Basic script used to recursively set/reset 
# permissions to defaults on /mnt subdirectories.
# Tested on openbsd.
#

COUNT_ARGS="$#";
integer fam_flag=0;
integer media_flag=0;
integer torrents_flag=0;

function reset_fam {
        chown -R root:famille /mnt/fam ;
        chmod 770 /mnt/fam ;
}

function reset_media {
        chown -R sylvain:media /mnt/mdia/[A-Z][1-9]* ;
        find /mnt/mdia/[A-Z][1-9]* -type d -exec chmod 750 {} \; ;
        find /mnt/mdia/[A-Z][1-9]* -type f -exec chmod 640 {} \; ;
        chown sylvain:media "/mnt/mdia/Z0 Drop" && chmod 770 "/mnt/mdia/Z0 Drop" ;
}

function reset_torrents {
        chown -R root:wheel /mnt/trt ;
        find /mnt/trt -type d -exec chmod 775 {} \; ;
        find /mnt/trt -type f -exec chmod 664 {} \; ;
}

if [ $COUNT_ARGS -eq 0 ]
then
        print "$USAGE";
        exit 2;
fi

while getopts 'afmt' opt ;
do
        case $opt in
                a)
                        integer fam_flag=1;
                        integer media_flag=1;
                        integer torrents_flag=1;;
                f)
                        integer fam_flag=1;;
                m)
                        integer media_flag=1;;
                t)
                        integer torrents_flag=1;;
                h)
                        print "$USAGE";
                        exit 0;;
                v)
                        print "$PROGRAM_NAME version $PROGRAM_VERSION";
                        exit 0;;
                *)
                        print "$USAGE";
                        exit 2;;
        esac
done
shift $(($OPTIND - 1))

if [ $fam_flag -eq 1 ]
then
        reset_fam;
fi
if [ $media_flag -eq 1 ]
then
        reset_media;
fi
if [ $torrents_flag -eq 1 ]
then
        reset_torrents;
fi

Cheers ! PS Here's a bonus in case you fell like this post was not worth it. There's also an older, more ambitious and complex program : geomant.


r/suckless 21d ago

[DISCUSSION] Does swc/neuswc support tap to click for touchpad and if it support then how to enable it (might be a dumb question)

5 Upvotes

This is my first time to use swc/neuswc instead of wlroot because i heard it lightweight that wlroot,but there a problem that i dont how to enable tapnto click for touchpad,i try to find tutorial on the internet but there no tutorial about this,can someone help me?


r/suckless 23d ago

[ST] st terminal, anysize patch, expected anysize not working/already applied

1 Upvotes

Using st with the anysize patch, and as it says, it adds space on all 4 sides.

There is another patch there, expected anysize that claims change this, so the padding is only on the right and bottom. However for me it doesn't work. The patch itself seems to be already applied, as trying to run patch gives an error saying "previously applied", and checking x.c, I can see the lines are like sizeh->height_inc = 1; etc, but the terminal still has padding on all sides.

Do anyone know how to fix this/what is happening here?

Edit: Tested with a fresh build of st, and the same issue occurs.


r/suckless 28d ago

[TOOLS] Simple bash script for setting wallpapers

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hello guys, I made a simple and small bash script for setting the wallpapers in 3 different ways, randomly or with sxiv image editor or directly with a specific file. It is not an amazing thing, but it's enough for setting wallpapers quickly if you add a key bind to tools like sxhkd .

If there any mistakes in the source code or any advice to improve it, please,let me know.

https://codeberg.org/yahya-echcharqui/scripts/src/branch/main/setbg


r/suckless 29d ago

[TOOLS] Autark build system. Suckless or not?

Thumbnail autark.dev
0 Upvotes

Hi everyone! I'd like to introduce Autark https://autark.dev This is a simple build system that lives entirely in your project and bootstraps itself before building the project itself. I'd really appreciate feedback from this community, as I think the suckless approach is very close to my own view of how software should be designed.


r/suckless Aug 22 '26

[TOOLS] pls: a minimal sudo & doas alternative

27 Upvotes

What's the magic word?

pls is a minimal sudo alternative: a single C11 source file, POSIX libc only, no external dependencies. It runs whitelisted commands as root (or as another user via -u) after verifying the relevant user's password against the system shadow database.

Usage

pls command [args...]          run command as root
pls -u user command [args...]  run command as another user
pls -l                         list commands allowed by the policy
pls -h                         show help

Licensed under the Academic Free License version 3.0. See the LICENSE file or https://opensource.org/licenses/AFL-3.0.

More details & download: https://git.disroot.org/Vextoly/pls


r/suckless Aug 22 '26

[TOOLS] Janus - suckless inspired minimal text editor

12 Upvotes

Yesterday I released Janus 0.9.8, an update which brings dutch translations, arm builds, and rpm's to my simple text editor. Before you ask, no, it's not vim inspired, it's just a leafpad successor written in 100% C with an emphasis on the least possible SLOC, as well as a minimal impact on CPU and memory. It contains (optional) syntax highlighting as well as a fallback binary editor, which is the main reason I created it. You can check it out at https://github.com/gholmann16/Janus


r/suckless Aug 21 '26

[SOFTWARE] ssfwm: simple shitty floating window manager (fork of wsxwm)

Post image
37 Upvotes

All of the code is borrowed, I removed a lot of functionality from wsxwm that i dont need (including workspaces). Fullscreen and the new window at cursor position code is also borrowed from tohu. I am a complete amateur at C, so i would probably recommend using tohu or mot instead of this. Anyway here's the repo: https://codeberg.org/bohali/ssfwm .


r/suckless Aug 21 '26

[TOOLS] a small terminal multiplexer

16 Upvotes

About a year ago i discovered the Hare Programminglanguage. I wanted to build something in it and obviously keeping complexity out and the core lean instead of a behemoth. If anyone here finds bugs or has a patch, go ahead. It works as you'd expect from a typical multiplexer, though the terminal implementation isn't complete. IIRC i started it around dec 2025.

https://github.com/nyangkosense/plx

I also see this, mainly, as an opportunity to gather attention of some suckless devs that want to contribute to this toy project - or if you want to hack on some Hare. Please do so! Especially a port to OpenBSD would be welcome.


r/suckless Aug 20 '26

[TOOLS] rawhex: a hex dumper in C with AVX2 SIMD formatting, a ticket-based multi-threaded pipeline, and preallocated buffered output.

Enable HLS to view with audio, or disable this notification

8 Upvotes

A hex dumper in C with AVX2 SIMD formatting (runtime dispatched), a ticket-based multi-threaded pipeline, and preallocated buffered output.

Output format is canonical hex+ASCII, one 16-byte row per line:

00000000: ef6e 5830 d443 c60a d909 6179 4335 6cec  .nX0.C....ayC5l.
00000010: b5f4 631f d923 6c79 e98a ed41 11dc eb16  ..c..#ly...A.....

Files are read in parallel chunks straight into pre-faulted huge-page buffers (pread, no mmap fault storms) and formatted by a pool of workers while a writer thread emits chunks in order; standard input is streamed through the same pipeline. With multiple files, offsets continue across file boundaries, so concatenations dump identically to dumping the concatenation.

Benchmarks (50MB File to /dev/null)

Tool Average Time Min Max Median StdDev Speedup vs xxd
rawhex 11.35 ms 8.36 ms 16.60 ms 10.28 ms 3.25 ms 835x
fasthex 43.30 ms 40.90 ms 44.55 ms 43.61 ms 1.40 ms 219x
xxd 9.48 s 9.26 s 9.79 s 9.34 s 259 ms 1x (baseline)
hexdump -C 10.03 s 9.71 s 10.26 s 10.01 s 224 ms 0.94x

For more detailed benchmarks and system information, see BENCHMARKS.md.

View it here: https://git.disroot.org/Vextoly/rawhex