Backend developer from Saint Petersburg, working at Aisory. Author of mbrotli, mzstd and the ngx_mbrotli and ngx_mzstd NGINX modules: Brotli and Zstandard rewritten in safe Rust.
Maintainer of the M-Compressors codecs and NGINX modules and author of this blog. Publishing open source on GitHub since 2014.
Links
Posts
- zstd on NGINX thread pools: ngx_mzstd vs zstd-nginx-module,
- Brotli on NGINX thread pools: ngx_mbrotli vs ngx_brotli,
- Building the ngx_mzstd Zstandard module for NGINX from source,
- Building the ngx_mbrotli Brotli module for NGINX from source,
- Installing Zstandard for NGINX from packages: ngx_mzstd,
- Installing Brotli for NGINX from packages: ngx_mbrotli,
Projects
- mbrotli: 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: 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: 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: Drop-in replacement for tokers/zstd-nginx-module with encoder reuse and thread-pool compression.
- borrowed-buf: A small no_std port of the nightly-only core::io::BorrowedBuf and BorrowedCursor for stable Rust 1.89.