zstd

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package zstd provides Zstandard compression support for omnistorage.

Zstandard (zstd) offers better compression ratios than gzip at similar speeds, and significantly faster decompression. It's ideal for:

  • Log files and structured data (NDJSON, CSV)
  • Large file archives
  • Real-time compression where decompression speed matters

Basic usage:

fileWriter, _ := backend.NewWriter(ctx, "data.ndjson.zst")
zstdWriter, _ := zstd.NewWriter(fileWriter)
// Write data...
zstdWriter.Close()

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CompressionLevel

type CompressionLevel int

CompressionLevel represents zstd compression levels.

const (
	// SpeedFastest provides the fastest compression speed.
	// Compression ratio is lower but speed is maximized.
	SpeedFastest CompressionLevel = iota + 1

	// SpeedDefault provides a good balance of speed and compression.
	// This is the recommended level for most use cases.
	SpeedDefault

	// SpeedBetterCompression provides better compression at slower speed.
	SpeedBetterCompression

	// SpeedBestCompression provides the best compression ratio.
	// Significantly slower than other levels.
	SpeedBestCompression
)

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

Reader wraps an io.ReadCloser with zstd decompression.

func NewReader

func NewReader(r io.ReadCloser) (*Reader, error)

NewReader creates a new zstd reader that decompresses data from the underlying reader.

func NewReaderWithOptions

func NewReaderWithOptions(r io.ReadCloser, opts ...zstd.DOption) (*Reader, error)

NewReaderWithOptions creates a new zstd reader with custom options. This allows fine-grained control over decompression parameters.

func (*Reader) Close

func (r *Reader) Close() error

Close closes both the zstd decoder and the underlying reader.

func (*Reader) Read

func (r *Reader) Read(p []byte) (n int, err error)

Read reads decompressed data from the underlying reader.

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

Writer wraps an io.WriteCloser with zstd compression.

func NewWriter

func NewWriter(w io.WriteCloser) (*Writer, error)

NewWriter creates a new zstd writer with default compression level.

func NewWriterLevel

func NewWriterLevel(w io.WriteCloser, level CompressionLevel) (*Writer, error)

NewWriterLevel creates a new zstd writer with the specified compression level.

func NewWriterWithOptions

func NewWriterWithOptions(w io.WriteCloser, opts ...zstd.EOption) (*Writer, error)

NewWriterWithOptions creates a new zstd writer with custom options. This allows fine-grained control over compression parameters.

func (*Writer) Close

func (w *Writer) Close() error

Close flushes any remaining data and closes both the zstd encoder and the underlying writer.

func (*Writer) Flush

func (w *Writer) Flush() error

Flush flushes any pending compressed data. Note: Zstd doesn't have a traditional flush like gzip. This method ensures all written data is encoded.

func (*Writer) Write

func (w *Writer) Write(p []byte) (n int, err error)

Write writes compressed data to the underlying writer.

Jump to

Keyboard shortcuts

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