This project is based on [mattnite/zig-zlib](https://github.com/mattnite/zig-zlib). I also used [LukasKastern]([Title](https://github.com/LukasKastern/zig-zlib) fork for making project compatibile with 0.11 zig master. There is existing deflate/gzip compressor/decompressor in zig standard library. For using it in websocket implementation I was missing ability to set window size (it is fixed on 32k) and sliding window functionality in decompressor. It seams that most other websocket implementations are using zlib for deflate. ### Refrences [Compression Extensions for WebSocket](https://datatracker.ietf.org/doc/html/rfc7692) [zlib 1.2.13 Manual](https://www.zlib.net/manual.html) ### Link There is empty zig project (made with 'zig init-exe') in [example/exe](example/exe) which illustrates how to link zlib library using zig package manager. Add dependency in build.zig.zon: ```zig .dependencies = .{ .zlib = .{ .url = "https://github.com/ianic/zig-zlib/archive/9186b0f5fdfd6c29cd04f7ada7b0113fe1f63611.tar.gz", .hash = "122001cc3da638f9315f08fb51fe5aace68c254b59bcac3457e20d746565bad7fe04", }, }, ``` In build.zig link 'z' library and 'zlib' module: ```zig // Define dependencies const zlib = b.dependency("zlib", .{}); ... // Link z library and zlib module. exe.linkLibrary(b.dependency("zlib", .{ .target = target, .optimize = optimize, }).artifact("z")); exe.addModule("zlib", zlib.module("zlib")); ``` ### Notes get zlib source into zlib folder: ```sh wget https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz tar xvf zlib-1.2.13.tar.gz rm zlib-1.2.13.tar.gz mv zlib-1.2.13 zlib ```