// infrastructure

FINALMKE · Mathematically Improved Kompression Engine · Linux / Win / Android

M.I.K.E.

html M.I.K.E. — Mathematically Improved Kompression Engine // No Hat Hacker
// Lossless compression engine0.17.122 November 2026

M.I.K.E.

Mathematically Improved Kompression Engine

Some data isn't compressed. It's a puzzle waiting to be solved.

MIKE pairs a new idea, the puzzle compressor (patent pending), with the best of classic compression, and autotunes the mix for every block it sees. On 60 real files it removes 64.8% of the bytes. The strongest rival we could find removes 36.6%. Every result restores byte for byte.

64.8%
saved on 60 real files at --power
best rival (zpaq -m5): 36.6%
58 / 60
files where MIKE is smallest
against seven rivals at max
3.8×
faster --fast than 0.17.9,
same output
4 modes
streaming · storage ·
cold storage · deep archive
// The puzzle compressor · patent pending

Classic compressors pack the bytes. The puzzle compressor finds the rule that made them.

Every mainstream tool, from ZIP to zstd, does the same thing: find repeats, then entropy-code what is left. That approach has a hard floor. MIKE adds a second one. If the data came from a rule (a counter, a polynomial, a recurrence, a sampled signal, a table of numbers), the shortest way to store it is the rule itself. The puzzle compressor recognises the generator, stores the formula and the few values it cannot predict, and on restore runs the formula to get every byte back.

On numeric series · 5 files, 3.1 MB
97.9% saved

The best rival, zpaq at its strongest setting, saves 48.5% on the same files. xz saves less. That is the puzzle compressor alone: no other tool looks for the rule.

Then it reopens what others leave sealed

Office files, PDFs, PNGs and gzip archives are already compressed, so classic tools get almost nothing from them. MIKE unpacks them, codes the contents, and on restore rebuilds the original container byte for byte. The same goes for JPEG and MP3 internals, and for whole virtual disks (VMDK, OVA, qcow2, raw), which it reads file by file through ext4, XFS, NTFS and LVM2.

// Autotune

Puzzle or classic? MIKE tries both, block by block, and keeps the winner.

No single method wins on all data. So MIKE doesn't pick one. For each block it runs the candidates side by side: the puzzle compressor, the specialists that reopen known formats, and the classic coders (LZ matching, Huffman and arithmetic coding, context mixing). It keeps whichever result is smallest and decodes back exactly. The mode you choose sets how many candidates it is allowed to try. Because the plain classic coder is always among them, MIKE never does worse than storing the data plainly, plus a few bytes of header.

Numeric series
97.9%

The puzzle compressor wins: formulas plus residuals.

Office documents
40.1%

Reopen the ZIP container, then classic coding on the XML inside. Best rival: 1.2%.

Prose & source code
77–88%

Context mixing wins: a text model predicting each bit from what came before.

// saved share at --power on the 60-file set below · the mix is chosen per block, so one file can use all three

// Benchmarks · 60 real files · seven rivals at their maximum

MIKE is smallest on 58 of 60 files.

Documents, PDFs, photos, archives, text, code, tables and numeric series, 15.4 MB in all. Every rival ran at its strongest setting, one job at a time, on a low-spec VM (2 vCPU, 4 GB). Every MIKE result was decoded and compared byte for byte.

gzip -929.0%
bzip2 -929.0%
zstd --ultra -2231.5%
Brotli q1132.5%
7-Zip -mx=933.1%
xz -9e33.2%
zpaq -m536.6%
MIKE --fast44.9%
MIKE default61.1%
MIKE --power64.8%

// share of the 15,378,200 bytes removed · longer bar = smaller output

ToolOutput (bytes)SavedCompressDecompressSmallest on
gzip -910,923,62029.0%1.0 s0.2 s–
bzip2 -910,917,88329.0%1.1 s0.7 s–
zstd --ultra -2210,529,41031.5%4.2 s0.2 s–
Brotli q1110,373,52832.5%20.2 s0.2 s–
7-Zip -mx=910,292,53433.1%1.6 s0.5 s–
xz -9e10,273,83233.2%6.3 s0.4 s–
zpaq -m5 best rival9,757,22536.6%43.4 s44.4 s–
MIKE --fast8,471,57844.9%4.1 s0.4 s5 / 60
MIKE default5,988,60661.1%38.4 s8.4 s50 / 60
MIKE --power5,413,73364.8%115.7 s29.2 s58 / 60
MIKE --extreme5,407,84764.8%141.5 s31.1 s59 / 60
File typeFilesBest rivalMIKE defaultMIKE --power
Numeric series5zpaq 48.5%97.9%97.9%
Office (docx/xlsx/pptx/odt)12zstd 1.2%24.9%40.1%
PDF8zpaq 20.8%43.6%45.4%
JPEG photos12zpaq 7.0%20.1%21.7%
CSV table1zpaq 87.6%90.0%90.5%
Prose & Markdown3zpaq 76.2%73.9%77.2%
HTML / XML / SVG / JSON8zpaq 89.1%89.0%90.6%
gzip archives6xz 2.7%88.5%88.8%
Source code2zpaq 86.4%85.5%87.8%
PNG1Brotli 56.9%82.8%91.0%
MP31Brotli 4.2%4.5%6.8%
H.264 clip1Brotli 44.2%43.6%43.5%

// green = MIKE beats the best rival on that type · MIKE rows measured with the 0.17.11 engine on 2 Nov 2026; 0.17.12 codes these files the same or smaller · rival rows from the same VM and files

// Logs

Machine and access logs: at --power, about half the size of xz -9e.

A real public web-server access log (the NASA HTTP trace, 32 MB) and a Linux system journal (3.6 MB), same VM. New in 0.17.12: big text is coded in chunks the text model can take, on every core, where before it fell back to the classic coder.

ToolAccess logtime in / outSystem journaltime in / out
xz -9e2,029,276 94.0%24.8 s / 0.2 s134,168 96.2%2.1 s / 0.02 s
zstd -19 --long2,149,774 93.6%15.7 s / 0.1 s159,433 95.5%1.8 s / 0.02 s
7-Zip -mx=92,233,187 93.3%7.3 s / 0.2 s158,775 95.5%0.4 s / 0.02 s
zpaq -m5 best rival1,083,933 96.8%63.4 s / 61.0 s84,368 97.6%6.2 s / 6.1 s
MIKE --fast2,236,166 93.3%22.6 s / 2.1 s158,992 95.5%1.5 s / 0.2 s
MIKE default1,712,611 94.9%46.7 s / 17.5 s158,992 95.5%4.5 s / 0.2 s
MIKE --power1,101,575 96.7%203.9 s / 114.2 s60,354 98.3%24.1 s / 9.2 s

// output size, share saved in brackets · all MIKE results restored byte-exact

// Virtual machine disks

VM disks and backups: smaller than xz -9 in every format.

MIKE opens the disk, reads the filesystem, and codes each file by kind. VMDK, OVA and qcow2 are reopened to the same virtual disk, so the container format stops mattering. Disks stream through in bounded parts, so memory is set by how many parts are in flight, not by the disk size: under 1 GB at default on every disk here, up to 734 MB, and 1.7 GB at --power.

Diskxz -9MIKE defaultMIKE --power
ext4, raw 100 MB disk, 70 MB in use20.33 MB19.07 MB–
same disk as OVA VMDK, stream-optimised29.29 MB19.09 MB–
same disk as qcow2 compressed clusters30.85 MB19.08 MB–
XFS 99 MB of files29.12 MB27.54 MB23.08 MB
NTFS 99 MB of files30.56 MB27.53 MB22.90 MB
LVM2 volume group39.83 MB33.79 MB28.23 MB

// every result restored byte-exact · – = not measured on that disk yet

// This version · 0.17.12

Smaller and faster at once.

Same 60 files, same 2-vCPU VM, each version as released. Usually a compressor trades speed for size. Across the 0.17 line, MIKE got smaller and faster.

--fast
3.8× faster

15.7 s in 0.17.9, 4.1 s now, byte-identical output. Decompress 0.4 s.

default
2× faster, smaller

0.17.2 took 78.8 s to save 57.6%. Now 38.4 s saves 61.1%.

--power
+7.1 points

57.7% in 0.17.2, 64.8% now: a new text and code model, layout rules, an x86-64 model.

VersionLevelSavedCompressDecompress
0.17.1default51.1%45.0 s1.6 s
0.17.2default57.6%78.8 s7.6 s
0.17.2--power57.7%103.4 s8.2 s
0.17.9--fast44.9%15.7 s0.46 s
0.17.9default60.3%52.1 s9.8 s
0.17.12--fast44.9%4.1 s0.4 s
0.17.12default61.1%38.4 s8.4 s
0.17.12--power64.8%115.7 s29.2 s
New in 0.17.12

Big logs and text: coded in chunks on every core instead of falling back to the classic coder. The 32 MB access log above went from 2.24 MB to 1.71 MB at default.

VMDK, OVA and qcow2 stream in bounded memory like raw disks, and come out smaller than before (OVA 19.91 → 19.09 MB).

The app, viewer, service and NAS package now open streamed disk archives and chunked text.

New across 0.17

Four levels from --fast to --extreme. A context-mixing text model with layout rules. An x86-64 instruction model for programs. Virtual disks read through ext4, XFS, NTFS and LVM2. Signed self-updates: every install moves to the new version by itself.

// Four modes, one format

Streaming, storage, cold storage: each needs a different trade.

A byte costs different things in different places. In flight you pay in time, so the compressor has to be quick on both ends. At rest you pay every month, so a few more seconds buys a smaller bill. In cold storage you pay for years and rarely read, so every byte you can remove is worth it. One setting can't be right for all three, so MIKE has four. They all write the same format: any .mike opens with the same tool whatever level wrote it, and data can move to a deeper level as it cools.

--fast
Streaming · on the wire
saved
44.9%
in
3.7 MB/s
out
38 MB/s

Pipes, transfers, ingest. mike stream runs in bounded memory on every core. On 2 cores it pays for itself on links below about 12 Mbit/s, and more cores raise that limit.

default
Storage · live data
saved
61.1%
in
0.40 MB/s
out
1.8 MB/s

Files people still open. Beats every rival's best on totals, with restores fast enough for everyday reads.

--power
Cold storage · backups
saved
64.8%
in
0.13 MB/s
out
0.53 MB/s

Backups, snapshots, archives. Every specialist runs, plus the full text model. Smallest on 58 of 60 files.

--extreme
Deep archive
saved
64.8%
in
0.11 MB/s
out
0.49 MB/s

Written once, kept for years. Models whole files up to 64 MB and tries both containers per block.

// speeds = the 60-file set on a 2-vCPU VM, per job; disks, chunked text and streams use every core

// Databases · SAP HANA backup

SAP HANA backups: 7.6× smaller, where HANA's own compression gets 2.4×.

HANA's built-in backup compression is LZ4-class: fast, but light. Many backup agents add nothing on top. On TPC-H tables, the standard database benchmark data, MIKE cuts the backup to a third of what HANA's native compression leaves, and every byte comes back identical.

Compressorlineitem 10 MBtimes smallercustomer 24 MBtimes smaller
HANA native class zstd --fast (LZ4-class)41.2%2.43×48.3%2.07×
gzip -9 legacy backup28.6%3.49×37.3%2.68×
zstd -19 modern backup tools21.6%4.63×30.9%3.24×
xz -9e best rival20.9%4.80×29.2%3.42×
MIKE default14.6%6.86×24.5%4.08×
MIKE --power13.2%7.57×22.3%4.48×

// size left, as a share of the original · TPC-H dbgen tables (lineitem: first 10 MB of scale factor 0.1; customer: scale factor 1) · MIKE 0.17.12 on the 2-vCPU VM, 2 Nov 2026, all byte-exact · at --power: 68% smaller than HANA-native-class on lineitem, 37% smaller than xz -9e

The service · MIKE Backint agent

MIKE on HANA's backup path

SAP HANA hands every data, log and catalog backup to third-party tools through its Backint interface: a named pipe per backup object. The MIKE Backint agent sits on that pipe. It compresses on the way out and decompresses on restore, and HANA gets back exactly the image it wrote.

▸ Installs through the standard hdbbackint hook and global.ini, with no change to HANA or the applications.
▸ Every object is decoded again before it is reported saved. If it doesn't match, the backup fails rather than pretend.
▸ One setting per site picks the level: fast, balanced, power or extreme.

// SAP Content Server, the ILM store, Data Services and an S3 gateway also run on MIKE — see Products
// Simulator

What does your estate cost at rest? Here's 15 exabytes.

Pre-filled with 5 EB of office documents, 5 EB of VM backups and snapshots, and 5 EB of machine and access logs. The reduction for each type is MIKE's measured result above, with the best rival beside it. Pick a mode, change any number, add your own data.

Data typeStored (PB)MIKE savesBest rival
Saved per year with MIKE
$0
 
Data entered0
Capacity freed by MIKE0
Left to store with MIKE0
Left to store with the best rival0
MIKE stores less than the best rival0

// saving = Σ stored × share saved × $/TB/yr · logs: average of the access log and the system journal above; rival = zpaq -m5 · VM backups: share of the data written to the disk (empty space costs nothing either way), measured on ext4, XFS and NTFS; rival = xz -9 · documents, PDF, photos, numeric, CSV: the 60-file set · your data will differ, so measure it: mike c --power reports the ratio for every file

// Products · every one on 0.17.12

One engine, in every shape it ships.

Every program below runs the same engine and the same format, and updates itself over a signed channel.

ProductRuns onStatusWhat it does
MIKE app mike-guiLinux · Windows · AndroidshippedOne button: drop a file to shrink it, drop a .mike to restore. Mode selector, AES-256 password lock, verify.
MIKE CLI mikeLinux x86-64 & ARM64 · Windowsshippedmike c / mike d, four levels, --safe round-trip check, mike stream for pipes.
MIKE View mike-view · mike-openLinux · WindowsshippedOpen a .mike without unpacking it. Temporary copy, wiped on close.
MIKE Vault mike-vaultLinux · WindowsenterpriseA folder that compresses itself. Files land, shrink, and open like nothing happened.
MIKE Folder mikefsLinux x86-64 & ARM64 · QNAP NASpreviewA share that is compressed on disk and served byte-exact over SMB, NFS or File Station.
MIKE Backup mike-backupLinux · WindowspreviewIncremental VM and file backup with deduplication: QEMU/KVM and Proxmox disks, live file trees.
MIKE HSM mike-hsm · mike-hsmdLinuxpreviewTiered storage: cold files are kept compressed and restored on first touch.
Backint for SAP HANA mike-backintLinuxenterpriseMIKE on HANA's backup interface.
SAP & object storage contentserver · ilmstore · s3gw · segments · mike4sap-dsLinuxenterpriseMIKE behind SAP Content Server, ILM store and Data Services, and an S3-compatible gateway.
// Distribution

Licences, enterprise builds and support go through them. Write to mr.adamantware@gmail.com and we'll put you in touch.

// Where MIKE doesn't win

No lossless compressor shrinks everything. Here is where we don't.

A noisy sensor series

One of the 60 files: zpaq is 7.6% smaller at --power. There is no exact rule for the puzzle compressor to find.

Modern video

H.264 (CABAC) and H.265 are already arithmetic-coded. On our small H.264 clip, Brotli is about 200 bytes smaller. MIKE falls back to storing it as is.

Logs at the default level

On logs, zpaq -m5 is smaller than MIKE default, and on the system journal so is xz -9e. At --power, MIKE is 28% under zpaq on the journal and 1.6% over it on the access log. For log archives, use --power.

Restore speed at the deep levels

Context mixing decodes as hard as it encodes. Classic tools restore in a fraction of a second where --power takes tens of seconds. Use --fast where restores must be instant.

Always lossless, never meaningfully bigger

Every result on this page was restored and compared byte for byte. Plain storage is always a candidate, so random data comes out at its own size plus a few bytes of header.