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 is an acronym “**Z**arf **AR**chive **F**ormat”, and | ||||||
| * it also happens to be a Persian word for ‘container’. | * 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