Skip to content

Commit

Permalink
Update README.md for version 1.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
cout970 committed Sep 1, 2024
1 parent 3900ef1 commit bbe3ca9
Showing 1 changed file with 38 additions and 2 deletions.
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@ Sqlar: Stores files in a SQLite database, see [sqlar](https://sqlite.org/sqlar.h

S3: Stores files in an S3 compatible storage.

RocksDB: Stores files in a RocksDB database, see [rocksdb](https://rocksdb.org/) for more information.

### Features

- File de-duplication based on content
- File encryption with AES-256-GCM
- File compression with gzip
- Metadata sqlite database that can be queried with SQL
- File name mangling with the content SHA512 hash

Expand Down Expand Up @@ -70,13 +73,46 @@ innerfs export-files --path ./output --format zip
Will export all files in the filesystem to the specified path in the specified format. Supports `zip`, `tar`
and `directory`.

- Stats

```bash
innerfs stats
```

Will print a JSON file with statistics about the filesystem, number of files, directories, sizes, etc.

- Verify integrity

```bash
innerfs verify
```

Will verify the integrity of the filesystem, checking the metadata database and the file contents.

### Configuration

The default configuration file contains comments that explain the options, can be seen [here](./src/default_config.yml).

### Installation

You can download the latest release from the [releases page](https://github.com/cout970/InnerFS/releases) or build from
source using `cargo build --release` on a copy of the repo.

It is necessary to have FUSE installed, it is usually available in the package manager of most distributions named '
fuse' or 'fuse3'.

### Limitations

- The filesystem is not fully POSIX compliant, some operations may not work as expected: append, fallocate, symlinks,
hardlinks, etc.
- If the database file is lost, the access to the files could be lost, for example, if encryption is enabled, the key
salt and nonce are stored in the database.
- Performance will be worse than a traditional filesystem, as every operation is done in a single thread.
- Files will be fully loaded in memory for read/write operations, so be careful with huge files.

### Planned features

- [ ] File compression
- [ ] File verification
- [x] File compression
- [x] File verification
- [ ] Sync between instances
- [ ] Encryption of the metadata database

0 comments on commit bbe3ca9

Please sign in to comment.