Giter VIP home page Giter VIP logo

knot's People

Contributors

hamster21 avatar

Watchers

 avatar  avatar

knot's Issues

Consider Afero as a file system interface

Afero has the benefit of writing to a local file system first, and lateron add a backend that is a shared file storage across a distributed network. It would also be possible to never even store files locally, but in Amazon S3 buckets instead. Or shove all files incoming through SSH to your NAS and work with them from there

Consider fuzzy testing

There is a library to write go fuzzing tests call Go-fuzz, which would be useful to test if arbitrary file inputs can break the program. This can then be extended to build arbitrary objects in pretty random ways and see if they can take the application down.

Another important fuzzing test use would be network transmission of objects in the distributed network. The communication should gracefully handle arbitrary messages or 1s and 0s being sent to the participant

Knot Objects

A knot object looks and feels like a git object. It has an identifier, a type and data assigned to it and can be stored as a file on the filesystem.

A knot object has to fulfill a number of requirements:

  1. it must produce the same identifier for identical input
  2. data of the file must not be changed
  3. A persisted file stores the type as a string and the compressed file contents, separated by a newline character. The filename given is the identifier of the file content.

As a result the stored object is known to know, it can be discovered and is the basis for a content-addressable database/filesystem.

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.