Git Product home page Git Product logo

nofs's Introduction

Note: I have rewritten nofs as autofs, which initially aims to get the remote access and semantic filesystem parts working. Future development will be focused on autofs and not this project.

https://github.com/fyhuang/autofs

NoFS, a networked filesystem

NoFS aims to provide a distributed network filesystem for small cluster use.

NoFS combines all your machines (laptop, desktop, etc.) into a single storage unit. No longer should you have to think about your files as being on a particular computer: now all your files are simply "your files", accessible from anywhere. Each machine contributes storage to the pool and can access all the files in the pool (pending permissions). Remote files can be cached locally and all file access happens as if performed on a local drive.

NoFS aims to provide this functionality while maintaining reasonable performance on high-bandwidth networks. In the course of everyday work, the user should not notice a difference when using NoFS from using a hard drive. NoFS is not intended for general use on medium-/high-latency links, but will provide a "client profile" to access your files from anywhere on the Internet.

Design and inspirations

This section hopes to shed some light on the inspirations behind the design and conception of NoFS. It also catalogues a list of potential features which aim to solve the problems that NoFS addresses.

Distributed filesystem

Why do we bother with a distributed filesystem? There are two problems in particular that we address:

  • Users have multiple computers. Their files are spread out across these computers, but there isn't an easy way to gain access to all their files from a single computer. USB drives, network shares, and current sync software are all too cumbersome for this task.
  • Backing up files is generally considered to be important, but the incentive structure for backups is completely backwards. It takes a ton of time, effort, disk space, and sometimes even money to back up your files; however, there is no immediately visible benefit. In fact, backing up is detrimental in the short term, wasting time, energy, and disk space.

We aim to solve the first problem -- collating all a user's files into one logical storage unit -- while providing automatic, seamless, and effortless backup as a side effect.

Semantic filesystem

A secondary goal of NoFS is to provide a more interconnected and semantic way of looking at your files. We were inspired by Gmail's labels and thought that this same concept could be applied to file organization as well. No file in NoFS has a "definitive" location in the filesystem: rather, each file can be filed into numerous locations simply by adding or removing labels. NoFS automatically finds semantic connections (based on content and metadata) between files to help automate your organizational methodology.

Credits

Base64 encode/decode in C is from http://base64.sourceforge.net/.

nofs's People

Contributors

fyhuang avatar

Stargazers

JT5D avatar  avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.