Leggere e riparare file nel browser, senza che i byte tocchino il tuo server
Questa pagina non è per chi ha un file rotto — per quello c'è il tool, gratis. È per chi costruisce software e ha il problema opposto: deve far aprire, leggere o riparare i documenti dei propri utenti, e preferirebbe non riceverli mai.
Il punto tecnico
Tutti i motori di FileSano sono scritti in TypeScript, lavorano su Uint8Array e non hanno nessuna dipendenza esterna. Girano identici nel browser e in Node: nessun binario nativo, nessun WASM da servire, nessun servizio di conversione da chiamare. Il file si legge dove già si trova, cioè sul dispositivo di chi lo apre.
La conseguenza è architetturale, non di marketing: se i byte del documento non arrivano al tuo backend, non hai un archivio di documenti altrui da proteggere, da cifrare, da conservare, da cancellare su richiesta e da dichiarare. Un'informativa e una valutazione d'impatto su un flusso che non trasferisce dati sono un altro mestiere rispetto alle stesse cose su una coda di upload.
Dove serve calcolare una correzione fuori dal browser, viaggia solo un pacchetto strutturale: intestazioni, nomi di colonne o di file interni, offset, dimensioni, CRC. Mai record, mai celle, mai testo. La proprietà è verificata dai test, non promessa a parole: un pacchetto deve contenere il nome del campo RAGSOC e non deve contenere il valore Rossi.
Cosa c'è dentro
Ogni motore ha la sua suite di test con lo stesso schema: un generatore di file sintetici conformi alle specifiche, un corruttore che riproduce i danni veri, le asserzioni sulla diagnosi e sulla riparazione, e — dove è possibile — la verifica con un parser di terze parti, che è la colonna «Validato» qui sopra.
Cosa NON fanno (la parte che conta)
Un motore di riparazione che promette tutto è un motore che mente. Questi dichiarano il limite invece di inventare un risultato: se in un OLE2 è distrutta la FAT, se in un PDF il catalogo sta in un object stream cifrato, se un archivio 7z ha perso l'end header in coda, la risposta è «non recuperabile», con la ragione. Non validano firme digitali (il P7M lo aprono, non lo verificano) e non ricostruiscono gli XML interni di un xlsx. Un indice non si ripara: si rigenera.
Stato onesto
Non è un prodotto: non c'è un pacchetto npm pubblicato, non c'è una licenza commerciale, non c'è una società. C'è un tool gratuito online, i motori che lo fanno funzionare, e la loro suite di test. L'unica cosa che deciderebbe se impacchettarli è sapere che servono a qualcuno.
Non c'è un pacchetto pubblicato, non c'è un listino e non c'è un'azienda dietro: è un progetto in validazione. Prima di trasformare i motori in una libreria con licenza e documentazione, vorrei sapere se qualcuno la userebbe davvero.
Vuoi vedere i motori all'opera prima di crederci? Butta un file rotto nel tool: la diagnosi gira nella scheda che hai aperto, e il pannello Rete del browser ti mostra cosa parte davvero.