Skip to content

UberMetroid/morphball

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morphball: Secure, Multi-Threaded Archive Manager in Rust morphball logo

Morphball is a high-performance, first-principles drop-in replacement for standard archive managers like 7zip, winrar, and gzip. Written entirely in Rust, it provides secure, parallelized compression and extraction via a clean command-line interface (CLI) and an interactive terminal UI (TUI).


Architecture & Stack

  • morphball-core: The underlying library handling parallel walking, archiving, and extraction.
  • morphball: 7z-styled drop-in command-line tool with colorized progress indicators.
  • morphball-tui: Dual-pane, interactive visual file explorer and archive utility.
  • Supported Formats: .zip, .7z (LZMA), and .tar.gz / .tgz.

Features

  • Unix-Philosophic: Modular crates built with single-purpose functions capped under 250 lines.
  • Multi-threaded Speed: Built-in work-stealing parallelism powered by rayon.
  • Standard Compatibility: Supports 7z-style single-character flags (a, x, l).
  • Built-in Security: Hardened against zip-slip and path-traversal attacks.
  • Password Encryption: Cryptographic support for ZIP and 7z containers.

Installation

Debian / Ubuntu / Pop!_OS (apt)

Add the official APT repository and install the packages:

# 1. Download the repository GPG keyring
sudo curl -fsSL https://ubermetroid.github.io/packages/apt/ubermetroid-keyring.gpg -o /etc/apt/trusted.gpg.d/ubermetroid.gpg

# 2. Download the sources list configuration
sudo curl -fsSL https://ubermetroid.github.io/packages/apt/ubermetroid.list -o /etc/apt/sources.list.d/ubermetroid.list

# 3. Refresh the package index and install
sudo apt update
sudo apt install morphball

Fedora / RHEL / CentOS (dnf)

Add the official DNF repository and install the packages:

# 1. Download the repository configuration
sudo curl -fsSL https://ubermetroid.github.io/packages/rpm/ubermetroid.repo -o /etc/yum.repos.d/ubermetroid.repo

# 2. Refresh the package database and install
sudo dnf check-update
sudo dnf install morphball

Cargo

cargo install --git https://github.com/UberMetroid/morphball.git --bin morphball
cargo install --git https://github.com/UberMetroid/morphball.git --bin morphball-tui

CLI Usage (7z-Style)

1. Add / Pack Files (a)

Pack a file or folder into an archive:

morphball a <source_folder_or_file> <output_archive.7z>
  • With password encryption:
    morphball a source.txt secure.zip -p mypassword
  • Securely prompt for password:
    morphball a source.txt secure.7z -P

2. Extract / Unpack Files (x)

Extract an archive into a destination folder:

morphball x <archive_file> [destination_folder]

(If no destination is specified, it extracts to the current directory).

  • Extract password-protected archive:
    morphball x secure.7z -p mypassword

3. List Archive Contents (l)

View files and directories contained in an archive without extracting:

morphball l <archive_file>

Interactive TUI Usage

Launch the dual-pane terminal interface to browse folders and manage files visually:

morphball-tui
  • Tab: Switch panes.
  • Up / Down: Select items.
  • C: Compress the selected folder/file.
  • X: Extract the selected archive.
  • Q / Esc: Quit.

License

Licensed under the Apache License, Version 2.0. Copyright 2026 UberMetroid.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages