cas

package module
v0.0.0-...-c07845e Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2015 License: MIT Imports: 0 Imported by: 0

README

go-cas

A Content-Addressable Storage layer for Go.

godoc Build Status Coverage Status

This is an EARLY BETA. It mostly kinda works, but the unittests are still fairly incomplete, there are no regression tests yet, there's no benchmarking, there's no locality in the caching layer, and there's no Reed-Solomon. All of these are pretty much mandatory before I'd trust it with my own data, much less yours.

Not familiar with the CAS paradigm? The basic idea is "let's store blobs, but instead of assigning sequential IDs or generating UUIDs, let's hash the data to determine its primary key". Lower-level objects contain raw data, higher-level objects contain references to lower-level objects, and so on. (This is the same paradigm that Git is built around.) At the top of the hierarchy, you need something that isn't the CAS to find the root of your data tree, but that's just a small string that you could stick in a static file, etcd, Apache ZooKeeper, or the like.

Documentation

Overview

Package cas is a CAS (Content-Addressible Storage) layer.

The basic idea of CAS is "let's store blobs, but instead of assigning sequential IDs or UUIDs, let's hash the data to determine the key". This is useful for building distributed filesystems and the like.

Subpackage "client" provides a client library for contacting a CAS server over TCP or AF_UNIX.

Subpackage "cmd" provides some binaries for getting started fast, including a basic on-disk CAS, a cache, and a command-line client.

Subpackage "proto" provides the RPC API definition for client/server communication. The RPC framework is GRPC, which is built on HTTP2.

Subpackage "server" provides libraries for implementing a CAS server. This includes the implementations of the binaries in "cmd", exposed so that you can re-use them as components in custom CAS servers.

Directories

Path Synopsis
Package client implements an RPC client for the CAS API.
Package client implements an RPC client for the CAS API.
cmd
casutil
Command casutil is a tool for viewing and manipulating CAS contents.
Command casutil is a tool for viewing and manipulating CAS contents.
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
Package server implements RPC servers for the CAS API.
Package server implements RPC servers for the CAS API.
fs

Jump to

Keyboard shortcuts

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