Skip to content

reliverse/repackr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

@reliverse/repackr

@reliverse/repackr is your high-level, cross-platform archive toolkit β€” a modern alternative to existing tools that actually feels like it's from this decade.

πŸ’– GitHub Sponsors β€’ πŸ“¦ NPM β€’ ✨ GitHub β€’ πŸ“š Docs

πŸ’‘ What is Repackr?

  • πŸŽ’ CLI & SDK to create, extract, and inspect archives
  • 🧩 Supports .zip, .tar, .tar.gz, .tgz, .tar.br, .tar.xz, .7z, and more (via plugins)
  • ⚑️ Works out of the box β€” no system-level dependencies required
  • πŸ›  Fully type-safe SDK for Node.js (with ESM-first globby support)
  • 🌍 Cross-platform and framework-agnostic (bun, Node, CI, etc)
  • πŸ” Optional password-based encryption (coming soon)

πŸ›  Use Cases

  • Bundle a build directory before uploading to your storage bucket
  • Extract packages in a CI step
  • Create distributable .zip files in CLI tools
  • Build your own installer or updater logic
  • Replace platform-specific deps like 7z, tar, or zip in your scripts

πŸš€ Quick Start

CLI

Install globally:

bun i -g @reliverse/repackr-cli
# bun β€’ pnpm β€’ yarn β€’ npm

Or just run without any installation:

bunx @reliverse/repackr-cli
# bunx β€’ pnpx β€’ npx

Native App

Coming soon

SDK

bun add @reliverse/repackr
# bun β€’ pnpm β€’ yarn β€’ npm

✨ CLI Usage

Pack files into an archive

repackr pack ./dist --format zip --out ./build/app.zip

Extract archive

repackr unpack ./build/app.zip --out ./extracted

Inspect archive contents

repackr list ./build/app.zip

CLI Options

Command Description
pack Create archive from directory
unpack Extract archive to destination
list View archive contents
--format Choose format (zip, tar, etc)
--out Set output path or folder
--verbose Enable verbose logs

🧠 SDK Usage

import { pack, unpack, list } from "@reliverse/repackr";

await pack({
  src: "./dist",
  format: "zip",
  dest: "./build/app.zip",
});

await unpack({
  src: "./build/app.zip",
  dest: "./tmp/unpacked",
});

const files = await list({ src: "./build/app.zip" });
console.log(files);

All options are strongly typed, and format plugins are extensible.

🎯 Why Repackr?

You deserve better than platform-specific hacks and ancient CLI wrappers.

  • πŸ“¦ Everything in JS/TS β€” no external binaries required
  • πŸ›‘ Safe paths (no extraction to /etc)
  • 🌐 Built-in format adapters (extensible via plugins)
  • πŸ”„ Deterministic output archives
  • ✨ Designed for modern build pipelines

🧩 Supported Formats

Format Read Write Notes
.zip 🟑 🟑 Fully supported out of the box
.tar 🟑 🟑
.tar.gz 🟑 🟑 Alias: .tgz
.tar.br 🟑 🟑 Brotli-compressed tar
.tar.xz 🟑 🟑 XZ compression
.7z 🟑 🟑 Read only for now (write soon)

Plugin system coming soon for rar, iso, etc.

πŸ§ͺ Playground

git clone https://github.com/reliverse/repackr
cd repackr
bun i
bun dev

πŸ’¬ Example Use in CI/CD

- name: Compress build
  run: repackr pack ./dist --format zip --out ./release.zip

- name: Upload artifact
  uses: actions/upload-artifact
  with:
    name: webapp
    path: ./release.zip

πŸ”‹ Related Projects

🫢 Show some love

If Repackr saved you a few lines of bash or minutes of debugging:

πŸ“„ License

MIT Β© 2025 blefnk (Nazar Kornienko)

About

@reliverse/repackr

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published