whatisgithub

What is star?

edgeofassembly/star — explained in plain English

Analysis updated 2026-05-18

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

In one sentence

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

What do people build with it?

USE CASE 1

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

USE CASE 2

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

USE CASE 3

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

What is it built with?

C++23CMake

How does it compare?

edgeofassembly/stardaviddrysdale/pkcs11testdeftruth/mnn
Stars0
LanguageC++C++C++
Last pushed2023-01-182023-04-29
MaintenanceDormantDormant
Setup difficultymoderatemoderatemoderate
Complexity3/54/54/5
Audiencedeveloperdeveloperdeveloper

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

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

So what is it?

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.

Copy-paste 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

What 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.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.