[#176] localstore: Implement primary BlobStor

Implement primary local BLOB storage based on filesystem tree.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-11-17 19:29:00 +03:00 committed by Alex Vanin
parent 09750484f9
commit b127607ac6
9 changed files with 467 additions and 0 deletions

View file

@ -0,0 +1,35 @@
package blobstor
import (
"github.com/klauspost/compress/zstd"
)
func noOpCompressor(data []byte) []byte {
return data
}
func noOpDecompressor(data []byte) ([]byte, error) {
return data, nil
}
func zstdCompressor() func([]byte) []byte {
enc, err := zstd.NewWriter(nil)
if err != nil {
panic(err)
}
return func(data []byte) []byte {
return enc.EncodeAll(data, make([]byte, 0, len(data)))
}
}
func zstdDecompressor() func([]byte) ([]byte, error) {
dec, err := zstd.NewReader(nil)
if err != nil {
panic(err)
}
return func(data []byte) ([]byte, error) {
return dec.DecodeAll(data, nil)
}
}