# atomicobject/heatshrink

data compression library for embedded/real-time systems

Repository: https://github.com/atomicobject/heatshrink
Canonical: https://ross.abutalabs.com/products/heatshrink
Language: C
License: ISC
License Family: permissive
Last push: 2024-05-19T06:44:22+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4921, "days_push": 836, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1547, forks 233 (observed 2026-08-28T04:05:01.654775+00:00)

## What it is
Heatshrink is a data compression/decompression library written in C, designed for embedded and real-time systems with very low memory requirements (as low as 50 bytes). It provides incremental, bounded CPU usage via a streaming state-machine API, and also ships a standalone command-line tool.

## Use cases
- compress data on a microcontroller with under 300 bytes of RAM
- decompress firmware payloads in a hard real-time system
- compress log or sensor data incrementally in tiny input bites
- embed a small compression codec in a C project without dynamic allocation
- compress files from the command line with the heatshrink CLI
- use static memory allocation for a deterministic embedded compressor

## When to choose
- you need compression on memory-constrained embedded or real-time targets
- you need bounded, incremental CPU and memory usage per processing step
- you want a permissive ISC license for commercial firmware
- you prefer static allocation and a tiny, copy-in source library

## When to avoid
- you need maximum compression ratios on systems with ample RAM
- you need a general-purpose compressor like gzip/zstd with rich format tooling
- you need high-throughput compression of large files on desktop hardware

## Facets
- artifact type: library
- maturity: stable
- function: compression, embedded
- domain: embedded-systems, files, developer-tools
- platform: c, embedded, cli, cross-platform
- tags: lzss, real-time, low-memory, static-allocation, streaming-compression

## Member repositories
- atomicobject/heatshrink (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:01.654775+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:30:28.317328+00:00, confidence not recorded.
  - readme: https://github.com/atomicobject/heatshrink (fetched 2026-08-28T04:05:01.654775+00:00, sha 1084aed9f065)
- Data as of 2026-08-30T08:39:29.467469+00:00.
