func Compress(dst, src []byte) ([]byte, error) {
	return CompressLevel(dst, src, DefaultCompression)
}
Compress src into dst.  If you have a buffer to use, you can pass it to
prevent allocation.  If it is too small, or if nil is passed, a new buffer
will be allocated and returned.
package zstd
import "C"
import (
	"bytes"
	"errors"
	"io/ioutil"
	"unsafe"
)
const (
	BestSpeed          = 1
	BestCompression    = 20
	DefaultCompression = 5
)
var (
	ErrEmptySlice = errors.New("Bytes slice is empty")
)
func CompressBound(srcSize int) int {
	lowLimit := 128 << 10  
	var margin int
	if srcSize < lowLimit {
		margin = (lowLimit - srcSize) >> 11
	}
	return srcSize + (srcSize >> 8) + margin
}
func cCompressBound(srcSize int) int {
	return int(C.ZSTD_compressBound(C.size_t(srcSize)))
}