3 ms·
Show HN: peckish, a CLI/Rust library for Linux package manipulation
- notamy 3y agoThis 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. Sorry for adding more YAML to the world :P [1] https://github.com/queer/boxxy https://github.com/queer/boxxy [2] https://github.com/queer/floppy-disk https://github.com/queer/floppy-disk [3] https://github.com/queer/flop https://github.com/queer/flop [4] https://github.com/queer/disk-drive https://github.com/queer/disk-drive