summaryrefslogtreecommitdiff
path: root/README.md
blob: bbe4192ba76e734c1c5f0a0d18a93e527064b4d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Storehouse: Object storage HTTP server

Storehouse is a simple HTTP service to store text objects organized by buckets,
written in Go.

The service has two backends: one stores the objects in-memory, the other uses
files for persistence.

The in-memory backend features a proactive de-duplication mechanism that avoids
the creation of objects with duplicate content inside the same bucket.

## Building Storehouse

Simply run `make` or `go build` in the root directory.

## Usage

The options are displayed with -h/--help:

```
$ ./storehouse -h
Usage of ./storehouse:
  -datadir string
        The directory where the objects are stored with the file backend (default "data")
  -memory
        Memory backend with de-duplication (default: file backend w/o de-dup)
  -port int
        The port on which the server will listen for connections (default 8080)
```

## Potential improvements

* More and better tests, including integration and e2e tests.

* Implementation of the de-duplication mechanism for the file backend.

* Better logging, using a log package instead of printf.

* ...