godi

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2014 License: LGPL-3.0 Imports: 4 Imported by: 0

README

SEAL, COPY & VERIFY - FAST

godi stands for "go data integrity" and is a commandline utility to generate seal files from a directory tree. This allows to re-check the tree for consistency, and thus verify the data is intact. This is especially useful if valuable, immutable data is retrieved from potentially unreliable media, and copied to another storage device.

As it is very common to verify copy operations, godi is able to copy files in the moment is generates the seal, to one or more destinations.

godi was inspired by the media hash list tool, whose seal file format it can read and write. It aims to be easier to use, and faster. On a quad core CPU, godi turned to be 6x the speed of mhl.

Why Godi

godi helps you to protect your data against unnoticed corruption, which represents an undesired change. Data files suitable for such protection is

  • valuable and reproducing it is either costly or prohibitive
    • Imagine you are on set of a block buster, and have to handle the camera data of a multi-million action shot that took weeks to prepare.
    • Your digital product is delivered to the client, and you want him to be sure that data was not corrupted in-flight. It's also an insurance for you as you can prove that the data was still intact on your end.
  • immutable and will not be changed directly
    • You took pictures of the Niagara Falls, and even though you want to do some post-processing, you will always keep the original. It should remain exactly as is, and will only serve as source for various image manipulations.

Therefore, if your data files change a lot, godi is not for you.

Usage Examples

Protect your valuable, immutable data against silent corruption and create a seal seal

Verify that data is still intact as compared against the seal verify

Seal valuable data and duplicate it to two backup devices sealed-copy

Seal valuable data and duplicate it to two backup devices [PARANOID VERSION] sealed-copy-verify

Read more on the documentation page

Features

  • protect your data against unnoticed and silent corruption
  • atomically duplicate data to one or more locations while protecting it against corruption, without fearing to overwrite existing files.
  • use all [available device bandwidth and CPU cores](details.md#Performance Considerations) to finish your work much faster
  • runs on all major and minor platforms and architectures

Installation

  • Download and extract the multi-platform archive from the latest release
  • Typing godi/<platform>/godi in a terminal from the extraction point displays help on the respective platform.

If you are using godi more regularly, it is adviced to put it into your shell's executable search path

Development Status

Build Status

Latest releases can be found here. Developer docs can be found at godoc.org

Infrastructure

Credits

godi uses the following libraries:

godi is inspired by

LICENSE

This open source software is licensed under GNU Lesser General Public License

Documentation

Overview

For high-level developer documentation, please see http://byron.github.io/godi/development/

Directories

Path Synopsis
Package api contains types, interfaces and functions shared among commands and codecs.
Package api contains types, interfaces and functions shared among commands and codecs.
cli
Package cli provides common utilities for commandline handling in conjunction with codegansta/cli
Package cli provides common utilities for commandline handling in conjunction with codegansta/cli
app
Package app provides a codegansta/cli.App initialized with all known godi commands.
Package app provides a codegansta/cli.App initialized with all known godi commands.
Package codec provides support for serializing and deserializing file-hash information using channels.
Package codec provides support for serializing and deserializing file-hash information using channels.
Package io provides asynchronous reader and writer implementations.
Package io provides asynchronous reader and writer implementations.
Package seal implements the 'seal' and 'sealed-copy' functionality.
Package seal implements the 'seal' and 'sealed-copy' functionality.
cli
Package cli implements the commandline interface for the Command, ready for digestion by the cli.Appf
Package cli implements the commandline interface for the Command, ready for digestion by the cli.Appf
Package testlib provides varous utilities for testing purposes
Package testlib provides varous utilities for testing purposes
Package verify implements verification of seal files previously written with the seal command
Package verify implements verification of seal files previously written with the seal command
cli
Package cli implements the command-line interface for the Command, for use by the cli.App
Package cli implements the command-line interface for the Command, for use by the cli.App

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL