initial commits
							parent
							
								
									1e7bb84f17
								
							
						
					
					
						commit
						8e20f348fc
					
				
							
								
								
									
										71
									
								
								README.md
								
								
								
								
							
							
						
						
									
										71
									
								
								README.md
								
								
								
								
							|  | @ -30,3 +30,74 @@ The name “zarf” has 2 meanings: | |||
| 
 | ||||
| * it is an acronym “**Z**arf **AR**chive **F**ormat”, and | ||||
| * it also happens to be a Persian word for ‘container’. | ||||
| 
 | ||||
| ## File Format | ||||
| 
 | ||||
| A **zarf** file is a single file that contain multiple other files. | ||||
| 
 | ||||
| Or said more formally, the **zarf format** is an **archive format** and **container format** that can combine multiple files into a single aggregate file. | ||||
| 
 | ||||
| One of the main points of the  **zarf format** is that it was designed to be easy to understand and implement for programmers. | ||||
| The **zarf format** is meant to be both programmer-legible and programmer-friendly. | ||||
| 
 | ||||
| The common way to store and think about **multiple files** is as part of a directory system. | ||||
| For example: | ||||
| 
 | ||||
| * readme.xhtml | ||||
| * LICENSE | ||||
| * images/logo.png | ||||
| * images/banner.png | ||||
| * images/figures/figure1.jpeg | ||||
| * images/figures/figure2.jpeg | ||||
| * images/figures/figure3.png | ||||
| 
 | ||||
| This type of thing (and the files' contents) is what is inside of a **zarf** file. | ||||
| 
 | ||||
| One way of thinking about this is that, it is a **hierarchical key-value format** similar to (**but not the same as**) JSON, INI, and other similar formats. | ||||
| 
 | ||||
| For example, in JSON the preceding file system would probably look like: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
| 	"readme.xhtml": "...", | ||||
| 	"LICENSE": "...", | ||||
| 	"images": { | ||||
| 		"logo.png": "...", | ||||
| 		"banner.png": "...", | ||||
| 		"figures": { | ||||
| 			"figure1.jpeg": "...", | ||||
| 			"figure2.jpeg": "...", | ||||
| 			"figure3.png": "..." | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| (Note that we are using `"..."` in the examples because we aren't listing the contents of the files.) | ||||
| 
 | ||||
| Also for example, in INI the preceding file system would look like: | ||||
| ```ini | ||||
| readme.xhtml = ... | ||||
| 
 | ||||
| LICENSE = ... | ||||
| 
 | ||||
| [images] | ||||
| 
 | ||||
| logo.png = ... | ||||
| 
 | ||||
| banner.png = ... | ||||
| 
 | ||||
| [images.figures] | ||||
| 
 | ||||
| figure1.jpeg = ... | ||||
| 
 | ||||
| figure2.jpeg = ... | ||||
| 
 | ||||
| figure3.png = ... | ||||
| ``` | ||||
| 
 | ||||
| (Again note that we are using `"..."` in the examples because we aren't listing the contents of the files.) | ||||
| 
 | ||||
| The same as a **zarf** file would be: | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue