Skip to content

Commit e97d999

Browse files
committed
Readme cleanup and build instructions.
1 parent 5b24516 commit e97d999

File tree

1 file changed

+33
-11
lines changed

1 file changed

+33
-11
lines changed

README.md

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,24 @@ rio
33

44
**R**epeatable **I**/**O**.
55

6-
Rio is part of the [Timeless Stack](https://github.com/polydawn/timeless) --
7-
it handles packing, unpacking, syncing, copying, and hashing of Filesets.
8-
9-
In other words, Rio is tooling for repeatable, reproducible, filesystem I/O and transport.
6+
Rio is tooling for repeatable, reproducible, filesystem I/O and transport.
107
It's both a command line tool, and usable as a series of libraries.
118

12-
(You may also want to check out [Repeatr](https://github.com/polydawn/repeatr),
13-
which is the container executor in the Timeless Stack -- it uses Rio under the hood
14-
to provide snapshotting and decentralized sync of container filesystem images.)
9+
Rio is part of the [Timeless Stack](https://repeatr.io) --
10+
it handles packing, unpacking, syncing, copying, and hashing of Filesets.
11+
12+
You may also want to check out [Repeatr](https://github.com/polydawn/repeatr),
13+
which is the container executor in the Timeless Stack (it uses Rio under the hood
14+
to provide snapshotting and decentralized sync of container filesystem images);
15+
and [Reach](https://github.com/polydawn/reach), which provides pipelining tooling
16+
for managing both Rio and Repeatr with less copy-pasting of hashes.
1517

1618

1719
What?
1820
-----
1921

22+
### example of packing
23+
2024
Okay, by example:
2125

2226
```
@@ -29,6 +33,8 @@ It also gave you a hash on stdout. That's a
2933
[content-addressable](https://en.wikipedia.org/wiki/Content-addressable_storage)
3034
ID of the pack you just created.
3135

36+
### example of unpacking
37+
3238
You can use that ID later to unpack things:
3339

3440
```
@@ -43,19 +49,20 @@ Why is this neat?
4349
You can put that packed data on any server, anywhere, and fetch it again by hash.
4450
The hash makes it immutable, and reproducible, even if you don't control the storage.
4551

46-
Turning it up to 11
47-
-------------------
52+
### example of packing to remote storage and using content-addressing
4853

4954
```
50-
rio pack tar /tmp/something/ --target=ca+32://mybucket.s3.amazonaws.com/assets/
55+
rio pack tar /tmp/something/ --target=ca+https://mybucket.s3.amazonaws.com/assets/
5156
```
5257

5358
Same drill except... we just:
5459

5560
- uploaded to a cloud storage host
56-
- without a specific name -- the hash is used to organize storage
61+
- without a specific name -- the hash is used to organize storage (note the "ca+" segment of the url).
5762
- and still got the same hash.
5863

64+
### example of unpacking from remote storage while using content-addressing
65+
5966
Now, hand that hash to someone else:
6067

6168
```
@@ -64,3 +71,18 @@ rio unpack tar:879UrF8j7E[...]udF57KpF8 \
6471
```
6572

6673
They get your files. Boom. Huge amounts of data. Just one handle to copypaste: that hash.
74+
75+
76+
Building
77+
--------
78+
79+
Rio is built in Golang and uses git submodules to track libraries by hash.
80+
81+
To build Rio, first get the submodules, then set up GOPATH, then use go:
82+
83+
```
84+
git submodule update --init
85+
GOPATH=$PWD/.gopath go install ./...
86+
```
87+
88+
You may find the [`gof`](https://github.com/warpfork/gof) script makes this more convenient.

0 commit comments

Comments
 (0)