From 8b68f3a3ce4ee7d319a106c8ae8447f67e7fb289 Mon Sep 17 00:00:00 2001 From: Zak Yani Star Fenton Date: Sun, 8 Jun 2025 05:20:42 +0000 Subject: [PATCH] Add Formats.md --- Formats.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Formats.md diff --git a/Formats.md b/Formats.md new file mode 100644 index 0000000..07307ee --- /dev/null +++ b/Formats.md @@ -0,0 +1,21 @@ +# Formats + +The `slpkg` tool uses custom formats rather than zip/tar/gz and so on. + +The reasoning behind this is very simple: zip and tar are complex formats with different extensions & cross-platform concerns, whereas the package manager just needs to do the basic job of packaging & installing software files (NOT modifying archives one file at a time, NOT backwards compatibility with old archives etc.). So it's much easier to implement formats for that purpose than using legacy zip or tar formats then having to add modern extensions as well as packaging metadata on top. + +## .pkb files + +These are human-edited text files listing package contents and other metadata needed to build a package file. + +## .pkg files + +These are binary files consisting of an archive header, a number of (file-like or metadata) entry headers, a string section and then a series of file contents. + +## .pkh files + +These are the same format as their corresponding `.pkg` except only need to contain the headers & strings to index installed data. + +## .cv1 files + +These are compressed files in an early version compression format. \ No newline at end of file