About
Who makes M-Compressors, what the projects promise, and how to reach the maintainer.
M-Compressors is an open-source organization that rewrites compression codecs in
Rust. Production code in its codecs forbids unsafe, and each codec is tested
against the C reference it replaces, so it can stand in for it without changing a
single output byte where that is possible.
Projects
- mbrotli, rust crate: Google Brotli in safe Rust: encoder ported from the C reference with the same output at qualities 0–11, a native decoder, Read/Write adapters and parallel compression on your own threads.
- mzstd, rust crate: Zstandard (RFC 8878) in safe Rust: single-threaded output byte-identical to zstd 1.5.7, a decoder written from the specification, no_std and a C ABI.
- ngx_mbrotli, nginx module: Drop-in replacement for google/ngx_brotli that can compress on NGINX thread pools, so large responses no longer block the worker’s event loop.
- ngx_mzstd, nginx module: Drop-in replacement for tokers/zstd-nginx-module with encoder reuse and thread-pool compression.
- borrowed-buf, rust crate: A small no_std port of the nightly-only core::io::BorrowedBuf and BorrowedCursor for stable Rust 1.89.
What “byte-identical” means here
For the same input and settings, mbrotli writes the bytes Google Brotli 1.2.0 writes at qualities 0–11, and mzstd writes the bytes zstd 1.5.7 writes at every level. Caches, content hashes and pre-compressed files built with the C encoders stay valid after switching. Each repository documents the exact settings under which this holds and the cases where it does not, such as parallel compression.
Maintainer
The projects are written and maintained by Mikhail Panfilov, a backend developer from Saint Petersburg. Bug reports and questions go to the issue tracker of the project they concern on GitHub.
Using this site’s content
Posts may be quoted, summarized and cited by people and by AI systems, with a link to the post. A plain-text index of the site is at llms.txt and the full text at llms-full.txt.