This is a tool I’ve been working on for the last ~6 months. It was born out of frustration trying to package boxxy[1] for different distros.
This was originally to be presented at RustConf 2023 in a few days, under the talk “Repackage the World!,” but unfortunately my health took a sudden turn for the worse and I’m no longer able to give the talk.
peckish IS NOT a perfect replacement for distro-specific packaging tools, and its packages WILL NOT be compliant with every distribution’s standards for packages.
peckish IS:
- a way to make a quick-and-dirty packages for distributing a program
- a CLI/library for manipulating the contents of Linux packages
The core abstraction is an in-memory filesystem behind an async std::fs-like facade[2], allowing packages to be manipulated with more-intuitive random-access I/O instead of putting up with (nested) streaming archive formats. This facade also is used for ex. enabling easier archive manipulation[3], a library for copying between facade implementations[4], and more. This bets that most packages will never be larger than memory, which in my testing is a safe bet even with Docker images as inputs.
This was originally to be presented at RustConf 2023 in a few days, under the talk “Repackage the World!,” but unfortunately my health took a sudden turn for the worse and I’m no longer able to give the talk.
peckish IS NOT a perfect replacement for distro-specific packaging tools, and its packages WILL NOT be compliant with every distribution’s standards for packages.
peckish IS:
- a way to make a quick-and-dirty packages for distributing a program
- a CLI/library for manipulating the contents of Linux packages
The core abstraction is an in-memory filesystem behind an async std::fs-like facade[2], allowing packages to be manipulated with more-intuitive random-access I/O instead of putting up with (nested) streaming archive formats. This facade also is used for ex. enabling easier archive manipulation[3], a library for copying between facade implementations[4], and more. This bets that most packages will never be larger than memory, which in my testing is a safe bet even with Docker images as inputs.
Sorry for adding more YAML to the world :P
[1] https://github.com/queer/boxxy
[2] https://github.com/queer/floppy-disk
[3] https://github.com/queer/flop
[4] https://github.com/queer/disk-drive