{
  "markdown": "---\ntype: Reference\ntitle: robocopy-ingest-cli (rustcopy) — README\ndescription: Panoramica del progetto — cosa fa, come si installa, primi comandi e indice della documentazione.\nstatus: stable\ngenerated:\n  by: process:claude-code\n  at: 2026-08-06T00:00:00Z\n---\n\n<p align=\"center\">\n  <img src=\"images/rustcopy.jpg\" alt=\"Logo di rustcopy: un ingranaggio con due frecce intrecciate e la scritta RUSTCOPY\" width=\"220\">\n</p>\n\n# 🚀 robocopy-ingest-cli (rustcopy)\n\n[![CI](https://github.com/matrixNeo76/rustcopy/actions/workflows/ci.yml/badge.svg)](https://github.com/matrixNeo76/rustcopy/actions/workflows/ci.yml)\n[![Audit di sicurezza](https://github.com/matrixNeo76/rustcopy/actions/workflows/security-audit.yml/badge.svg)](https://github.com/matrixNeo76/rustcopy/actions/workflows/security-audit.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Crate version](https://img.shields.io/badge/version-6.0.0-informational.svg)](Cargo.toml)\n\n**Backup e ingestion di grandi volumi di dati su Windows, con verifica di integrità.** `rustcopy`\navvolge `robocopy.exe` in un binario Rust che ne risolve i limiti pratici sui dataset enormi —\ndeadlock sulle pipe, saturazione della RAM, nessuna verifica dei checksum — e aggiunge backup a\ngenerazioni, cifratura, scheduling e notifiche. Progettato per volumi da 50 GB a oltre 10 TB con\nmilioni di file.\n\n```console\n$ rustcopy --source C:\\dati --dest E:\\backup\\dati --verify-integrity --hash-algo blake3 `\n    --report-path E:\\backup\\report.json --log-path E:\\backup\\ingest.log\n\nInventory: 8 file(s) matching *, 2.50 MB\n\nVerifying integrity with Blake3...\n\nSource          : C:\\dati\nDestination     : E:\\backup\\dati\nInventory       : 8 file(s), 2.50 MB\nRobocopy        : 2.50 MB in 0.06s (44.13 MB/s), exit code 1, 0 retry attempt(s)\nIntegrity       : PASSED (8 file(s) checked, 0 mismatch(es), 0 missing)\n\nJSON report: E:\\backup\\report.json\nLog file   : E:\\backup\\ingest.log\n```\n\n> [!NOTE]\n> I backup li esegue **solo la CLI**, e non c'è monitoraggio live: il progresso si segue dalla\n> progress bar a terminale; a run concluso restano il report JSON e la dashboard HTML statica\n> (`--html-report-path`).\n>\n> Dalla milestone **7.0.0** esiste anche una **console desktop** (Tauri, componente opzionale\n> dell'installer): mostra job, impostazioni risolte e storico, avvia backup avviando la stessa CLI\n> come processo separato, e prepara proposte di configurazione in file nuovi. Non installa servizi\n> né pianificazioni, non forza un mirror non presidiato, e non tocca mai la configurazione in uso —\n> vedi [ROADMAP.md](ROADMAP.md) e [`PIANO_GUI.md`](PIANO_GUI.md).\n\n---\n\n## 📚 Documentazione\n\n| Documento | Contenuto |\n|---|---|\n| 📋 **[Riferimento CLI](docs/cli-reference.md)** | Tutti i flag, i codici di uscita e il comportamento dettagliato di ogni funzionalità. |\n| 📦 **[Installazione](docs/installation.md)** | Requisiti, installer Windows, deploy silenzioso, notify-server. |\n| 📖 **[RUNBOOK](RUNBOOK.md)** | Flussi operativi, copie multi-sorgente, comandi reali verificati sul campo. |\n| 📄 **[ARCHITECTURE](ARCHITECTURE.md)** | Diagrammi, pipeline interna, gestione memoria anti-OOM, struttura dei moduli. |\n| 🗺️ **[ROADMAP](ROADMAP.md)** | Storico delle release e pianificazione futura. |\n| 📊 **[ANALYSIS](ANALYSIS.md)** | Audit di robustezza e difetti storici documentati. |\n| 📝 **[CHANGELOG](CHANGELOG.md)** | Cronologia delle versioni. |\n| 🤖 **[AGENTS](AGENTS.md)** | Linee guida per sviluppatori e contributori AI. |\n\n---\n\n## ⚡ Installazione\n\n`rustcopy` è un eseguibile **portable**: si copiano gli `.exe` e si lanciano da qualunque cartella.\n\n```powershell\n# Build dai sorgenti\ncargo build --release -p rustcopy-cli --features notify-server\n```\n\nDue requisiti verificati sul binario compilato:\n\n- **Visual C++ Redistributable x64** (Microsoft, gratuito) — il binario `windows-msvc` importa\n  `VCRUNTIME140.dll`, che non è presente in un'installazione Windows pulita. Senza, non parte.\n- **`robocopy.exe` di sistema**, presente su ogni Windows da Vista in poi: non serve installarlo,\n  ma il tool non lo include.\n\nIl repo include anche uno script **Inno Setup** (`installer/rustcopy.iss`) — un installer unico\nin cui la console grafica è un componente opzionale (F60) — che genera un vero\n`setup.exe` con disinstaller, aggiunta al PATH e deploy silenzioso — istruzioni complete in\n**[Installazione e distribuzione](docs/installation.md)**, che copre anche il **notify-server**\nper le notifiche multi-canale.\n\n---\n\n## 🏃 Primi comandi\n\n```powershell\n# Copia con verifica di integrità\nrustcopy --source \"C:\\dati\" --dest \"E:\\backup\" --verify-integrity --hash-algo blake3\n\n# Simulazione: mostra cosa farebbe, senza scrivere nulla\nrustcopy --source \"C:\\dati\" --dest \"E:\\backup\" --dry-run\n\n# Backup a generazioni: il primo run dev'essere full, poi si incrementa\nrustcopy --source \"C:\\dati\" --dest \"E:\\backup\" --backup-type full\nrustcopy --source \"C:\\dati\" --dest \"E:\\backup\" --backup-type incremental --keep-generations 3 --force-purge\n```\n\nI flag essenziali per l'uso quotidiano:\n\n| Flag | Cosa fa |\n|---|---|\n| `--source` / `--dest` | Cartella di origine e destinazione. |\n| `--verify-integrity` | Confronta i checksum sorgente/destinazione a copia finita. |\n| `--hash-algo <sha256\\|blake3\\|xxh3>` | Algoritmo di verifica; `blake3` è 3-5x più veloce di `sha256`. |\n| `--dry-run` | Simula senza modificare nulla. |\n| `--config <PATH>` | Carica i parametri da un file TOML riutilizzabile. |\n| `--backup-type <full\\|incremental\\|differential>` | Attiva il backup a generazioni. |\n\n**[→ Riferimento completo: tutti i flag e i codici di uscita](docs/cli-reference.md)**\n\n---\n\n## ✨ Funzionalità\n\n- **Verifica di integrità multi-core** — checksum SHA-256, BLAKE3 o xxHash3 parallelizzati con\n  Rayon su tutte le CPU. `--fast-verify` salta i file già verificati e immutati.\n- **Backup a generazioni** — full, incrementale e differenziale in sottocartelle separate, con\n  ritenzione per cicli (`--keep-generations`) che non orfana mai una catena.\n- **Resistente ai dataset enormi** — streaming dell'output di robocopy senza deadlock, logging su\n  canale limitato, cifratura a blocchi: la memoria di picco non cresce con la dimensione dei dati.\n- **Disaster recovery** — `--restore-from` inverte un backup a partire dal suo report JSON;\n  `--resume-from` riprende un run interrotto da `Ctrl+C`.\n- **Cifratura AES-256-GCM** — a blocchi da 1 MiB, con la controparte `--decrypt`.\n- **Volume Shadow Copy** — `--vss-snapshot` per leggere file bloccati da altri processi.\n- **Automazione** — scheduling via Task Scheduler, servizi Windows, comandi pre/post job,\n  configurazioni multi-job in TOML.\n- **Notifiche** — report JSON, dashboard HTML standalone, webhook HTTP e un **notify-server**\n  opzionale che li inoltra su più canali.\n\n**[→ Dettaglio del comportamento di ogni funzionalità](docs/cli-reference.md#-comportamento-dettagliato-per-funzionalità)**\n\n---\n\n## 🧪 Sviluppo\n\n```bash\ncargo test --locked --workspace --exclude rustcopy-gui --all-targets                                   # 506 test\ncargo test --locked --workspace --exclude rustcopy-gui --all-targets --features rustcopy-cli/notify-server  # 521 test\n```\n\nCI su Windows e Linux, `clippy -D warnings` e `cargo fmt --check` su entrambe le configurazioni di\nfeature, più un audit RustSec settimanale delle dipendenze. Convenzioni e regole architetturali in\n[AGENTS.md](AGENTS.md).\n\n---\n\n## 📄 Licenza\n\nRilasciato sotto licenza **MIT**.\n",
  "bytes": 7473,
  "sha": "e181055057f1386eb5e8ca105d98861cb7096f4c6070d3effa099ab65219aaa0",
  "repo_slug": "matrixneo76/rustcopy",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_matrixneo76_rustcopy_index_md_8579004e/readme"
}