Przejdź do treści

Ta strona nie jest jeszcze przetłumaczona na Polski, więc wyświetla się po angielsku. Sam program jest przetłumaczony na Polski w całości.

Funkcje

Funkcje

To, co naprawdę zbudowane, przetestowane i działające. Rzeczy niedokończone są na tej stronie wymienione z nazwy, a nie przemilczane.

Kompresja, która sama wybiera kompromis

Trzy tryby, jedna decyzja

Lightning dla szybkości, Balanced na środek, Compact dla rozmiaru. Panel mówi wprost, który jest najszybszy, a który daje najmniejsze archiwum, zamiast ukrywać to za liczbą od 1 do 9.

JAB-RIFT, napisany od zera

Wyszukiwarka dopasowań, kanoniczny etap Huffmana i dwupoziomowa tablica dekodowania — wszystko we własnym kodzie tego projektu. Do programu nie dolinkowano żadnej zewnętrznej biblioteki kompresji.

Wszystkie rdzenie, ale w ramach pamięci

Bloki pakowane są równolegle na tylu procesorach, na ile pozwolisz, w granicach limitu pamięci ustawionego w ustawieniach. Przy niższym limicie zadanie i tak się skończy; po prostu mniej się nakłada.

Wspólny słownik dla plików podobnych do siebie

Kolejne wersje jednego dokumentu, eksporty o tym samym schemacie, dzienniki w jednym formacie: słownik zbudowany na nich wszystkich dał zmierzone 16,7% archiwum, jakie te same pliki tworzą bez niego. Domyślnie wyłączony, bo w folderze z różnymi rzeczami nic nie daje.

Formaty

Zapisuje .jab, .zip i .7z

.jab to format własny: zapisywany najszybciej, z sumami kontrolnymi na blok i jako jedyny z trzech potrafi tu nieść hasło. .zip i .7z zapisywane są zwyczajnie, żeby każde inne narzędzie otworzyło je bez zastrzeżeń.

Czyta .jab, .zip, .7z i .tar

Store i deflate dla ZIP, foldery LZMA2 dla 7z wraz z filtrem skoków x86 przy odczycie, ustar z długimi nazwami GNU dla tar.

Uczciwie o popularnych formatach

Zapisany tutaj .zip nie ma AES, rozszerzonych znaczników czasu ani uprawnień uniksowych. .7z ma jeden folder LZMA2 na blok solidny i żadnych filtrów per plik. Jeśli potrzebna jest lepsza kompresja, SHA-256 na blok albo hasło, odpowiedzią jest .jab.

Ochrona

AES-256-GCM przez Windows CNG

Jeden rekord na blok, 96-bitowa jednorazowa wartość i 128-bitowy znacznik, z implementacji samego systemu operacyjnego. W tym projekcie nie wymyśla się kryptografii.

Nazwy i skróty też są zaszyfrowane

Manifest — nazwy plików, rozmiary, znaczniki czasu, atrybuty — to jeden zaszyfrowany rekord, podobnie jak tablica bloków z wartościami SHA-256 i CRC-32C każdego bloku.

Jedno wyprowadzenie, by odpowiedzieć na złe hasło

Znacznik liczony na pustym tekście jawnym mówi czytającemu, że hasło jest złe, po jednym wyprowadzeniu PBKDF2, a nie dopiero po zdekodowaniu całego archiwum.

Dane naprawcze

Zarezerwuj od 1 do 30% danych zapasowych wewnątrz .jab, a uszkodzony blok da się odbudować, a nie tylko zgłosić. Muszą zostać dodane przed uszkodzeniem i tylko .jab potrafi je nieść.

Spójność

CRC-32C zawsze, SHA-256 domyślnie

Każdy blok niesie CRC-32C; SHA-256 na blok jest włączone, dopóki tego nie wyłączysz. Pierwsze mówi, że blok jest zły, drugie sprawia, że ciche przeoczenie staje się znikomo prawdopodobne.

Dwa rodzaje sprawdzenia

Sprawdzenie dokładne czyta nagłówek, stopkę, tablicę bloków i manifest pod kątem spójności, a potem dekoduje każdy blok. Samo dekodowanie pomija przebieg strukturalny. Żadne z nich nie zapisuje pliku.

Mówiąc wprost

Żadne sprawdzenie nie powie, że archiwum nie zostało podmienione: kto może zmienić dane, może przeliczyć obie wartości. Na to pytanie odpowiada tylko archiwum chronione hasłem.

Zapis odbywa się w całości

Archiwum zapisywane jest do pliku .partial i dopiero po skompletowaniu zmienia nazwę, więc przerwane uruchomienie nigdy nie zostawi czegoś, co wygląda na gotowe.

Narzędzia

Dzielenie i łączenie

Zapisuje .001, .002, … obok archiwum, po 10, 25, 100 albo 700 MB, lub w dowolnym wpisanym rozmiarze. Części same z siebie nie są czytelne; przy łączeniu każda część jest sprawdzana przed zapisem.

Szukanie duplikatów

Porównuje całe pliki przez SHA-256 wewnątrz archiwum, więc zgłaszane są wyłącznie dokładne kopie, i podaje, ile miejsca odzyskałoby usunięcie nadmiarowych. Puste pliki są pomijane.

Porównanie z folderem

Sprawdza, czy folder nadal odpowiada temu, co zarchiwizowano. Obie strony są skracane funkcją skrótu, więc wykryta zostaje też zmiana, która zachowała ten sam rozmiar i znacznik czasu.

Skanowanie i naprawa

Skanowanie zgłasza, które odłamki są uszkodzone, i nic nie zapisuje. Naprawa przepisuje dokładnie te części, które są złe, korzystając z danych naprawczych.

Okno

Direct2D, rysowane dla tego programu

Żadnego widoku webowego ani frameworka: interfejs rysują Direct2D i DirectWrite, dlatego uruchamia się natychmiast i pozostaje responsywny w czasie trwania zadania.

Przeglądarka archiwum z podglądem

Otwórz archiwum, posortuj i przefiltruj zawartość, a tekst, obrazy, PDF — jedną stronę — i dźwięk obejrzyj bez wcześniejszego rozpakowywania.

Kolejka, a nie blokujące czekanie

Zadania wykonują się po kolei, w kolejności dodania. Zadanie czekające można przestawić albo usunąć, trwające wstrzymać, a długie przenieść w tło, zamiast blokować okno.

Szukanie w Twoich archiwach

Znajdź archiwum po nazwie, a potem naciśnij Enter, żeby zajrzeć do znalezionych. Program wprost mówi, ile odczytał, ilu brakowało i ilu nie udało się otworzyć.

Integracja z Eksploratorem, do wyboru

Pozycje menu podręcznego do pakowania, rozpakowywania i testowania, dodawane z ekranu ustawień i usuwane w tym samym miejscu.

28 języków

Każdy napis w interfejsie przetłumaczono na 28 języków, z regułami liczby mnogiej właściwymi dla każdego języka, a nie jedną angielską regułą narzuconą wszystkim.

Jest też wiersz poleceń

Ten sam silnik, nadający się do skryptów. Tworzenie, rozpakowywanie, listowanie, testowanie i weryfikacja, z liczbą wątków, budżetem pamięci i poziomem spójności jako przełącznikami. Hasło nigdy nie jest przyjmowane jako argument — pełny wiersz poleceń działającego procesu mogą odczytać inne procesy tego samego konta — więc czytane jest ze standardowego wejścia albo pytane bez echa.

Poradnik
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

Jeszcze nie zrobione — i tak napisane

  • Brak instalatora i brak podpisu kodu: 1.0 to wersja przenośna, a Windows ostrzeże przed niepodpisanym programem.

  • Brak układu od prawej do lewej, dlatego arabski i hebrajski są przetłumaczone, ale wstrzymane.

  • Archiwum przyrostowe nie potrafi zapisać usunięcia, a pliki kluczy nie zostały zaimplementowane.

  • Skalowanie na wątkach wciąż ustępuje RAR-owi, a RAR5 Normal nadal pakuje mocniej.