lzfse

package module
v0.2.4-0...-e5b63cd Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2020 License: Unlicense Imports: 6 Imported by: 1

README

lzfse

Go GoDoc

An LZFSE decompressor written in Go

package main

import (
	"os"
	"gihub.com/aixiansheng/lzfse"
)

func main() {
	inf, err := os.Open("some.lzfse")
	outf, err := os.Create("some.file")
	d := lzfse.NewReader(fh)
	io.Copy(outf, d)
}

Testing

make -C test/

# all tests
go test -v

# just one test
go test -v -run TestVariousSizes/test/test.small.dec.cmp

Documentation

Overview

Package lzfse implements LZFSE decompression.

Index

Constants

View Source
const (
	LZFSE_ENCODE_L_STATES       = 64
	LZFSE_ENCODE_M_STATES       = 64
	LZFSE_ENCODE_D_STATES       = 256
	LZFSE_ENCODE_LITERAL_STATES = 1024

	LZFSE_MATCHES_PER_BLOCK  = 10000
	LZFSE_LITERALS_PER_BLOCK = 4 * LZFSE_MATCHES_PER_BLOCK

	LZFSE_ENCODE_L_SYMBOLS       = 20
	LZFSE_ENCODE_M_SYMBOLS       = 20
	LZFSE_ENCODE_D_SYMBOLS       = 64
	LZFSE_ENCODE_LITERAL_SYMBOLS = 256

	LZFSE_ENCODE_MAX_L_VALUE = 315
	LZFSE_ENCODE_MAX_M_VALUE = 2359
	LZFSE_ENCODE_MAX_D_VALUE = 262139

	LZFSE_N_FREQ = (LZFSE_ENCODE_L_SYMBOLS +
		LZFSE_ENCODE_M_SYMBOLS +
		LZFSE_ENCODE_D_SYMBOLS +
		LZFSE_ENCODE_LITERAL_SYMBOLS)
)

Variables

This section is empty.

Functions

func NewReader

func NewReader(r combinedReader) *decompressor

NewReader creates a decompressor that implements the io.Reader interface.

Types

type Magic

type Magic uint32

Magic defines LZFSE and LZVN block magic numbers.

const (
	LZFSE_NO_BLOCK_MAGIC             Magic = 0
	LZFSE_ENDOFSTREAM_BLOCK_MAGIC    Magic = 0x24787662
	LZFSE_UNCOMPRESSED_BLOCK_MAGIC   Magic = 0x2d787662
	LZFSE_COMPRESSEDV1_BLOCK_MAGIC   Magic = 0x31787662
	LZFSE_COMPRESSEDV2_BLOCK_MAGIC   Magic = 0x32787662
	LZFSE_COMPRESSEDLZVN_BLOCK_MAGIC Magic = 0x6e787662
	INVALID                                = 0xdeadbeef
)

Jump to

Keyboard shortcuts

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