Skip to content

Releases: FloGa/scfs

0.10.3

25 Dec 10:09
Compare
Choose a tag to compare

Changes in 0.10.3

  • Update dependencies for security fixes

0.10.2

01 Nov 14:00
Compare
Choose a tag to compare

Changes in 0.10.2

  • Update dependencies for security fixes

0.10.1

03 Oct 08:05
Compare
Choose a tag to compare

Changes in 0.10.1

  • Upgrade fuser to get rid of abandoned users dep

  • Update dependencies

0.10.0

10 Jul 17:00
Compare
Choose a tag to compare

Changes in 0.10.0

  • Upgrade to clap4

  • Rework and simplify Cli

    We now use the clap derive module to simplify the Cli. Also, split and
    cat are now proper subcommands. Having them introduced as a non-optional
    flag before was a poor decision.

  • Update dependencies

0.9.2

23 Apr 21:34
Compare
Choose a tag to compare

Changes in 0.9.2

  • Update dependencies to get security fixes

  • Avoid using deprecated fucntion mount_spawn

0.9.1

23 Apr 20:14
Compare
Choose a tag to compare

Changes in 0.9.1

Update dependencies to fix security issues. Furthermore:

  • Replace dependency fuse with newer fuser

    fuser (https://github.com/cberner/fuser) is a more maintained and
    up-to-date fork of fuse (https://github.com/zargony/fuse-rs), which
    ensures smoother future development.

  • Use running integer as file handle

    This way, we do not need to rely on the time package to give a pseudo
    unique value.

  • Use running integer as inode

    This way, we do not need to rely on the time package to give a pseudo
    unique value.

  • Remove unused time dependency

0.9.0

23 Apr 20:14
Compare
Choose a tag to compare

Changes in 0.9.0

  • Check mirror and mountpoint for sanity

    • Mirror and mountpoint have to exist.

    • Mirror must not be in a subfolder of mountpoint, to avoid recursive
      mounts. This is also in accordance to EncFS.

  • Run scfs by default to easen rapid development

    Since we build more than just one binary, cargo run does not know
    which one to call by default. For this case, there is the key
    "default-run", which tells cargo run which binary to use when no
    --bin flag is present.

  • Notify main loop when filesystem is dropped

    The filesystem implements the Drop trait now, which makes it possible to
    run a function when the filesystem is unmouted in a way other than by
    terminating the main loop (most prominently by using umount directly).

    The previous situation was, when the filesystem was unmounted via
    umount, then the main loop would hang infinitely, because there was no
    way to notify the main loop. Now we send a quit signal when the
    filesystem is dropped, so the main loop can exit normally.

  • Canonicalize paths

    Using absolute paths is necessary for a daemon, since a daemon usually
    changes its working directory to "/" so as to not lock a directory.

  • Add daemon flag which puts program in background

    The daemonizing is done after the filesystem has been created, to let
    the initialization happen in foreground. This minimizes the time the
    daemon is running but the filesystem is not mounted yet.

  • Add flag to create mountpoint directory

    The mirror will intentionally not be created, since the mount is
    readonly and a missing mirror directory is most likely a typo from the
    user.

  • Add converter for symbolic quantities

    This converter will be used to calculate the blocksize for a SplitFS
    mount. The size can now be given as an integer or optionally with a
    quantifier like "K", "M", "G", and "T", each one multiplying the base
    with 1024.

0.8.0

23 Apr 20:14
Compare
Choose a tag to compare

Changes in 0.8.0

  • Implement readlink

  • Correctly handle symlinks

  • Replace each metadata with symlink_metadata

    Symlinks should be presented as-is, so it should never be necessary to
    traverse them.

  • Silently ignore unsupported filetypes

  • Add convenience wrappers for catfs and splitfs

    With these wrappers, it is possible to mount the respective filesystem
    without explicitly specifying the mode parameter.

0.7.0

23 Apr 20:14
Compare
Choose a tag to compare

Changes in 0.7.0

  • Make blocksize customizable

    It is now possible to use a custom blocksize in SplitFS. For example, to
    use 1MB chunks instead of the default size of 2MB, you would go with:

    scfs --mode=split --blocksize=1048576 <base directory> <mount point>
    

    Where 1048576 is 1024 * 1024, so one megabyte in bytes.

  • Short circuit when reading a size of 0

  • Do not materialize vector after each chunk

    This step was highly unnecessary anyway and it needlessly consumed time
    and memory. An Iterator can be flattened in the same way, but without
    the penalty that comes with materializing.

  • Do not calculate size of last chunk to read

    By simply reading blocksize bytes and only taking size before
    materializing, we can save a lot of possible mis-calculation regarding
    the last chunk.

    We make use of two properties here:

    • Reading after EOF is a no-op, so using a higher number on the
      reading operation does not hurt.

    • The reading operations take only place once we materialize the byte
      array. So even if we issue to read much more bytes than necessary on
      the last chunk, it will not hurt, since we only take the correct
      number of bytes on materializing.

  • Fix off-by-one error

  • Correctly handle empty files

    Create at least one chunk, even if it is empty. This way, we can
    differentiate between an empty file and an empty directory.

  • Add test suites to modules

    With automated tests we now can effectively check if new features work
    as intended and that they do not break existing code.

0.6.1

23 Apr 20:14
Compare
Choose a tag to compare

Changes in 0.6.1

  • Fix misleading part in the README

    The misleading part in the README said, that most cloud storage
    providers do not support the upload of a single file. This is of course
    rubbish. What I meant to say was, that they do not support the
    concurrent upload of a single file, as in chunked upload.

    This part is fixed now.

  • Update README to reflect CatFS precondition

    CatFS will now refuse to mount a directory that was not generated by
    SplitFS prior. The README didn't reflect this breaking change.

    This part is fixed now.