Skip to content

DocJade/fluster_rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Fluster
Fluster

A futuristic filesystem that's stuck in the past.

Blazingly fast! Support me on Ko-fi! Gluten free!

FeaturesHow To UseCreditsLicense

Fluster playing \

Features

  • Multi-disk
    • Spans a single filesystem across as many floppy disks as are required to store the data, treating them as a single pool.
  • Disk failure detection
    • Automatically detects and troubleshoot drive and disk issues.
  • Automatic backups
    • Floppy disks are unreliable, so every block operation is backed up to /var/fluster in case disk recovery is required.
  • Tiered caching
    • Triple tiered, in-memory cache to minimize disk swapping, while only using 2 floppy disks worth of memory.
  • Error checking
    • Every 512 byte block has a 4 byte CRC to detect corruption or bad reads, and disk operations will automatically retry if the CRC fails.
  • FUSE based
    • Built on FUSE, which makes Fluster! mountable on any UNIX or UNIX-like system that supports FUSE.

How To Use

To clone and run Fluster!, you'll need Rust, a FUSE implementation, a floppy drive, and at least two floppy disks.

Prerequisites

For Linux & macOS

  • Install:
    • Rust: Follow the official installation guide.
    • FUSE: On most Linux distributions, libfuse is available through your package manager (e.g., sudo apt-get install libfuse-dev).
      • On macOS, you may need macFUSE, although I have not tested Fluster! on MacOS at all, since you should use a real operating system.

For Windows Users

Building and running

Build Fluster!:

# Clone the repository
git clone https://github.com/DocJade/fluster_rs

# Go into the repository
cd fluster_fs

# Build with the recommended 'floppy' profile
cargo build --profile floppy

Run Fluster!:

# Example usage:
# Create a directory to mount the filesystem
mkdir ~/fluster_mount_point
# Run the app (requires root privileges for mounting)
sudo ./target/floppy/fluster_fs --block-device-path "/dev/sdX" --mount-point "~/fluster_mount_point"
  • Replace /dev/sdX with the actual path to your floppy drive.

Unmounting Fluster!:

fusermount -u ~/fluster_mount_point
  • Do note that unmounting Fluster! does not immediately shut down fluster, you will still need to swap disks to flush the cache to disk.

Credits

Notes:

Originally I planned to keep an up-to-date implementation spec of Fluster! in ./filesystem_design, but this slowly became more and more out of date, as is now very un-representative of the final product. Some information in there such as Inode blocks and how they are constructed should be mostly up to date. Dense disks aren't real, and they cannot hurt you.

If you're wondering "Where is the EXE so I can just run it myself!" Please understand that there isn't one, and for good reason. If you don't know how to build and run this project yourself, chances are you would use it improperly, and possibly wipe your C: drive.

See Fluster! in action

YouTube link

You may also like...

  • Pornography, search "boobs" on google for more info.

License

Fluster! © 2025 by DocJade is licensed under Creative Commons Attribution 4.0 International


I should just come up with a cool name and the rest will like as itself.

About

A futuristic filesystem that's stuck in the past.

Topics

Resources

License

Stars

Watchers

Forks

Languages