From: Stephen Seo Date: Thu, 27 Jun 2024 01:14:10 +0000 (+0900) Subject: Define file format (version 0 file format) X-Git-Tag: stream_03~2 X-Git-Url: https://git.seodisparate.com/stephenseo/static/gitweb.js?a=commitdiff_plain;h=49c6923200ba49fe549b67c23b60f46173becb52;p=SimpleArchiver Define file format (version 0 file format) Resolves #1. --- diff --git a/file_format.md b/file_format.md new file mode 100644 index 0000000..0a1ee8c --- /dev/null +++ b/file_format.md @@ -0,0 +1,26 @@ +# File Format + +## Format Version 0 + +File extension is "*.simplearchive" + +First 18 bytes of file will be: + + SIMPLE_ARCHIVE_VER + +Next 2 bytes is 16-bit unsigned integer "version" in big-endian. In this case, +will be zero. + +Next 4 bytes is 32-bit unsigned integer "file count" in big-endian which will +indicate the number of files in this archive. + +For each file: + +1. 2 bytes is 16-bit unsigned integer "filename length" in big-endian. +2. X bytes of filename (defined by previous value). +3. 8 bytes 64-bit unsigned integer "location of filename in this archive file". +4. 8 bytes 64-bit unsigned integer "size of filename in this archive file". + +The remaining bytes in the file are the files to be included in the archive file +concatenated together. Their locations and sizes should match what was listed +before.