|
1 |
| -# car - Certified ARchives -- WIP |
| 1 | +# archive-format |
| 2 | + |
| 3 | +[](http://ipn.io) |
| 4 | +[](http://ipfs.io/) |
| 5 | +[](http://webchat.freenode.net/?channels=%23ipfs) |
| 6 | +[](https://github.com/ipfs/archive-format/issues) |
| 7 | + |
| 8 | +> car - Certified ARchives -- WIP |
2 | 9 |
|
3 | 10 | **(WIP -- quick thought dump)**
|
4 | 11 |
|
5 | 12 | > A car for your data!
|
6 | 13 |
|
7 | 14 | `car` is an archive format, like [`tar`](https://en.wikipedia.org/wiki/Tar_(computing)). It is designed to improve upon some deficiencies in `tar` as well as add fundamental improvements. The deatils of `car` are still being worked on, but the design space is already well scoped. `car` is a synthesis of good ideas. Many other archive formats introduced some of its improvements. `car` is different as it was introduced mainly to work with [IPFS](https://ipfs.io) and related protocols, like [IPLD](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md). But `car` is useful beyond IPFS.
|
8 | 15 |
|
9 |
| -File System Improvements: |
| 16 | +This is a **discussion repo**. That means that all of the work gets done in the [issues](https://github.com/ipfs/apps/issues). |
| 17 | + |
| 18 | +## Table of Contents |
| 19 | + |
| 20 | +- [File System Improvements:](#file-system-improvements) |
| 21 | +- [Fundamentally New Features:](#fundamentally-new-features) |
| 22 | +- [Whishlist:](#whishlist) |
| 23 | +- [Related Work:](#related-work) |
| 24 | +- [Contribute](#contribute) |
| 25 | + - [Want to hack on IPFS?](#want-to-hack-on-ipfs) |
| 26 | +- [License](#license) |
| 27 | + |
| 28 | +## File System Improvements: |
10 | 29 |
|
11 | 30 | - **Seeking Optimized:** finding object within a `car` file should be easy and fast. We can do this via an index with in-file byte offsets.
|
12 | 31 | - **[UNIX/POSIX files]():** full unix + posix files compliance.
|
13 | 32 | - **[Extended Attributes](https://en.wikipedia.org/wiki/Extended_file_attributes):** support for xattrs and other extensions.
|
14 | 33 | - **Compression Optimized:** support for object-level and archive-level compression. Modular to support new compression protocols.
|
15 | 34 | - **Encryption Optimized:** support for object-level and archive-level encryption (through [AEADs](https://en.wikipedia.org/wiki/Authenticated_encryption) / [NaCl/Box](https://godoc.org/golang.org/x/crypto/nacl/box))
|
16 | 35 |
|
17 |
| -Fundamentally New Features: |
| 36 | +## Fundamentally New Features: |
18 | 37 |
|
19 | 38 | - **[Data Structures](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md):** support for archiving more than files-- arbitrary datastructures (first-class JSON, XML, IPLD support)
|
20 | 39 | - **[Merkle-Linked](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md):** all objects in a `car` file are merkle-linked -- hash-linked -- together. this means the whole `car` file is a [merkle-dag](https://en.wikipedia.org/wiki/Merkle_tree).
|
21 | 40 | - **[Digital Signatures](https://en.wikipedia.org/wiki/Digital_signature):** `car` has first-class support for Digital Signatures, to verify the authorship and certification of its content.
|
22 | 41 |
|
23 |
| -Whishlist: |
| 42 | +## Whishlist: |
24 | 43 |
|
25 | 44 | - **[Repo Friendliness](https://github.com/jbenet/random-ideas/issues/33):** make it _easy, efficient, and useful_ to use `car` archives as on-disk repositories for other tools.
|
26 | 45 | - **[Authenticated Datastructures](https://www.cs.umd.edu/~mwh/papers/gpads.pdf):** define all `car` operations as an authenticated datastructure, to have secure, untrusted computing. Merkle-linking and Digital Signatures get us most of the way there.
|
27 | 46 |
|
28 |
| -Related Work: |
| 47 | +## Related Work: |
29 | 48 |
|
30 | 49 | - continuity: https://github.com/stevvooe/continuity
|
31 | 50 | - `asar`: https://github.com/atom/asar
|
32 | 51 | - IPFS: https://github.com/ipfs/ipfs
|
33 | 52 | - IPLD: https://github.com/ipfs/specs/tree/master/merkledag/ipld.md
|
34 | 53 | - ipfs/unixfs: https://github.com/ipfs/go-ipfs/tree/master/unixfs
|
35 | 54 | - lambda-auth: http://amiller.github.io/lambda-auth/
|
| 55 | + |
| 56 | +## Contribute |
| 57 | + |
| 58 | +Feel free to join in. All welcome. |
| 59 | + |
| 60 | +### Want to hack on IPFS? |
| 61 | + |
| 62 | +[](https://github.com/ipfs/community/blob/master/contributing.md) |
| 63 | + |
| 64 | +## License |
| 65 | + |
| 66 | +MIT |
0 commit comments