lijian d8d1e9afb9 更新api服务 1 rok pred
..
matchfinder d8d1e9afb9 更新api服务 1 rok pred
LICENSE 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
README.md d8d1e9afb9 更新api服务 1 rok pred
backward_references.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
backward_references_hq.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
bit_cost.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
bit_reader.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
bitwriter.go d8d1e9afb9 更新api服务 1 rok pred
block_splitter.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
block_splitter_command.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
block_splitter_distance.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
block_splitter_literal.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
brotli_bit_stream.go d8d1e9afb9 更新api服务 1 rok pred
cluster.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
cluster_command.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
cluster_distance.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
cluster_literal.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
command.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
compress_fragment.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
compress_fragment_two_pass.go d8d1e9afb9 更新api服务 1 rok pred
constants.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
context.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
decode.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
dictionary.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
dictionary_hash.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
encode.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
encoder.go d8d1e9afb9 更新api服务 1 rok pred
encoder_dict.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
entropy_encode.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
entropy_encode_static.go d8d1e9afb9 更新api服务 1 rok pred
fast_log.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
find_match_length.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
h10.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
h5.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
h6.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
hash.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
hash_composite.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
hash_forgetful_chain.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
hash_longest_match_quickly.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
hash_rolling.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
histogram.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
http.go d8d1e9afb9 更新api服务 1 rok pred
huffman.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
literal_cost.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
memory.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
metablock.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
metablock_command.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
metablock_distance.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
metablock_literal.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
params.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
platform.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
prefix.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
prefix_dec.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
quality.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
reader.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
ringbuffer.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
state.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
static_dict.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
static_dict_lut.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
symbol_list.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
transform.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
utf8_util.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
util.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
write_bits.go 48c2e0e9f9 依赖更新为 go mod 2 rokov pred
writer.go d8d1e9afb9 更新api服务 1 rok pred

README.md

This package is a brotli compressor and decompressor implemented in Go. It was translated from the reference implementation (https://github.com/google/brotli) with the c2go tool at https://github.com/andybalholm/c2go.

I have been working on new compression algorithms (not translated from C) in the matchfinder package. You can use them with the NewWriterV2 function. Currently they give better results than the old implementation (at least for compressing my test file, Newton’s Opticks) on levels 2 to 6.

I am using it in production with https://github.com/andybalholm/redwood.

API documentation is found at https://pkg.go.dev/github.com/andybalholm/brotli?tab=doc.