DBFS/README.md
2022-07-10 08:55:04 -04:00

2.8 KiB

DBFS

(Database Filesystem) DBFS is a FUSE file system utilizing an SQL database as the file system's backend. It mimics regular block storage in database tables, storing hash values of each block and maintains uniqueness among these blocks using those hash values. As a result, this file system can theoretically store more data while utilizing less actual data storage space. Other benefits include fast/easy snapshot-ting, forking and indexing.

Usage

Usage: dbfs <argument>

Arguments>

  --help

    Display usage and version information about this application.

  --run

    Attempt to mount and run the database file system as
    configured. This is blocking and is optimized to run via
    systemd but can still run without systemd if desired.

  --config <path-to-json-file>

    Use this option to point to a json formatted file to
    configure the application's behavior upon mounting the
    database file system. If not present, it will use the
    default config file location.

  --config_help

    Display details about the json config file and the
    various elements it uses to change application behavior.

  --list_db_drvs

    List all QT based database drivers the application
    currently supports. Any value returned by this command
    line argument can then be used in "db_drv" inside of the
    config file to pick which type of database you desire to
    use.

Build Setup

For Linux you need the following packages to successfully build/install:

fuse3
libfuse3-3
libfuse3-dev
qtbase5-dev
gcc
make
python3

Note: At this time, this application only supports Linux based platforms.

Build

To build this project from source you just need to run the build.py and then the install.py python scripts. While running the build the script, it will try to find the Qt API installed in your machine according to the PATH env variable. If not found, it will ask you to input where it can find the Qt bin folder where the qmake executable exists or you can bypass all of this by passing the -qt_dir option on it's command line.

while running the install script, it will ask you to input 1 of 3 options:

local machine - This option will install the built application onto the local machine without creating an installer.

create installer - This option creates an installer that can be distributed to other machines for installation. The resulting installer is just a regular .py script file that the target machine can run if it has Python3 installed. Only Python3 needs to be installed and an internet connection is not required.

exit - Cancel the installation.

-local or -installer can be passed as command line options for install.py to explicitly select one of the above options without pausing for user input.