README.md

August 6, 2025 ยท View on GitHub

C3 Inflate library (inflate, gzip, zlib)

Implementation of the decompression algorithm for the deflate compressed data format (called 'inflate'). Ported from tinf.

API overview:

// inflate
import tinf::inflate;
fn void? uncompress(char[] dst, char[] src)

// gzip
import tinf::gzip;
fn void? uncompress(char[] dst, char[] src)

// zlib
import tinf::zlib;
fn void? uncompress(char[] dst, char[] src)

Run the unit tests with c3c test from the project root.

Installation

Clone the repository with git clone http://github.com/konimarti/tinf.c3l to the ./lib folder of your C3 project and add the following to project.json:

{
    "dependency-search-paths": [ "lib" ],
    "dependencies": [ "tinf" ]
}

If you didn't clone it into the lib folder, adjust your dependency-search-paths accordingly.

Example: gunzip

Build gunzip: c3c build gunzip

Test it:

$ echo "hello" > zipped
$ gzip zipped
$ build/gunzip < zipped.gz
hello