gitwtfhub

wtf is star?

edgeofassembly/star — explained in plain English

Analysis updated 2026-05-18

0C++Audience · developerComplexity · 3/5Setup · moderate

TL;DR

A modern C++23 rewrite of GNU tar that mirrors its command-line interface and stays compatible with archives GNU tar can read and write.

Mindmap

mindmap
  root((repo))
    What it does
      Reimplements GNU tar
      Reads and writes archives
      Matches tar command flags
    Tech stack
      C++23
      CMake
    Use cases
      Create tar archives
      Extract archives
      Replace tar in pipelines
    Audience
      Developers
      DevOps

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Create, extract, or list tar archives using a modern C++ tool that behaves like GNU tar.

REASON 2

Drop star into build pipelines, container tooling, or backup scripts as a GNU tar replacement.

REASON 3

Read a well-tested modern codebase to understand how tar archive formats actually work.

What's in the stack?

C++23CMake

How it stacks up

edgeofassembly/staralange/llama.cppayushm74/binance-lob-capture
Stars000
LanguageC++C++C++
Setup difficultymoderatemoderatehard
Complexity3/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires a C++23 compiler and CMake to build from source.

Wtf does this do

star is a reimplementation of GNU tar, the standard command-line tool for bundling files together into a single archive file (a ".tar" file). While GNU tar is the tool that ships with most Linux systems and has been around for decades, star rebuilds the same functionality from scratch using C++23, a modern version of the C++ programming language. The goal is archive compatibility: a tar file created by star can be opened by GNU tar 1.35, and vice versa, across all the common archive formats (v7, oldgnu, gnu, ustar, and pax/posix). The command-line interface mirrors GNU tar's own, with the same short flags and long option names. You can create, extract, list, append, update, or compare archives, and compress them with gzip, bzip2, xz, or zstd. Approximately 100 options are supported. Code examples in the README show typical uses: creating a gzip-compressed archive of a directory, extracting to a specific path, stripping leading directory components, and excluding patterns like build artifacts. A verification flag re-reads the archive after creation to confirm it was written correctly. A developer might use star as a drop-in replacement for GNU tar in build pipelines, container tooling, or backup scripts where they want a well-tested, modern C++ codebase they can read and modify. Most core operations are fully implemented, a smaller set of advanced options (extended attributes, multi-volume archives, remote tape support) are accepted by the parser but do not yet have full behaviour wired up. The full README is longer than what was provided.

Yoink these prompts

Prompt 1
Explain how star stays archive-compatible with GNU tar 1.35 across formats like ustar and pax.
Prompt 2
Walk me through building star from source with CMake and running my first archive command.
Prompt 3
Show me the equivalent star command for a GNU tar command I already know.
Prompt 4
Help me understand which advanced tar options star has not fully implemented yet.

Frequently asked questions

wtf is star?

A modern C++23 rewrite of GNU tar that mirrors its command-line interface and stays compatible with archives GNU tar can read and write.

What language is star written in?

Mainly C++. The stack also includes C++23, CMake.

How hard is star to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is star for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.