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:

  1. Counting the filesystem’s size on creation; returns an error the size exceeds the wanted size.
  2. Recounting the filesystem’s size on creating a file or directory.
  3. Wrapping the underlying filesystem’s file to sync any Write and any Truncate 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!