Naar de inhoud

Deze pagina is nog niet naar het Nederlands vertaald en wordt daarom in het Engels getoond. Het programma zelf is volledig naar het Nederlands vertaald.

Functies

Functies

Wat echt gebouwd, getest en in gebruik is. Wat half af is, wordt op deze pagina bij naam genoemd in plaats van gesuggereerd.

Compressie die haar eigen afweging kiest

Drie modi, één beslissing

Lightning voor snelheid, Balanced voor het midden, Compact voor de omvang. Het paneel zegt welke de snelste en welke de kleinste is in plaats van dat achter een cijfer van 1 tot 9 te verstoppen.

JAB-RIFT, vanaf nul geschreven

Een overeenkomstzoeker, een canonieke huffmanfase en een decodeertabel met twee niveaus — allemaal eigen code van dit project. Er is geen compressiebibliotheek van derden aan het programma gelinkt.

Alle kernen, binnen een geheugenbudget

Blokken worden parallel gecomprimeerd over de processors die je toestaat, binnen een geheugenplafond dat je in de instellingen zet. Met een lager plafond komt het nog steeds rond; er overlapt alleen minder.

Gedeeld woordenboek voor bestanden die op elkaar lijken

Versies van één document, exports met hetzelfde schema, logbestanden in hetzelfde formaat: een woordenboek dat over die bestanden heen is gebouwd mat 16,7% van het archief dat dezelfde bestanden zonder dat woordenboek opleveren. Staat standaard uit, want in een gemengde map levert het niets op.

Formaten

Schrijft .jab, .zip en .7z

.jab is de eigen container: het snelst te schrijven, met controlesommen per blok, en als enige van de drie kan het hier een wachtwoord dragen. .zip en .7z worden eenvoudig weggeschreven, zodat elk ander programma ze zonder gemopper opent.

Leest .jab, .zip, .7z en .tar

Store en deflate voor ZIP, LZMA2-mappen voor 7z inclusief het x86-vertakkingsfilter bij het lezen, ustar met lange GNU-namen voor tar.

Eerlijk over de gangbare formaten

Een .zip die hier geschreven wordt heeft geen AES, geen uitgebreide tijdstempels en geen Unix-rechten. Een .7z heeft één LZMA2-map per solide blok en geen filters per bestand. Wil je betere compressie, SHA-256 per blok of een wachtwoord, dan is het antwoord .jab.

Bescherming

AES-256-GCM via Windows CNG

Eén record per blok, een nonce van 96 bits en een tag van 128 bits, uit de implementatie van het besturingssysteem zelf. In dit project wordt geen cryptografie verzonnen.

Namen en hashes zijn ook versleuteld

Het manifest — bestandsnamen, groottes, tijdstempels, attributen — is één versleuteld record, en dat geldt ook voor de bloktabel met de SHA-256- en CRC-32C-waarden per blok.

Eén afleiding om een fout wachtwoord te beantwoorden

Een tag over lege platte tekst vertelt een lezer na één enkele PBKDF2-afleiding dat het wachtwoord fout is, in plaats van pas na het decoderen van het hele archief.

Herstelgegevens

Reserveer 1 tot 30% reservegegevens binnen een .jab en een beschadigd blok kan worden herbouwd in plaats van alleen gemeld. Ze moeten erin zitten vóór de schade, en alleen .jab kan ze dragen.

Integriteit

CRC-32C altijd, SHA-256 standaard

Elk blok draagt een CRC-32C; SHA-256 per blok staat aan tenzij je het uitzet. Het eerste zegt dat een blok fout is, het tweede maakt een stilletjes gemiste fout verwaarloosbaar onwaarschijnlijk.

Twee soorten controle

Grondig controleren leest kop, staart, bloktabel en manifest op samenhang en decodeert daarna elk blok. Alleen decoderen slaat de structuurronde over. Geen van beide schrijft een bestand.

Ronduit gezegd

Geen van beide controles kan je vertellen dat er niet met een archief is geknoeid: wie de gegevens kan wijzigen, kan beide waarden opnieuw berekenen. Alleen een archief met wachtwoord beantwoordt die vraag.

Schrijven gebeurt in één keer

Een archief wordt naar een .partial-bestand geschreven en pas hernoemd als het compleet is, zodat een afgebroken run nooit iets achterlaat dat afgemaakt lijkt.

Gereedschap

Splitsen en samenvoegen

Schrijft .001, .002, … naast het archief, op 10, 25, 100 of 700 MB, of op elke grootte die je intikt. De delen zijn op zichzelf niet leesbaar; bij het samenvoegen wordt elk deel gecontroleerd voordat er wordt geschreven.

Dubbele bestanden vinden

Vergelijkt hele bestanden via SHA-256 binnen een archief, zodat alleen exacte kopieën worden gemeld, en vertelt hoeveel ruimte het verwijderen van de overtollige zou opleveren. Lege bestanden worden overgeslagen.

Vergelijken met een map

Controleert of een map nog overeenkomt met wat er gearchiveerd is. Beide kanten worden gehasht, dus ook een wijziging die grootte en tijdstempel gelijk liet, wordt gevonden.

Scannen en herstellen

Scannen meldt welke scherven beschadigd zijn en schrijft niets. Herstellen schrijft precies de foute delen opnieuw, met behulp van de herstelgegevens.

Het venster

Direct2D, voor dit programma getekend

Geen webweergave, geen framework: de interface wordt met Direct2D en DirectWrite getekend, en daarom start ze meteen en blijft ze reageren terwijl een taak loopt.

Archiefviewer met voorvertoning

Open een archief, sorteer en filter de inhoud en bekijk tekst, afbeeldingen, pdf — één pagina — en audio zonder eerst uit te pakken.

Een wachtrij, geen blokkerend wachten

Taken lopen één voor één in de volgorde waarin ze zijn toegevoegd. Een wachtende taak kun je verplaatsen of weggooien, de lopende kun je pauzeren, en een lange taak kan naar de achtergrond in plaats van het venster te blokkeren.

Zoeken door je archieven heen

Vind een archief op naam en druk op Enter om in de gevonden archieven te kijken. Het zegt ronduit hoeveel het las, hoeveel er ontbraken en hoeveel het niet kon openen.

Integratie met Verkenner, naar keuze

Rechtsklikitems om in te pakken, uit te pakken en te testen, toegevoegd vanuit het instellingenscherm en op diezelfde plek weer verwijderd.

28 talen

Elke tekst in de interface is naar 28 talen vertaald, met meervoudsregels per taal in plaats van één Engelse regel die overal wordt toegepast.

Er is ook een opdrachtregel

Dezelfde motor, geschikt voor scripts. Maken, uitpakken, opsommen, testen en controleren, met het aantal threads, het geheugenbudget en het integriteitsniveau als schakelaars. Een wachtwoord wordt nooit als argument aanvaard — de volledige opdrachtregel van een lopend proces is leesbaar voor andere processen van hetzelfde account — dus het wordt van de standaardinvoer gelezen of zonder echo gevraagd.

Handleiding
jab.exe
> jab c .\project -o project.jab --mode lightning
  scanning   412 files, 268 MB
  writing    project.jab
  output     96.4 MB (36.0% of input)
  elapsed    1.84 s   —   145.7 MB/s

> jab t project.jab
  412 entries · 268 MB checked · structure and every block
  ok

> jab x project.jab -o .\restored --overwrite fail
  412 files written, 0 skipped
  elapsed    0.94 s

Nog niet gebouwd, en hier gezegd

  • Geen installatieprogramma en geen handtekening: 1.0 is een draagbare build, en Windows waarschuwt voor een niet-ondertekend programma.

  • Geen indeling van rechts naar links, en daarom zijn Arabisch en Hebreeuws wel vertaald maar niet uitgebracht.

  • Een incrementeel archief kan een verwijdering niet vastleggen, en sleutelbestanden zijn niet gebouwd.

  • De schaling over threads blijft onder die van RAR, en RAR5 Normal comprimeert nog altijd kleiner.