Git Product home page Git Product logo

JotFS

Build Status codecov Go Report Card Gitter

JotFS is a deduplicating file storage engine backed by S3. It works by splitting incoming files into small content-defined chunks and only storing those chunks which it has not seen yet.

For a short explanation of how JotFS works, please see the introductory article.

Features:

  • Reduces storage space
  • Reduces upload bandwidth
  • Backed by S3 or S3 compatible storage (Minio, GCP etc.)
  • Client library available for Go (more languages planned)
  • Client CLI with familiar commands: jot cp, jot ls etc.
  • Optional file versioning
  • Easy deployment with a single binary or Docker image

JotFS is currently beta level software.

Install

Docker

docker pull jotfs/jotfs

Linux Binary

Download the latest binary from the releases page and extract. Example:

gzip -dc ./jotfs_linux_amd64_v0.0.3.gz > jotfs
chmod +x ./jotfs
./jotfs -version

Source

git clone https://github.com/jotfs/jotfs.git
cd jotfs
CGO_ENABLED=1 go build ./cmd/jotfs

Quickstart

Using AWS S3 backed storage (see the wiki for more examples and advanced configuration):

jotfs -store_bucket="jotfs-test"

Use the jot CLI to interact with the server:

jot cp data.txt jot://data.txt

jot ls /

jot cp jot://data.txt data_download.txt

The server stores metadata in a database file located at ./jotfs.db by default. When running the Docker image, you should mount a volume to /app in the container so the database is persisted between runs:

docker run -v jotfs:/app jotfs/jotfs <FLAGS...>

Contributing

Contributions to JotFS and its client applications are welcome. Please open an issue if you would like to report bugs or suggest new features.

License

JotFS is licensed under the Apache 2.0 License. See LICENSE for details.

jotfs's Projects

fastcdc-go icon fastcdc-go

Go implementation of the FastCDC content-defined chunking algorithm

jot icon jot

The Go client library & CLI for JotFS

jotfs icon jotfs

JotFS, a content-defined deduplicating file store

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.