user 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
..
matchfinder 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
LICENSE 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
README.md 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
backward_references.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
backward_references_hq.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
bit_cost.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
bit_reader.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
bitwriter.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
block_splitter.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
block_splitter_command.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
block_splitter_distance.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
block_splitter_literal.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
brotli_bit_stream.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
cluster.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
cluster_command.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
cluster_distance.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
cluster_literal.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
command.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
compress_fragment.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
compress_fragment_two_pass.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
constants.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
context.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
decode.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
dictionary.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
dictionary_hash.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
encode.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
encoder.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
encoder_dict.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
entropy_encode.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
entropy_encode_static.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
fast_log.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
find_match_length.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
h10.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
h5.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
h6.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
hash.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
hash_composite.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
hash_forgetful_chain.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
hash_longest_match_quickly.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
hash_rolling.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
histogram.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
http.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
huffman.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
literal_cost.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
memory.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
metablock.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
metablock_command.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
metablock_distance.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
metablock_literal.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
params.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
platform.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
prefix.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
prefix_dec.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
quality.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
reader.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
ringbuffer.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
state.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
static_dict.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
static_dict_lut.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
symbol_list.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
transform.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
utf8_util.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
util.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
write_bits.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos
writer.go 586b5f4980 d06 Переход на группу проектов %!s(int64=2) %!d(string=hai) anos

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.