123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // Copyright 2011 The Snappy-Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package snappy
- import (
- "io"
- "github.com/klauspost/compress/s2"
- )
- var (
- // ErrCorrupt reports that the input is invalid.
- ErrCorrupt = s2.ErrCorrupt
- // ErrTooLarge reports that the uncompressed length is too large.
- ErrTooLarge = s2.ErrTooLarge
- // ErrUnsupported reports that the input isn't supported.
- ErrUnsupported = s2.ErrUnsupported
- )
- const (
- // maxBlockSize is the maximum size of the input to encodeBlock. It is not
- // part of the wire format per se, but some parts of the encoder assume
- // that an offset fits into a uint16.
- //
- // Also, for the framing format (Writer type instead of Encode function),
- // https://github.com/google/snappy/blob/master/framing_format.txt says
- // that "the uncompressed data in a chunk must be no longer than 65536
- // bytes".
- maxBlockSize = 65536
- )
- // DecodedLen returns the length of the decoded block.
- func DecodedLen(src []byte) (int, error) {
- return s2.DecodedLen(src)
- }
- // Decode returns the decoded form of src. The returned slice may be a sub-
- // slice of dst if dst was large enough to hold the entire decoded block.
- // Otherwise, a newly allocated slice will be returned.
- //
- // The dst and src must not overlap. It is valid to pass a nil dst.
- //
- // Decode handles the Snappy block format, not the Snappy stream format.
- func Decode(dst, src []byte) ([]byte, error) {
- return s2.Decode(dst, src)
- }
- // NewReader returns a new Reader that decompresses from r, using the framing
- // format described at
- // https://github.com/google/snappy/blob/master/framing_format.txt
- func NewReader(r io.Reader) *Reader {
- return s2.NewReader(r, s2.ReaderMaxBlockSize(maxBlockSize))
- }
- // Reader is an io.Reader that can read Snappy-compressed bytes.
- //
- // Reader handles the Snappy stream format, not the Snappy block format.
- type Reader = s2.Reader
|