ESP32-targz

🗜️ An Arduino library to unpack/uncompress tar, gz, and tar.gz files on ESP32 and ESP8266

OTHER License

Stars
114

Bot releases are visible (Hide)

ESP32-targz - v1.2.3 Latest Release

Published by tobozo 7 months ago

What's Changed

bool GzUnpacker::gzStreamExpander( Stream* sourceStream, fs::FS destFS, const char* destFile );

New Contributors

Full Changelog: https://github.com/tobozo/ESP32-targz/compare/v1.2.2...v1.2.3

ESP32-targz - 1.2.2

Published by tobozo 10 months ago

What's Changed

  • Fixed compilation error with platformio when lib_ldf_mode is chain+ or deep+
ESP32-targz - 1.2.0

Published by tobozo about 1 year ago

ESP32-targz - 1.1.9

Published by tobozo over 1 year ago

ESP32-targz - 1.1.7

Published by tobozo almost 2 years ago

What's Changed

ESP32-targz - 1.1.6

Published by tobozo almost 2 years ago

ESP32-targz - 1.1.5

Published by tobozo about 2 years ago

  • Fixed compilation warnings
  • Renamed src/ESP32-targz-lib.h -> src/ESP32-targz-lib.hpp
  • Added GzUpdateClass for ESP32 to pair integration with @vortigont's flashZ in esp32FOTA pigz/gzip upcoming support
ESP32-targz - 1.1.4

Published by tobozo almost 3 years ago

Added tarStreamExpander upon @mc-hamster's suggestion, see #52

ESP32-targz - 1.1.3

Published by tobozo almost 3 years ago

Fixes:

  • TAR archives containing ./ as the root path failed to expand when the output folder was not the root folder
  • setGzProgressCallback was ignored when using streams
  • stream example was failing since arduino-esp32-core 2.0.x

Improvements:

  • tarGzStreamExpander accepts an extra argument with stream size, the value can be either picked from Content-Length HTTP response header, or from file.size() when the stream source is the filesystem.
  • TAR paths are cleaned up on extraction
ESP32-targz - 1.1.2

Published by tobozo about 3 years ago

This release fixes a bug: if there was an empty file inside .tar archive and tar health checks were enabled, unpacking would stop and return error -34 without finishing the archive.

Thanks to @JamPaul97 for reporting this (see #48).

ESP32-targz - 1.1.1

Published by tobozo about 3 years ago

  • esp32-sdk-2.0.x compliance:
    • fs::File->name() has a new behaviour since 2.x.x
    • LittleFS is now part of the core
  • esp8266-sdk-3.x.x compliance:
    • strdupa / memrchr shims
    • MD5Builder code shared with ESP32 (removed conditional macros)
  • PSRAMFS support
  • updated examples
ESP32-targz - 1.0.5-beta

Published by tobozo over 3 years ago

  • Added Include and Exclude Filter to TAR
  • Added Include and Exclude Filter to tarGzExpander test
  • Added gzStreamExpander
  • Temporarily added gzStreamExpander as second test
  • Enabled progress with gzUpdater (see #37)
  • Added setPsram for ESP32 (request from @sharandac, #37)
  • Added support for ramdisk
  • Added dual example for gzStreamUpdater and tarGzStreamUpdater
ESP32-targz - 1.0.4-beta

Published by tobozo over 3 years ago

This is a fix release (see #33) addressing an issue where a tar file containing a file with extended attributes would fail to unpack and ignore subsequent files.

Thank you @frankcohen for finding that out!

ESP32-targz - 1.0.3-beta

Published by tobozo over 3 years ago

This is a maintenance release, mostly adressing error handling with uzlib and network streams.

ESP32-targz - 1.0.2-beta

Published by tobozo over 3 years ago

Added tarGzStreamUpdater( Stream* stream ) support for ESP32 only, the API is also exposed for ESP8266 but untested as it makes no sense to use externally what's already provided internally by the sdk core.

image

tarGzStreamUpdater() will find and extract binaries from a .tar.gz archive to OTA and/or SPIFFS/LITTLEFS partitions using the UpdateClass from the ESP32 Arduino core.

The .tar.gz file should contain at least one of the binaries for the compiled application and/or the spiffs/littlefs partition.

File naming requirements

  • Archive must be .tar.gz
  • Application binary file name must end with ino.bin
  • Spiffs binary file name must end with spiffs.bin or mklittlefs.bin
ESP32-targz - 1.0.1-beta

Published by tobozo over 3 years ago

This release mostly contains fixes and memory improvements for ESP8266.

All examples have been merged into one single sketch for simplicity and integrity.

ESP32-targz - 1.0.0-alpha = New syntax, breaking changes!

Published by tobozo almost 4 years ago

What's new

  • Moved to OO syntax (+Namespaced GZ and TAR)
  • Updated documentation and examples
  • Added complete test suite for both ESP32 and ESP8266 (see Test_tar_gz_tgz.ino)
  • Implemented tarGzStreamExpander + gzStreamUpdater for ESP32
  • Improved ESP8266 Support (bugfixes and performances)
ESP32-targz - 0.3.2

Published by tobozo almost 4 years ago

  • Fixes #16 for ESP8266
  • Implements #18 gzStreamUpdater for ESP32 platform, see Update_from_gz_stream from the examples folder
  • Output and progress log functions are temporarily inconsistent across platforms
    gzStreamUpdater( stream, streamsize );
ESP32-targz - 0.3.0

Published by tobozo almost 4 years ago

New decompression modes:

tarGzExpander

It is no longer required to use an intermediate file with tarGzExpander.

// this will use an intermediate file (defaulting to /tmp/tmp.tar)
tarGzExpander(tarGzFS, "/blah.tat.gz", tarGzFS, "/tmp" );

// this will use an intermediate file too
tarGzExpander(tarGzFS, "/blah.tat.gz", tarGzFS, "/tmp", "/tmp/my_temporary_file.tar" ); 

// this will do a direct gz->tar->filesystem expanding, using no intermediate file
tarGzExpander(tarGzFS, fileJustBigEnoughForSPIFFS, tarGzFS, "/tmp", nullptr );
ESP32-targz - 0.2.1 (Features release)

Published by tobozo almost 4 years ago

New features in this release:

  • Silent mode using callbacks for progress and log
  • Better error handling and reporting
Badges
Extracted from project README
arduino-library-badge PlatformIO Registry