Metadata-Version: 2.1
Name: pyrrhic-restic
Version: 0.6.3
Summary: Restic implementation in Python
Author-email: Jürgen Hötzel <juergen@hoetzel.info>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: cryptography >= 37.0.4
Requires-Dist: typer[all] >= 0.3.2
Requires-Dist: zstandard
Requires-Dist: msgspec >= 0.9.1
Requires-Dist: pytest ; extra == "test"
Project-URL: Home, https://github.com/juergenhoetzel/pyrrhic
Provides-Extra: test

# Restic implementation in Python

[![image](https://github.com/juergenhoetzel/pyrrhic/workflows/main/badge.svg?branch=master)](https://github.com/juergenhoetzel/pyrrhic/actions?workflow=main)
[![image](https://codecov.io/gh/juergenhoetzel/pyrrhic/branch/master/graph/badge.svg)](https://codecov.io/gh/juergenhoetzel/pyrrhic)

## Installation

### From pip

```bash
pipx install pyrrhic-restic
```
## Screenshot

<img src="https://github.com/juergenhoetzel/pyrrhic/blob/master/screenshots/screenshot.png">

## Alpha Relase

All commands are compatible with `restic` implementation:
```bash
pyrrhic --repo restic_test_repositories/restic_test_repository cat masterkey

```

```
{'encrypt': 'Te0IPiu0wvEtr2+J59McgTrjCp/ynVxC/mmM9mX/t+E=',
 'mac': {'k': 'aSbwRFL8rIOOxL4W+mAW1w==', 'r': 'hQYBDSD/JwpU8XMDIJmAAg=='}}
```

```bash
pyrrhic -r restic_test_repositories/restic_test_repository -p <(echo password) ls latest
```

```
/usr
/usr/share
/usr/share/cracklib
/usr/share/cracklib/cracklib-small
/usr/share/cracklib/cracklib.magic
/usr/share/cracklib/pw_dict.hwm
/usr/share/cracklib/pw_dict.pwd
/usr/share/cracklib/pw_dict.pwi
```

## Additional features missing in golang restic implementation

- pretty-print all objects
- `pyrrhic cat pack SNAPSHOT_ID --header` prints parsed header
- Resumable restore
- Progress bar

## Why is it called pyrrhic

Needed a name starting with `py` containing `r` and ending with `ic`:

```bash
grep ^py.*r.*ic$ /usr/share/dict/cracklib-small
```

## Limitations

- Supports repository format version 2 only (current restic version).

