From 49c6923200ba49fe549b67c23b60f46173becb52 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 27 Jun 2024 10:14:10 +0900 Subject: [PATCH] Define file format (version 0 file format) Resolves #1. --- file_format.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 file_format.md 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.