Implement file bundling #4392
Replies: 3 comments 2 replies
-
|
The compression format will need to be portable to non-POSIX systems like Zephyr or VxWorks as well. This means that using tar + gzip would add an additional dependency on the GNU gzip library, which may be a pain to cross-compile on non-UNIX systems. If developer workload is not an issue, the zstd algorithm would be a better choice thant gzip, as it achieves very high compression ratios compared to Instead, it might be a good idea to use a more common compression library like LZ4, which is present on VxWorks, RIOT, and Zephyr as well. This would require some target-specific code to be written to support connecting to the host OS's lz4 library, but is much less work than porting an entire compression library over. As far as efficiency, LZ4 supports very fast decompression as it doesn't do Huffman coding, but that does mean that the compression ratio is worse than zlib. |
Beta Was this translation helpful? Give feedback.
-
|
I would prefer to see compression format as a dependency injection where the mission can choose the compression/decompression. In this formulation, the framework should provide a solution that makes sense as a default. It would be really neat if multiple options could be specified, perhaps in the manifest, but definitely get it to work first. The same flexibility in the validation strategy would also be preferable. |
Beta Was this translation helpful? Give feedback.
-
|
I did find this: https://github.com/rxi/microtar It hasn't been maintained in a while, but it still could be usable. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Deep-space missions without easy ground-in-the-loop can benefit from a file bundle. A file bundle is essentially an archive that has all the files needed for an operational activity. That would include sequences and other files (tables, etc). It is beneficial to have them as a bundle to allow for an atomic start of activities where the whole bundle passes validation or the activity doesn't execute. That avoids scenarios where individual uploads of files are corrupted and it is hard to figure out what can be run or not.
This design would include:
Beta Was this translation helpful? Give feedback.
All reactions