<commit_before># Hoard

![master](https://github.com/monax/hoard/workflows/master/badge.svg)
[![version](https://img.shields.io/github/tag/monax/hoard.svg)](https://github.com/monax/hoard/releases/latest)
[![GoDoc](https://godoc.org/github.com/hoard?status.png)](https://pkg.go.dev/github.com/monax/hoard)
[![license](https://img.shields.io/github/license/monax/hoard.svg)](LICENSE.md)
[![LoC](https://tokei.rs/b1/github/monax/hoard?category=lines)](https://github.com/monax/hoard)
[![codecov](https://codecov.io/gh/monax/hoard/branch/master/graph/badge.svg)](https://codecov.io/gh/monax/hoard)

Hoard is a stateless, deterministically encrypted, content-addressed object store.

![hoarding marmot](docs/images/hoard.jpg)

## Introduction
It convergently encrypts an object using its (SHA256) hash as the secret key (which can than be shared as a 'grant').
The address is then deterministically generated from the encrypted object's (SHA256) digest and allocated to the configured storage back-end:

- In-Memory
- Filesystem
- [AWS](https://aws.amazon.com/s3/)
- [GCP](https://cloud.google.com/storage/)
- [Azure](https://azure.microsoft.com/en-gb/services/storage/)
- [IPFS](https://ipfs.io/)

## Installing
Hoard should be go-gettable with:

```shell
# Install Hoard-Daemon:
go get github.com/monax/hoard/cmd/hoard

# Install Hoard-Control:
go get github.com/monax/hoard/cmd/hoarctl
```<commit_msg>fix link in README to LICENSE<commit_after># Hoard

![master](https://github.com/monax/hoard/workflows/master/badge.svg)
[![version](https://img.shields.io/github/tag/monax/hoard.svg)](https://github.com/monax/hoard/releases/latest)
[![GoDoc](https://godoc.org/github.com/hoard?status.png)](https://pkg.go.dev/github.com/monax/hoard)
[![license](https://img.shields.io/github/license/monax/hoard.svg)](LICENSE)
[![LoC](https://tokei.rs/b1/github/monax/hoard?category=lines)](https://github.com/monax/hoard)
[![codecov](https://codecov.io/gh/monax/hoard/branch/master/graph/badge.svg)](https://codecov.io/gh/monax/hoard)

Hoard is a stateless, deterministically encrypted, content-addressed object store.

![hoarding marmot](docs/images/hoard.jpg)

## Introduction
It convergently encrypts an object using its (SHA256) hash as the secret key (which can than be shared as a 'grant').
The address is then deterministically generated from the encrypted object's (SHA256) digest and allocated to the configured storage back-end:

- In-Memory
- Filesystem
- [AWS](https://aws.amazon.com/s3/)
- [GCP](https://cloud.google.com/storage/)
- [Azure](https://azure.microsoft.com/en-gb/services/storage/)
- [IPFS](https://ipfs.io/)

## Installing
Hoard should be go-gettable with:

```shell
# Install Hoard-Daemon:
go get github.com/monax/hoard/cmd/hoard

# Install Hoard-Control:
go get github.com/monax/hoard/cmd/hoarctl
```
{'fraction_non_alphanumeric': 0.17739068610024886, 'fraction_numerical': 0.005687877710629221, 'mean_word_length': 5.0, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 28, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2784191', 'n_tokens_mistral': 1039, 'n_tokens_neox': 990, 'n_words': 171}