heatshrink
brew install heatshrink
v0.4.1
ISC
Data compression library for embedded/real-time systems
1
30-day installs · #15475
2
90-day · #20336
17
365-day · #14823
1.5k
★ GitHub stars · updated 2y ago
Links
- https://github.com/atomicobject/heatshrink
- GitHub: atomicobject/heatshrink
- Brew formula source: Formula/h/heatshrink.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Data compression library for embedded/real-time systems",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:35+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "heatshrink",
"github_default_branch": "master",
"github_last_commit_at": "2024-05-19T06:44:22Z",
"github_readme_excerpt": "# heatshrink\n\nA data compression/decompression library for embedded/real-time systems.\n\n\n## Key Features:\n\n- **Low memory usage (as low as 50 bytes)**\n It is useful for some cases with less than 50 bytes, and useful\n for many general cases with \u003c 300 bytes.\n- **Incremental, bounded CPU use**\n You can chew on input data in arbitrarily tiny bites.\n This is a useful property in hard real-time environments.\n- **Can use either static or dynamic memory allocation**\n The library doesn\u0027t impose any constraints on memory management.\n- **ISC license**\n You can use it freely, even for commercial purposes.\n\n\n## Getting Started:\n\nThere is a standalone command-line program, `heatshrink`, but the\nencoder and decoder can also be used as libraries, independent of each\nother. To do so, copy `heatshrink_common.h`, `heatshrink_config.h`, and\neither `heatshrink_encoder.c` or `heatshrink_decoder.c` (and their\nrespective header) into your project. For projects that use both,\nstatic libraries are built that use static and dynamic allocation.\n\nDynamic allocation is used by default, but in an embedded context, you\nprobably want to statically allocate the encoder/decoder. Set\n`HEATSHRINK_DYNAMIC_ALLOC` to 0 in `heatshrink_config.h`.\n\n\n### Basic Usage\n\n1. Allocate a `heatshrink_encoder` or `heatshrink_decoder` state machine\nusing their `alloc` function, or statically allocate one and call their\n`reset` function to initialize them. (See below for configuration\noptions.)\n\n2. Use `sink` to sink an input buffer into the state machine. The\n`input_size` pointer argument will be set to indicate how many bytes of\nthe input buffer were actually consumed. (If 0 bytes were conusmed, the\nbuffer is full.)\n\n3. Use `poll` to move output from the state machine into an output\nbuffer. The `output_size` pointer argument will be set to indicate how\nmany bytes were output, and the function return value will indicate\nwhether further output is available. (The state machine may not output\nany data u",
"github_repo": "atomicobject/heatshrink",
"github_stars": 1535,
"github_topics": [],
"homepage": "https://github.com/atomicobject/heatshrink",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 1,
"installs_365d": 17,
"installs_90d": 2,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "ISC",
"llm_generated_at": null,
"llm_model": null,
"name": "heatshrink",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 15475,
"rank_365d": 14823,
"rank_90d": 20336,
"raw_hash": "b9288bd7a73bdef6",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/h/heatshrink.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "0.4.1",
"versioned_formulae": [],
"why_use_this": null
}