Pure Go Brotli encoder and decoder
Go to file
Andy Balholm c506503c67 matchfinder: factor out matchEmitter 2023-12-28 17:01:08 -08:00
matchfinder matchfinder: factor out matchEmitter 2023-12-28 17:01:08 -08:00
testdata Add test for issue 22. 2021-07-15 12:01:31 -07:00
LICENSE Add LICENSE. 2019-03-06 17:11:20 -08:00
README.md Add documentation link. 2020-08-04 09:53:43 -07:00
backward_references.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
backward_references_hq.go Use len and cap instead of num_commands_ and cmd_alloc_size_. 2020-05-08 16:48:16 -07:00
bit_cost.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
bit_reader.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
bitwriter.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
block_splitter.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
block_splitter_command.go Use len and cap instead of num_commands_ and cmd_alloc_size_. 2020-05-08 16:48:16 -07:00
block_splitter_distance.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
block_splitter_literal.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
brotli_bit_stream.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
brotli_test.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
cluster.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
cluster_command.go Follow some advice from staticcheck. 2021-08-12 12:37:09 -07:00
cluster_distance.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
cluster_literal.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
command.go Use len and cap instead of num_commands_ and cmd_alloc_size_. 2020-05-08 16:48:16 -07:00
compress_fragment.go Follow some advice from staticcheck. 2021-08-12 12:37:09 -07:00
compress_fragment_two_pass.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
constants.go Un-export some more symbols 2019-03-15 17:24:40 -07:00
context.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
decode.go Reuse ringbuffer in Reader. 2022-05-18 12:06:45 -07:00
dictionary.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
dictionary_hash.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
encode.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
encoder.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
encoder_dict.go Finish un-exporting symbols. 2019-03-15 18:00:20 -07:00
entropy_encode.go Revert "Use sort.Sort to sort Huffman trees." 2020-05-08 13:52:56 -07:00
entropy_encode_static.go Add matchfinder package. 2023-12-28 16:09:32 -08:00
example_test.go Add an example for Writer.Reset. 2022-05-03 10:55:39 -07:00
fast_log.go Optimize log2FloorNonZero with math/bits. 2021-09-22 11:21:01 -07:00
find_match_length.go Read multiple bytes in findMatchLengthWithLimit 2020-05-15 10:43:19 -07:00
go.mod Add matchfinder package. 2023-12-28 16:09:32 -08:00
go.sum Copy negotiateContentEncoding. 2019-08-21 08:13:43 -07:00
h5.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
h6.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
h10.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
hash.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
hash_composite.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
hash_forgetful_chain.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
hash_longest_match_quickly.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
hash_rolling.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
histogram.go Check size of split.lengths instead of a nil check 2020-07-17 09:24:47 -07:00
http.go remove Content-Type requirement 2023-02-25 11:50:08 -05:00
huffman.go Fix warnings from go vet. 2019-03-26 06:05:46 -04:00
literal_cost.go Finish un-exporting symbols. 2019-03-15 18:00:20 -07:00
memory.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
metablock.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
metablock_command.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
metablock_distance.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
metablock_literal.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
params.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
platform.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
prefix.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
prefix_dec.go Finish un-exporting symbols. 2019-03-15 18:00:20 -07:00
quality.go Finish un-exporting symbols. 2019-03-15 18:00:20 -07:00
reader.go Reader.Reset: recover from errors. 2022-09-23 19:39:05 -07:00
ringbuffer.go Reuse buffers and objects using sync.Pool 2020-05-10 10:36:19 +02:00
state.go Reuse ringbuffer in Reader. 2022-05-18 12:06:45 -07:00
static_dict.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
static_dict_lut.go Use const for constants. 2019-03-21 16:15:39 -07:00
symbol_list.go Clean up duplicate and misplaced comments. 2019-03-21 15:34:30 -07:00
transform.go Fix warnings from go vet. 2019-03-26 06:05:46 -04:00
utf8_util.go More staticcheck advice. 2021-08-18 18:04:51 -07:00
util.go Use some Go library functions. 2019-03-08 19:45:16 -08:00
write_bits.go Revert "Faster bit writing." 2021-04-27 10:48:28 -07:00
writer.go Rest set writer.err=nil 2021-08-25 10:29:47 +08:00

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 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.