Skip to content

Commit ac563ce

Browse files
committed
Add README.md
Add LICENSE.md
1 parent 83ce2f9 commit ac563ce

2 files changed

Lines changed: 89 additions & 0 deletions

File tree

LICENSE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Copyright 2024 cout970
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4+
5+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6+
7+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# InnerFS
2+
3+
InnerFS is a command line utility to mount with FUSE a virtual file system that uses a sqlite database to store metadata
4+
and a storage backend to store the file contents.
5+
6+
Several use cases can benefit from InnerFS:
7+
8+
- Store files in S3 with encryption and deduplication
9+
- Keep all files in a single file, while still being able to access them as if they were in a directory
10+
- Store files in a SQL database that allows querying with SQL to generate statistics or performing complex searches
11+
- Reduce storage space by deduplicating and compressing files
12+
- Provide ease access to files while keeping them encrypted, allowing to safely sync the encrypted files to the cloud
13+
14+
### Backend
15+
16+
Filesystem: Is the most basic backend, stores files in the specific path.
17+
18+
Sqlar: Stores files in a SQLite database, see [sqlar](https://sqlite.org/sqlar.html) for more information.
19+
20+
S3: Stores files in an S3 compatible storage.
21+
22+
### Features
23+
24+
- File de-duplication based on content
25+
- File encryption with AES-256-GCM
26+
- Metadata sqlite database that can be queried with SQL
27+
- File name mangling with the content SHA512 hash
28+
29+
### Usage
30+
31+
- Generate a configuration file
32+
33+
```bash
34+
innerfs generate-config
35+
```
36+
37+
Will generate a configuration file `config.yml` in the current directory.
38+
39+
- Mount the filesystem
40+
41+
```bash
42+
innerfs mount
43+
```
44+
45+
Will mount the filesystem in the path specified in the configuration file. To unmount the filesystem use `umount` with
46+
the mount point.
47+
48+
- Nuke all data
49+
50+
```bash
51+
innerfs nuke
52+
```
53+
54+
Will remove all data from the filesystem, including the metadata database. Handle with care.
55+
56+
- Export index as JSON/YAML
57+
58+
```bash
59+
innerfs export-index --format json
60+
```
61+
62+
Will generate a JSON file with a hierarchical representation of the filesystem (without the file contents).
63+
64+
- Export files
65+
66+
```bash
67+
innerfs export-files --path ./output --format zip
68+
```
69+
70+
Will export all files in the filesystem to the specified path in the specified format. Supports `zip`, `tar`
71+
and `directory`.
72+
73+
### Configuration
74+
75+
The default configuration file contains comments that explain the options, can be seen [here](./src/default_config.yml).
76+
77+
### Planned features
78+
79+
- [ ] File compression
80+
- [ ] File verification
81+
- [ ] Sync between instances
82+
- [ ] Encryption of the metadata database

0 commit comments

Comments
 (0)