PackageTrack
Sign in Get early access

act_thumbhash_flutter

Flutter widgets and image providers for ThumbHash image placeholders. Show instant lossy previews while full images load.

1.1.0 Act-App/Act-Thumbhash

What this package is like to depend on

Last release 22 days ago

01 Aug 2026

Too new to tell

only 2 release windows

Nearly every release is documented

notes for 2 of 2 stable releases

Nothing withdrawn

no release was ever pulled

6 months old

4 releases · first in 2026

4 releases in the last 12 months

see the full history below

Release timeline

4 releases · Feb 2026 to Aug 2026
Release Pre-release

Releases

latest 4
  1. 1.1.0 01 Aug 2026
    Release notes

    Raises the minimum supported SDK of both packages: act_thumbhash and act_thumbhash_flutter now require Dart 3.8 (Flutter 3.32). There are no functional changes; 1.0.0 remains available for older toolchains.

    act_thumbhash 1.1.0

    • The minimum supported SDK is now Dart 3.8.

    act_thumbhash_flutter 1.1.0

    • The minimum supported SDK is now Dart 3.8 / Flutter 3.32.
    Open source →
    Release notes
    • The minimum supported SDK is now Dart 3.8 / Flutter 3.32.
    Open source →
  2. 1.0.0 01 Aug 2026
    Release notes

    First stable release of both packages: act_thumbhash and act_thumbhash_flutter.

    act_thumbhash 1.0.0

    • Perf: the encoder and decoder now precompute their DCT basis tables and skip coefficients the format discards, making encoding roughly 9x and decoding roughly 4x faster. Output is byte-for-byte unchanged.
    • Fix: decodeSync now validates the hash length against what its header requires and throws the documented ArgumentError for truncated input, instead of surfacing an out-of-bounds RangeError partway through decoding.
    • Fix: decodeSync and decodeAsync now reject baseSize values below 1 with an ArgumentError, and small baseSize values can no longer round the decoded image's short side down to zero pixels.
    • Fix: encoding images with an aspect ratio steeper than 128:1 no longer throws; the internal downscale now keeps the short side at a minimum of one pixel.
    • Feat: Web support. dart:isolate is no longer imported unconditionally; on the web (both dart2js and dart2wasm) encodeAsync and decodeAsync run the computation on the event loop after yielding once, since isolates are unavailable there. Native behaviour is unchanged.
    • Fix: encodeSync emitted too few luminance coefficients for images with an aspect ratio steeper than roughly 2.8:1 (2:1 with alpha), in either orientation. The resulting hashes were shorter than any decoder expects, so decoding them threw a RangeError, and they were not readable by other ThumbHash implementations. The luminance channel is now always encoded with at least 3 coefficients per axis, matching the reference implementation.
    • Fix: the hash buffer was one byte too small for images with alpha whose coefficient count is odd (for example 100x75), making encodeSync throw a RangeError while writing its own output.

    Hashes for images that encoded correctly before are unchanged.

    act_thumbhash_flutter 1.0.0

    • Feat: ThumbHashImageProvider now exposes baseSize, controlling the length of the decoded placeholder's longer side (default 32, matching the previous behaviour). Available on the constructor, fromBase64, and the toImageProvider() extension, and part of provider equality.
    • Feat: Web support. Provider equality no longer relies on Uint64List, which dart2js does not support.
    • Fix: engine-level image decoding failures now surface as image stream errors instead of leaving the stream waiting forever.
    • Fix: comparing providers whose hash bytes are a view into a larger buffer at an offset not aligned to 8 bytes no longer throws.

    Both packages now support all Dart and Flutter platforms, including the web.

    Open source →
    Release notes
    • Feat: ThumbHashImageProvider now exposes baseSize, controlling the length of the decoded placeholder's longer side (default 32, matching the previous behaviour). Available on the constructor, fromBase64, and the toImageProvider() extension, and part of provider equality.
    • Feat: Web support. Provider equality no longer relies on Uint64List, which dart2js does not support.
    • Fix: engine-level image decoding failures now surface as image stream errors instead of leaving the stream waiting forever.
    • Fix: Comparing providers whose hash bytes are a view into a larger buffer at an offset not aligned to 8 bytes no longer throws.
    Open source →
  3. 1.0.0-dev.2 09 Feb 2026 pre-release
    Release notes
    • Documentation and packaging updates
    Open source →
  4. 1.0.0-dev.1 09 Feb 2026 pre-release
    Release notes
    • Initial pre-release
    • ThumbHashImageProvider for use with Flutter's Image widget
    • fromBase64 factory for decoding base64-encoded hashes
    • toImageProvider() extension method on Uint8List
    • Integration with Flutter's ImageCache
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive