0

[WIP] Initial commit

This commit is contained in:
eleksir
2023-10-08 11:41:10 -07:00
commit a3e6ef65ed
1522 changed files with 653924 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
// Copyright 2021 The LevelDB-Go and Pebble Authors. All rights reserved. Use
// of this source code is governed by a BSD-style license that can be found in
// the LICENSE file.
//go:build !cgo
// +build !cgo
package sstable
import "github.com/klauspost/compress/zstd"
// decodeZstd decompresses b with the Zstandard algorithm.
// It reuses the preallocated capacity of decodedBuf if it is sufficient.
// On success, it returns the decoded byte slice.
func decodeZstd(decodedBuf, b []byte) ([]byte, error) {
decoder, _ := zstd.NewReader(nil)
defer decoder.Close()
return decoder.DecodeAll(b, decodedBuf[:0])
}
// encodeZstd compresses b with the Zstandard algorithm at default compression
// level (level 3). It reuses the preallocated capacity of compressedBuf if it
// is sufficient. The subslice `compressedBuf[:varIntLen]` should already encode
// the length of `b` before calling encodeZstd. It returns the encoded byte
// slice, including the `compressedBuf[:varIntLen]` prefix.
func encodeZstd(compressedBuf []byte, varIntLen int, b []byte) []byte {
encoder, _ := zstd.NewWriter(nil)
defer encoder.Close()
return encoder.EncodeAll(b, compressedBuf[:varIntLen])
}