An open API service indexing awesome lists of open source software.

https://github.com/horazont/dragonstash

A transparent block-wise file system cache overlay with libfuse3, written in C++.
https://github.com/horazont/dragonstash

cache cpp fuse-filesystem sftp-client

Last synced: about 1 year ago
JSON representation

A transparent block-wise file system cache overlay with libfuse3, written in C++.

Awesome Lists containing this project

README

          

# DragonStash -- a Caching FUSE Overlay File System

[![Travis CI build badge](https://api.travis-ci.com/horazont/dragonstash.svg?branch=master)](https://travis-ci.com/horazont/dragonstash)

`DragonStash` is a FUSE file system which implements a *transparent cache*
over any other mounted file system or SFTP server. It helps you produce a
Dragon’s stash of the finest media (or whatever is available at the source
you’re using), automatically.

## Roadmap

`DragonStash` is in development. This means that a lot of things don’t work
yet. Here’s the roadmap and the current status.

### Done

* Transparent caching of inodes (directories, symlinks, file metadata).
* Local directory tree as source file system
* EIO on missing (meta-)data

### To be done

Everything, literally. But more specifically:

* Transparent block-wise caching of file contents
* SFTP server as source file system
* Limit number of blocks and inodes in the cache
* Evict unused blocks when limit is reached
* Understand fallocate to discard cached data
* Proper command-line interface and utility for:

- mounting and unmounting
- pinning file content, configuring readahead etc.

* Online write support
* Offline write support
* Online locking support
* (Unsafe) offline locking support
* More advanced readahead/pre-caching algorithms

### Out of scope

* Sockets, devices, fifos

## Huh? Wasn't this in golang once?

[Yes](https://github.com/horazont/dragonstash-golang). I got annoyed over
golang too much to continue it there. So I ported it to a saner language
(C++).

(Yes, I am a bit provocative about the above statement. In the end, it is
about a matter of taste.)