project: aferofuse and capacityfs
intro⌗
These past 2 weeks I have paid my attention towards making my previous project, ft-demo
, more accessible rather than focusing on making my other new project come to life.
Specifically, I wanted to create an accessible demo that did not require any extra information. i.e, a user goes to the web page and they could use ft
.
Although limited, this can greatly affect the project’s usage and what not. Besides, I never provide demos so why not.
Now, onto the 2 new projects.
capacity-fs⌗
capacity-fs is a very simple project that wraps around an afero filesystem. It’s basic usage is to limit the size of a file system. It does this via three ways:
- Counting the filesystem’s size on creation; returns an error the size exceeds the wanted size.
- Recounting the filesystem’s size on creating a file or directory.
- Wrapping the underlying filesystem’s file to sync any
Write
and anyTruncate
operations.
That’s all.
Why was it created? To make sure that users of ft-demo
do not use more data than needed.
aferofuse⌗
aferofuse is basically an afero to fuse translator. It takes in an afero filesystem and returns a fuse filesystem.
How? By wrapping the go-fuse
methods around the afero
filesystem methods.
Why? Well, the server side of ft
only accepts directories. This decision was made because fuse
is a lot better than afero
in terms of extensibility.
So, in-order to limit the size of a directory, ft-demo
must use capacity-fs
to limit the size of a directory and aferofuse
to expose that filesystem to the ft
server.
last-note⌗
Both, capacity-fs
and aferofuse
are essentially beta
.
They both have 100% coverage
but I wouldn’t recommend others to use system lest they take full responsibility and consider that these projects could do some harm to their filesystems.
Besides that, be on the look out for ft-demo
!