You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ESP32-targz enables the channeling of gz :arrow_right: tar :arrow_right: filesystem data ~~without using an intermediate file~~ (bug: see [#4](https://github.com/tobozo/ESP32-targz/issues/4)).
19
+
ESP32-targz enables the channeling of gz :arrow_left::arrow_right: tar :arrow_left::arrow_right: filesystem data in both directions.
20
20
21
-
In order to reach this goal, TinyUntar was heavily modified to allow data streaming, uzlib is also customized.
21
+
Parental advisory: this project was made under the influence of hyperfocus and its code may contain comments that are unfit for children.
22
22
23
23
24
+
Scope
25
+
-----
26
+
27
+
- Compressing to `.tar.gz`
28
+
- Decompressing from `tar.gz`
29
+
- Compressing to `gz`
30
+
- Decompressing from `gz`
31
+
- Packing files/folders to `tar`
32
+
- Unpacking `tar`
33
+
- Supports any fs::FS filesystem (SD, SD_MMC, FFat, LittleFS) and Stream (HTTP, HTTPS, UDP, CAN, Ethernet)
34
+
- This is experimental, expect bugs!
35
+
- Contributions and feedback are more than welcome :-)
36
+
37
+
24
38
Tradeoffs
25
39
---------
26
40
27
-
When the output is the filesystem (e.g. NOT when streaming to TAR), gzip can work without the dictionary.
41
+
When decompressing to the filesystem (e.g. NOT when streaming to TAR), gzip can work without the dictionary.
28
42
Disabling the dictionary can cause huge slowdowns but saves ~36KB of ram.
29
43
30
44
TinyUntar requires 512bytes only so its memory footprint is negligible.
@@ -33,22 +47,10 @@ TinyUntar requires 512bytes only so its memory footprint is negligible.
33
47
Limitations
34
48
-----------
35
49
36
-
ESP32-TarGz can only have one **output** filesystem (see *Support Matrix*), and it must be set at compilation time (see *Usage*).
50
+
-ESP32-targz decompression can only have one **output** filesystem (see *Support Matrix*), and it must be set at compilation time (see *Usage*).
37
51
This limitation does not apply to the **input** filesystem/stream.
38
52
39
53
40
-
Scope
41
-
-----
42
-
43
-
- Compressing to `gz` (deflate/lz77)
44
-
- Decompressing `gz`
45
-
- Expanding `tar`
46
-
- Decompressing and expanding `tar.gz`
47
-
- Supports any fs::FS filesystem (SD, SD_MMC, FFat, LittleFS) and streams (HTTP, HTTPS, UDP, CAN, Ethernet)
48
-
- This is experimental, expect bugs!
49
-
- Contributions and feedback are more than welcome :-)
50
-
51
-
52
54
53
55
Support Matrix
54
56
--------------
@@ -68,7 +70,7 @@ Usage
68
70
-----
69
71
70
72
71
-
:warning:Important note: setting the `#define`**before** including `<ESP32-targz.h>`is recommended to prevent the library from defaulting to SPIFFS.
73
+
:warning:Optional: setting the `#define`**before** including `<ESP32-targz.h>`will alias a default flash filesystem to `tarGzFS`.
72
74
73
75
74
76
```C
@@ -296,8 +298,24 @@ ESP32 Only: Direct Update (no intermediate file) from `.tar.gz.` stream
`*Unpacker->tarGzGetError()` returns a value when a problem occured:
@@ -470,9 +571,9 @@ Test Suite
470
571
Known bugs
471
572
----------
472
573
473
-
- tarGzStreamExpander hates SPIFFS
474
-
- tarGzExpander/tarExpander: some formats aren't supported with SPIFFS (e.g contains symlinks or long filename/path)
475
-
- tarGzExpander without intermediate file hates situations with low heap
574
+
-SPIFFS is deprecated, migrate to LittleFS!
575
+
- tarGzExpander/tarExpander: symlinks or long filename/path not supported, path limit is 100 chars
576
+
- tarGzExpander without intermediate file uses a lot of heap
476
577
- tarGzExpander/gzExpander on ESP8266 : while the provided examples will work, the 32Kb dynamic allocation for gzip dictionary is unlikely to work in real world scenarios (e.g. with a webserver) and would probably require static allocation
477
578
478
579
@@ -482,13 +583,14 @@ Debugging:
482
583
483
584
- ESP32: use all of the "Debug level" values from the boards menu
484
585
- ESP8266: Warning/Error when "Debug Port:Serial" is used, and Debug/Verbose when "Debug Level:Core" is selected from the boards menu
586
+
- RP2040: only "Debug port: Serial" and "Debug Level: Core" enable logging
485
587
486
588
487
589
Resources
488
590
-----------
489
-
- [LittleFS for ESP32](https://github.com/lorol/LITTLEFS)
490
591
-[ESP8266 Sketch Data Upload tool for LittleFS](https://github.com/earlephilhower/arduino-esp8266littlefs-plugin)
491
592
-[ESP32 Sketch Data Upload tool for FFat/LittleFS/SPIFFS](https://github.com/lorol/arduino-esp32fs-plugin/releases)
593
+
-[Pico LittlsFS Data Upload tool](https://github.com/earlephilhower/arduino-pico-littlefs-plugin)
0 commit comments