Zencore-rs

Crates.ioZencore-rs
lib.rsZencore-rs
version1.3.0
created_at2025-11-15 06:32:09.819268+00
updated_at2025-11-15 06:32:09.819268+00
descriptionMinimalist and interactive music backup tool
homepage
repositoryhttps://github.com/Blues24/Zencore-rs
max_upload_size
id1934090
size135,320
Blues24 (Blues24)

documentation

README

πŸ¦€ Blues Zencore

Rust License Platform

Minimalist and Interactive Music Backup Tool

Fast β€’ Secure β€’ Cross-Platform β€’ Beautiful CLI

Features β€’ Installation β€’ Quick Start β€’ Documentation β€’ Contributing


🎯 What is Blues Zencore?

Blues Zencore adalah tool backup musik dan file berbasis Rust yang dirancang untuk:

  • πŸš€ Blazingly Fast - Parallel processing, SIMD optimization, ~360 MB/s compression
  • πŸ”’ Military-Grade Security - AES-256-GCM encryption, Argon2 key derivation
  • 🎨 Beautiful UX - Interactive CLI dengan fuzzy finding dan progress bars
  • 🌍 Cross-Platform - Native support untuk Linux, macOS, dan Windows
  • πŸ“¦ Smart Archive Management - Auto-naming, duplicate detection, state tracking
  • πŸ” Content Inspection - Lihat isi archive tanpa extract

Why Zencore?

Why using Rust?

-Rust is faster than Python

# Python version (old):  ~30 seconds, 220 MB/s
# Rust version (new):    ~17 seconds, 360 MB/s ⚑ +64% faster!

✨ Features

Core Features

  • βœ… Multiple Compression Formats

    • tar.zst (Zstandard - Recommended)
    • tar.gz (gzip)
    • zip (Universal)
    • Configurable compression levels
  • βœ… Advanced Encryption

    • AES-256-GCM (Hardware accelerated)
    • ChaCha20-Poly1305 (Software, constant-time)
    • Argon2 password hashing
    • Auto-detect cipher from file
  • βœ… Multiple Hash Algorithms

    • BLAKE3 (~7 GB/s, parallel)
    • SHA-256 (~500 MB/s, standard)
    • SHA3-256 (~200 MB/s, NIST)
  • βœ… Interactive Experience

    • Fuzzy folder selection
    • Algorithm picker with descriptions
    • Real-time progress bars
    • Colored output
  • βœ… Smart Features

    • Auto-generate names with timestamps
    • Duplicate detection (adds .1, .2, etc.)
    • State tracking (see archive contents without extract)
    • SHA-256/BLAKE3 automatic verification
  • βœ… Cross-Platform

    • Linux (Ubuntu, Arch, Fedora, etc.)
    • macOS (Intel & Apple Silicon)
    • Windows 10/11 (Native support)
    • OS-specific path handling

Performance

Feature Performance
Compression 150-500 MB/s (depends on algorithm)
Checksums 7 GB/s (BLAKE3, parallel)
File Scanning Parallel (uses all CPU cores)
Memory Usage ~500 MB (efficient streaming)

πŸ“¦ Installation

Prerequisites

  • Rust 1.70+ (for building from source)
  • System dependencies:
    • Linux: build-essential, pkg-config, libssl-dev
    • macOS: Xcode Command Line Tools
    • Windows: MSVC Build Tools

Quick Install

Linux / macOS

# Clone repository
git clone https://github.com/Blues24/Zencore-rs.git
cd Zencore-rs

# Build release binary
cargo build --release

# Install to /usr/local/bin (optional)
sudo cp target/release/zencore /usr/local/bin/

# Or add to PATH
export PATH="$PATH:$(pwd)/target/release"

Windows

# Clone repository
git clone https://github.com/Blues24/Zencore-rs.git
cd Blues-Zencore

# Build release binary
cargo build --release

# Binary located at: target\release\zencore.exe
# Add to PATH or run directly

Pre-compiled Binaries

Download from GitHub Releases:

  • zencore-linux-x86_64.tar.gz
  • zencore-macos-universal.tar.gz
  • zencore-windows-x86_64.zip

πŸš€ Quick Start

Interactive Mode (Easiest)

# Just run it!
zencore

# Output:
# 🎡 What would you like to do?
# > Create Backup
#   List Archives
#   Show Archive Contents
#   Exit

Command Line

# Quick backup (will prompt for destination & algorithm)
zencore backup

# Full control
zencore backup \
  -s ~/Music \
  -d ~/Backups \
  -n "my_music_2024" \
  -a tar.zst \
  -e  # encrypt

# List all archives
zencore list

# Show archive contents (without extracting!)
zencore show my_music_2024.tar.zst

# Verify integrity
zencore verify ~/Backups/my_music_2024.tar.zst

Configuration

First run creates config at:

  • Linux: ~/.config/zencore/config.toml
  • macOS: ~/Library/Application Support/zencore/config.toml
  • Windows: %APPDATA%\zencore\config.toml

Example config:

# Fast compression with auto-threading
default_algorithm = "tar.zst"
compression_level = 3
num_threads = 0  # Auto-detect CPU cores

# Security
encrypt_by_default = false
default_cipher = "aes256"
default_hash_algorithm = "blake3"

# Default backup location
default_backup_destination = "~/Backups/Music"

πŸ“– Documentation

Comprehensive documentation available in the docs/ folder:

Getting Started

User Guides

  • πŸ“ User Manual - Complete feature documentation
  • πŸ’‘ Use Cases - Real-world scenarios
  • ❓ FAQ - Frequently asked questions

Platform-Specific

Advanced

Developer

Reference


🎯 Use Cases

Daily Music Backup

# One-time setup
echo 'default_backup_destination = "~/Backups/Music"' >> ~/.config/zencore/config.toml

# Then just:
zencore backup
# Hit Enter 3 times β†’ Done in 20 seconds!

Scheduled Backups

Linux/macOS (cron):

# Weekly backup every Sunday at 2 AM
0 2 * * 0 /usr/local/bin/zencore backup -s ~/Music -d ~/Backups -a tar.zst

Windows (Task Scheduler):

$action = New-ScheduledTaskAction -Execute "zencore.exe" `
  -Argument "backup -s %USERPROFILE%\Music -d D:\Backups"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 2am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Music Backup"

Encrypted Archival

# Maximum compression + encryption
zencore backup \
  -s ~/Music \
  -d ~/Backups \
  -n "archive_$(date +%Y)" \
  -a tar.zst \
  -e
# Edit config: compression_level = 19

πŸ”§ Development

Building

# Debug build
cargo build

# Release build (optimized)
cargo build --release

# Run tests
cargo test

# Run benchmarks
cargo bench

# Format code
cargo fmt

# Lint
cargo clippy

Project Structure

blues-zencore/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.rs              # Entry point
β”‚   β”œβ”€β”€ cli.rs               # CLI interface
β”‚   β”œβ”€β”€ compress.rs          # Compression logic
β”‚   β”œβ”€β”€ crypto.rs            # Basic encryption
β”‚   β”œβ”€β”€ crypto_extended.rs   # Advanced encryption
β”‚   β”œβ”€β”€ config.rs            # Configuration
β”‚   β”œβ”€β”€ fuzzer.rs            # Fuzzy finder
β”‚   β”œβ”€β”€ state.rs             # State tracking
β”‚   β”œβ”€β”€ archive_name.rs      # Smart naming
β”‚   β”œβ”€β”€ path_utils.rs        # Cross-platform paths
β”‚   └── utils.rs             # Utilities
β”œβ”€β”€ docs/                    # Documentation
β”œβ”€β”€ benches/                 # Benchmarks
β”œβ”€β”€ tests/                   # Integration tests
β”œβ”€β”€ Cargo.toml               # Dependencies
└── README.md                # This file

🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Ways to Contribute

  • πŸ› Report bugs
  • πŸ’‘ Suggest features
  • πŸ“– Improve documentation
  • πŸ”§ Submit pull requests
  • ⭐ Star the repository

Development Workflow

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

πŸ“Š Comparison

Feature Zencore 7-Zip tar+gzip WinRAR
Speed ⚑⚑⚑ ⚑⚑ ⚑ ⚑⚑
Cross-platform βœ… βœ… βœ… ❌
Interactive CLI βœ… ❌ ❌ ❌
Encryption βœ… AES-256 βœ… AES-256 ❌ βœ… AES-256
State tracking βœ… ❌ ❌ ❌
Auto-verify βœ… ❌ ❌ βœ…
Open source βœ… AGPL-3.0 βœ… LGPL βœ… GPL ❌
Free βœ… βœ… βœ… ❌ Trial

πŸŽ“ Learning Resources


πŸ› Troubleshooting

Common issues and solutions:

"Config file not found"

# Auto-generates on first run
zencore

# Or manually check location
zencore config

"Permission denied"

# Linux/macOS: Check permissions
chmod +x zencore
sudo chown $USER:$USER ~/.config/zencore

# Windows: Run as Administrator

Slow performance

# Optimize config:
num_threads = 0
compression_level = 3
default_algorithm = "tar.zst"

More solutions: Troubleshooting Guide


πŸ“œ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

See LICENSE for details.

What this means:

  • βœ… Free to use, modify, and distribute
  • βœ… Must share source code if modified
  • βœ… Must use same license for derivatives
  • βœ… Network use = distribution (must share source)

πŸ™ Acknowledgments

Built with amazing open-source projects:

  • Rust - Safe systems programming language
  • clap - Command-line argument parsing
  • dialoguer - Interactive prompts
  • indicatif - Progress bars
  • rayon - Parallel processing
  • zstd - Fast compression
  • ring - Cryptography

πŸ“ž Contact & Support


πŸ—ΊοΈ Roadmap

v1.0.0 (Current)

  • βœ… Core backup functionality
  • βœ… Multiple compression formats
  • βœ… Advanced encryption
  • βœ… Cross-platform support
  • βœ… State tracking

v1.1.0 (Planned)

  • Restore functionality
  • Incremental backups
  • Cloud integration (rclone)
  • Archive comparison
  • GUI version (Tauri)

v2.0.0 (Future)

  • Differential backups
  • Deduplication
  • Archive splitting
  • Remote backups (SSH/SFTP)
  • Plugin system

See ROADMAP.md for detailed plans.


⭐ Show Your Support

If you find this project useful, please consider:

  • ⭐ Starring the repository
  • 🐦 Sharing on social media
  • πŸ“ Writing a blog post
  • πŸ’° Sponsoring development

πŸ“ˆ Stats

GitHub stars GitHub forks GitHub watchers

GitHub issues GitHub pull requests GitHub last commit


Made with πŸ¦€ Rust and ❀️ by Blues24

⬆ Back to Top

Commit count: 0

cargo fmt