Skip to content

Latest commit

 

History

History
62 lines (43 loc) · 2.1 KB

README.md

File metadata and controls

62 lines (43 loc) · 2.1 KB

This project contains my first Rust project, the one I used to learn how to write Rust programs and also my first RDBMS audit triggers project. This was a learning exercise on handling and shaving temporal data. This project also introduces some advanced configurables and incorporates some bugfixes from my other sqlitefs repository. Thanks for creating the original SQLiteFS, @narumatt and the original SQLite project, Dr. D. Richard Hipp. This project is mostly complete save two features I wish it had:

  • Periodic writes or write-on-socket-activation to the disks from a DB mapped by memory
  • Create genesis from a given time T and shave the past entries

This has been tested extensively on a Chromebook ((probably ext4) eMMC, external flash drive), FreeBSD VM (UFS backing it), NetBSD VM (FFS or whatever NetBSD uses + Puffs/librefuse). Contents are licensed under the Open Software License, version 3.0 (no later versions).

sqlite-fs

About

sqlite-fs allows Linux and MacOS to mount a sqlite database file as a normal filesystem.

Requirements

  • Latest Rust Programming Language (≥ 1.38)
  • libfuse(Linux) or osxfuse(MacOS) is requied by fuse-rs

Usage

Mount a filesystem

$ sqlite-fs <mount_point> [<db_path>]

If a database file doesn't exist, sqlite-fs create db file and tables.

If a database file name isn't specified, sqlite-fs use in-memory-db instead of a file. All data will be deleted when the filesystem is closed.

Unmount a filesystem

  • Linux
$ fusermount -u <mount_point>
  • Mac
$ umount <mount_point>

example

$ sqlite-fs ~/mount ~/filesystem.sqlite &
$ echo "Hello world\!" > ~/mount/hello.txt
$ cat ~/mount/hello.txt
Hello world!

functions

  • Create/Read/Delete directories
  • Create/Read/Write/Delete files
  • Change attributions
  • Copy/Move files
  • Create Hard Link and Symbolic Link
  • Read/Write extended attributes
  • [] File lock operations
  • [] Strict error handling