архиватор без потерь · v0.1.0
Сжимает телеметрию в 2.5-7 раз лучше xz
Numerus понимает числа в файле: видит столбцы, шаг времени, плавные изменения и повторяющиеся форматы. Показания датчиков, временные ряды, табличные выгрузки и логи восстанавливаются побайтово, до последнего пробела.
# 100 МБ показаний датчиков, 2.4 млн строк $ head -3 sensors.csv timestamp,sensor_id,temperature,humidity,pressure,voltage 1700000001,4,21.49,45.0,1013.25,3.307 1700000002,1,21.45,44.8,1013.27,3.305 $ numerus compress -i sensors.csv -o sensors.numerus sensors.csv -> sensors.numerus: 104857601 -> 6578514 bytes real 4.3s $ xz -9 -k sensors.csv && ls -l sensors.csv.xz 16320872 sensors.csv.xz real 66s $ numerus decompress -i sensors.numerus -o check.csv && cmp sensors.csv check.csv ✓ байт в байт $
для чего
Четыре задачи, где Numerus выигрывает
Выигрыш - во сколько раз архив меньше, чем у лучшего из gzip, bzip2, xz -9e, zstd -19 и brotli на том же файле.
Телеметрия и датчики, IoT
SCADA, умные счётчики, метеостанции, мониторинг оборудования.
"sensor","ts","value","status" "S-00","2026-04-01 00:00:00","20.1","OK" "S-01","2026-04-01 00:00:01","20.0","OK"
Временные ряды и числовые выгрузки
Метки времени, цены, котировки, идентификаторы, координаты.
1000001,99.92,9 1000003,99.91,5 1000004,99.85,19
Табличные выгрузки
Заказы, продажи, события из баз данных и учётных систем.
id,created,city,customer,amount,comment 100001,2026-02-01 00:00:57,"Paris, France","Carl ""C.J."" Jones",966.30,
Логи веб-серверов и приложений
nginx, Apache, балансировщики, сервисы с единым форматом строки.
10.2.125.58 - - [01/Nov/2026:00:00:00 +0000] "GET /api/items/3279 HTTP/1.1" 200 88896 2026-11-01 00:00:00.655 INFO [worker-4] Request 26226 done in 380 ms
замеры
Размер архива, меньше - лучше
Каждый архив распакован и сверен с исходным файлом. Полосы в масштабе внутри каждого графика. Apple M2, синтетические данные: на реальных файлах выигрыш может отличаться.
| файл | архиватор | архив | доля | сжатие | распаковка |
|---|---|---|---|---|---|
| numerus | 6.6 | 6.3% | 4.3 | 0.9 | |
| xz -9 | 16.3 | 15.6% | 66 | - | |
| zstd -19 | 21.8 | 20.8% | 58 | - | |
| gzip -9 | 23.8 | 22.7% | 14 | - | |
| numerus | 68.2 | 6.4% | 50 | 8 | |
| xz -9 -T0 | 167.7 | 15.6% | 702 | - | |
| zstd -19 -T0 | 221.8 | 20.7% | 225 | - | |
| gzip -9 | 245.5 | 22.9% | 113 | - |
На 1 ГБ архив Numerus в 2.5 раза меньше, чем у xz, а сжатие в 14 раз быстрее: 50 секунд против 12 минут, хотя xz тоже работал во все потоки. Большие файлы режутся на блоки по 8 МиБ и сжимаются на всех ядрах, память около 1 ГБ и почти не зависит от размера файла.
как работает
Каждый столбец получает свою модель
Обычный архиватор видит в 1700000002 десять символов. Numerus видит число, которое на 1 больше предыдущего, и хранит только разницу.
1700000001,4,21.49,45.0 1700000002,1,21.45,44.8 1700000003,14,21.48,44.8 1700000004,9,21.52,44.9
время 1700000001 +1 +1 +1 датчик 4 1 14 9 (1-16) темпер. 2149 -4 +3 +4 (×100) влажн. 450 -2 0 +1 (×10)
Столбцы и разности
Время, счётчики и плавные величины превращаются в маленькие разности, почти все одинаковые.
Шаблоны и словари
Даты, IP-адреса, коды вроде SKU-1074 и категории хранятся один раз, меняются только числа.
Побайтово и с проверкой
Ведущие нули, 12.50, 1.5E-07, кавычки CSV и CRLF сохраняются. Каждый архив сразу проверяется распаковкой, CRC32 ловит любое повреждение.
для mac
Правый клик → Сжать в Numerus
- Установщик .pkg ставит приложение, команду для Терминала и пункты меню Finder. Галочки включены по умолчанию.
- Окно прогресса показывает, сколько сжато, сколько осталось и итог: «1.07 ГБ → 68 МБ».
- Двойной щелчок по .numerus распаковывает архив рядом с ним.
не подходит
Для этого берите zstd или xz
Статьи, письма, JSON со строками. Numerus их не примет.
Программы, базы данных, изображения, видео, архивы, веса нейросетей.
Хеши, ключи, случайные цифры: предел 3.32 бита на цифру, его достигают все.
Системные логи и многострочные дампы: вдвое лучше gzip, но наравне с zstd.
запуск
Две команды
Результат пишется во временный файл и заменяет выходной только после успеха. Код выхода 0 или 1, удобно в скриптах и cron.
$ numerus compress -i orders.csv -o orders.numerus orders.csv -> orders.numerus: 7000054 -> 507655 bytes $ numerus decompress -i orders.numerus -o orders.csv # большие файлы: блоки на всех ядрах, предел распаковки $ numerus compress -i 2024.csv -o 2024.numerus -j 8 $ numerus decompress -i 2024.numerus -o 2024.csv --max-output 20G
$ numerus compress -i day.csv -o day.numerus Numerus trial: 14 of 14 days left. ... $ numerus license install NUM-2026-0001.txt License NUM-2026-0001: ACME, edition team, users 5, expires 2027-11-30, ... # ночной архив логов и выгрузок $ for f in /var/log/nginx/*.log.1; do numerus compress -i "$f" -o "$f.numerus" && rm "$f" done # распаковка работает и без лицензии $ numerus decompress -i old.numerus -o old.csv
скачать · v0.1.0
Один файл, без установки
Распакуйте архив и положите numerus в PATH. Первые 14 дней всё работает без лицензии, потом для сжатия нужен файл лицензии. Распаковка работает всегда.
Контрольные суммы: SHA256SUMS. Проверка после скачивания:
# macOS shasum -a 256 -c SHA256SUMS --ignore-missing # Linux sha256sum -c SHA256SUMS --ignore-missing # Windows PowerShell Get-FileHash numerus-0.1.0-windows-x86_64.zip -Algorithm SHA256
лицензия
Personal, Team, Site
Personal
Один человек, до 3 устройств. Год обновлений включён.
Купить по почтеTeam
До 10 человек одной организации. Год обновлений включён.
Купить по почтеSite
Вся организация, без ограничения числа людей и устройств. Год обновлений включён.
Купить по почтеПока продаём по почте. Нажмите «Купить по почте» или напишите на i@pfrolov.ru, какая лицензия нужна и на кого её оформить. Пришлём счёт для оплаты переводом, а после оплаты в течение 2 рабочих дней - файл лицензии. Оплата картой на сайте появится позже.
- 14 дней полный доступ. Скачайте и сжимайте свои данные без лицензии. Потом без лицензии работает только распаковка.
- Лицензия проверяется без интернета. Это подписанный файл. Командная строка не выходит в сеть, а окно Numerus раз в сутки только спрашивает у сайта номер новой версии; это отключается в меню.
- Ваши архивы всегда открываются. Распаковка работает без лицензии и после окончания её срока.
- Платите один раз. Лицензия бессрочная, год обновлений включён. Дальше обновления можно продлить за 50% цены - по желанию: версии, вышедшие за оплаченный год, работают всегда.
- Как купить. Пока только по почте: счёт, оплата переводом, файл лицензии в течение 2 рабочих дней после оплаты. В течение 7 дней после оплаты можно вернуть деньги.
- Встраивание в свои продукты и сервисы (OEM, SDK, SaaS) - по отдельному договору.
покупка и вопросы
Пришлите пример своих данных: покажем, сколько даст Numerus именно на них.