See http://math.nist.gov/~DPorter/tcltk/trofs/ ---- Tcl package that provides commands to create, mount, and unmount archives containing read-only filesystems. ---- '''File format (version 1, as found in trofs-0.4.3)''' (reconstructed from trofs-0.4.3/library/procs.tcl by [PS]) The trofs archive file format is a concatenation of files bundled in directories, where each directory contains file, link and directory TOC entries which point to an absolute location in the archive file and specify the length of the item in the file. All offsets are from the start of the archive file. Each toc is a utf-8 encoded [dict] 0x1a 0x1a trofs01 (literal string - trofs file signature) * ''Arbitrary header'': For example, a Tcl script for mounting the trofs file as a Tcl Module. * ''File data'': A verbatim copy of the contents of the file * ''root/dir TOC'': a [dict] of filenames (see example below) * ''size of root toc'': Helps point to the root toc: filesize-12-rootTocSize TOC: file1 {F } file2 {F 15 32} dir1 {D } dir2 {D 203 12542} link1 {L } link2 {L ../file1} ''What is the reason for inventing Yet Another Archive Format And Making It Tcl Specific, and not using - say - ZIP? -[jcw]'' [PWQ] ''27 Mar 05'', I would go one further. Since the FS is to be read only, why don't you adopt '''ext2-fs''' or '''dos-fs''', or even '''cram-fs'''. The advantages of these is that you can mount these under linux and create/modify them easily. When you re-invent the ''wheel'', it should be a better wheel. ''Would makes no sense on Windows -[jcw]'' [PS] ''27Mar05'' The short answer I got from dgp was that it is open for discussion. The main reason for me writing this format down here is to familiarize myself with the trofs code. As far as I can tell, a lot of effort went into making the trofs code thread safe. The next step will be adding compression to trofs, and after that I am likely to hack it to read (a subset of) zipfiles. The significant difference between the zip file format and trofs file format is the directory stucture. In zipfiles, a main TOC holds all files, trofs has a toc for each directory. I think the simplest trick will be to turn the zip TOC into a nested [dict], that would preserve most of the trofs internals. ---- [Category Package]