|
a8f5813b
|
2022-11-17T13:03:09
|
|
Update
Documentation:
- add note that brotli is a "stream" format, not an archive-like
- regenerate .1 with Pandoc
Build:
- drop legacy "BROTLI_BUILD_PORTABLE" option
- drop "BROTLI_SANITIZED" definition
Code:
- c: comb includes
- c/enc: extract encoder state into separate header
- c/enc: drop designated q10 codepath
- c/enc: dealing better with flushing of empty stream
- fix MSVC compilation
API:
- py: use library version instead of one in version.h
- c: add plugable API to report consumed input / produced output
- c/java: support "lean" prepared dictionaries (without copy of source)
|
|
8376f72e
|
2021-11-10T10:34:39
|
|
Prepare for copybara (#939)
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
|
|
68f1b90a
|
2021-08-18T19:15:07
|
|
Update (#918)
Prepare to use copybara worklow.
|
|
7f740f13
|
2020-05-15T11:06:21
|
|
Update (#807)
- fix formatting
- fix type conversion
- fix no-op arithmetic with null-pointer
- improve performance of hash_longest_match64
- go: detect read after close
- java decoder: support compound dictionary
- remove executable flag on non-scripts
|
|
c8b37e8f
|
2019-07-17T14:39:56
|
|
Update (#762)
* put LICENSE file into .jar
* fix typo
* add clarification comment in PY wrapper
|
|
5805f99a
|
2018-11-12T04:36:00
|
|
Ensure decompression consumes all input (#730)
* Ensure decompression consumes all input
If not, it's a corrupt stream.
* Use byte strings
|
|
2c034825
|
2018-03-23T02:09:00
|
|
Fix "memory leak" in python tests (#652)
OOMs on RPi (1GB)
|
|
a629289e
|
2017-08-28T11:31:29
|
|
Update (#590)
* add transpiled JS decoder
* make PY wrapper accept memview
* fix dictionary generator
* speedup compression of RLEish data
|
|
4f455cac
|
2017-08-23T19:45:13
|
|
disable buidling/deployment of python wheels (#583)
* [appveyor] remove 'deploy' stage; only test python 2.7 and 3.6
all the other python versions are being built and tested on
https://github.com/google/brotli-wheels/blob/d571d63/appveyor.yml
* remove terrify submodule as not needed any more
* [travis] just test py2.7 and 3.6 on linux; remove extra osx python builds
All the other python versions for OSX are being built/tested on:
https://github.com/google/brotli-wheels/blob/d571d63/.travis.yml
Also, there's no need to build and deploy wheels here, as that's done
in the separate repository.
* [setup.py] only rebuild if dependency are newer; fix typo in list of 'depends'
https://github.com/python/cpython/blob/v3.6.2/Lib/distutils/command/build_ext.py#L485-L500
* [ci] only run 'python setup.py test'
if we run 'python setup.py built test', the setuptools 'test' command will
forcibly re-run the build_ext subcommand because it wants to pass the --inplace
option (it ignores whether it's up to date, just re-runs it all the time).
with this we go from running built_ext twice, to running it only once per build
* [Makefile] run 'build_ext --inplace' instead of 'develop' as default target
The 'develop' command is like 'install' in the sense that it
modifies the user's python environment.
The default make target should be less intrusive, i.e. just building
the extension module in-place without modify anything in the user's
environment.
We don't need to tell make about the dependency between 'test' and
'build' target as that is baked in the `python setup.py test` command.
* [Makefile] add 'develop' target; remove unnecessary 'tests' target
`make test` is good enough
* [Makefile] `setup.py test` requires setuptools; run `python -m unittest`
This will work even if setuptools is not installed, which is unlikely
nowadays but still our `setup.py` works with plain distutils, so
we may well have our tests work without setuptools.
* [python/README.md] add ref to 'develop' target; remove 'tests', just 'make test'
* [setup.py] import modules as per nicksay's comment
https://github.com/google/brotli/pull/583#discussion_r131981049
* [Makefile] add 'develop' to .PHONY targets
remove 'tests' from .PHONY
* [appveyor] remove unused setup scripts
We don't need to install custom python versions, we are
using the pre-installed ones on Appveyor.
* [appveyor] remove unneeded setup code
|
|
019091f9
|
2017-08-08T04:25:39
|
|
Python: Update bro_test to reference script directly (#582)
|
|
d63e8f75
|
2017-08-04T10:02:56
|
|
Update API, and more (#581)
Update API, and more:
* remove "custom dictionary" support
* c/encoder: fix #580: big-endian build
* Java: reduce jar size
* Java: speedup decoding
* Java: add 32-bit CPU support
* Java: make source code JS transpiler-ready
|
|
06082531
|
2017-08-02T10:59:46
|
|
Python: Add a "make install" command and clarify installation docs (#578)
Closes #576
|
|
52441069
|
2017-07-21T10:07:24
|
|
Update (#574)
* Update
* decoder: better behavior after failure
* encoder: replace "len_x_code" with delta
* research: add experimental dictionary generator
* python: test combing
|
|
1becbbf2
|
2017-06-30T13:09:50
|
|
Update (#569)
* add misssing fclose in `brotli.c`
* add basic tests for python `Decompressor` type
* minor lint fixes in `_brotli.cc`
|
|
58f5c37f
|
2017-06-28T16:32:28
|
|
Python: Decompressor: Streaming decompression support (#546)
python-brotli has Compressor for streaming compression but nothing for
streaming decompression.
This is a straight-forward copy of the Compressor code into the new
class Decompressor.
|
|
6ab0a5ce
|
2016-12-21T04:17:11
|
|
Python: Create Makefile for development shortcuts (#488)
|
|
fd96151b
|
2016-12-20T18:00:51
|
|
Move brotlidump.py to research/ (#487)
|
|
f62cd2bc
|
2016-12-20T14:41:47
|
|
brotlidump.py: disassemble brotli file (revisited) (#314)
* Create brotlidump.py
Sorry, I am a newbie. I couldn't find my file anymore when I wanted to edit it. Hope I don't waste your time.
* Fixed a bug where it couldn't read its own compression.
The problem was that a prefix code ending with a 16 "repeat" didn't realize the table was full already.
Also minor bug fixes, comments and stuff.
* Major refactoring
Rewrote almost everything.
Now can dump its own compression.
* Now more or less complete
Appears to handle all files completely (including metablock data).
Used as inspiration for the the hex example (see makehexexample.py)
|
|
89a5b6e6
|
2016-12-20T08:40:47
|
|
Python: Simplify test suite generation by using unittest discovery (#485)
|
|
6f227228
|
2016-12-12T04:28:44
|
|
Python: Use a temporary directory for generated files in tests (#481)
|
|
4651f7c0
|
2016-12-12T04:28:15
|
|
Python: Format bro.py with yapf (#480)
|
|
0ee41613
|
2016-12-12T10:27:13
|
|
Update python brotli wrapper (#479)
* Update python brotli wrapper
* release GIL on CPU intensive blocks, fixes #476
* use BrotliDecoderTakeOutput (less memory, less memcpy)
* Python: Convert bro.py tests to unittest style (#478)
* Create unittest-style tests for `bro.py` decompression and compression
* Delete old tests for `bro.py`
* Update test method generation to properly create a Cartesian product
of iterables using `itertools.product`
* Update python brotli wrapper
* release GIL on CPU intensive blocks, fixes #476
* use BrotliDecoderTakeOutput (less memory, less memcpy)
|
|
4a60128c
|
2016-12-09T07:44:05
|
|
Python: Convert bro.py tests to unittest style (#478)
* Create unittest-style tests for `bro.py` decompression and compression
* Delete old tests for `bro.py`
* Update test method generation to properly create a Cartesian product
of iterables using `itertools.product`
|
|
1e5ea6ae
|
2016-11-09T06:21:13
|
|
Python: Add unit tests for brotli.compress and brotli.decompress (#467)
Also
- rename `test_utils` to `_test_utils`
- refactor shared code into `_test_utils`
|
|
a260b6ba
|
2016-10-31T08:24:01
|
|
Python: Add tests for streamed compression (#458)
Progress on #191
|
|
92037654
|
2016-10-31T07:58:45
|
|
Python: Use "build" instead of "build_ext" in scripts (#460)
Previously, the Python package consisted of a single extension
module, so `build_ext` was sufficient. Now, the package
contains a native module and an extension module, so both
`build_py` and `build_ext` are required. Instead, run `build`,
which calls both `build_py` and `build_ext` automatically.
|
|
afb12727
|
2016-10-25T04:19:29
|
|
Python: Publicly expose the Compressor object in the Python API (#456)
Progress on #191
|
|
5632315d
|
2016-10-24T07:28:56
|
|
Python: Support streamed compression with the Compressor object (#448)
This adds `flush` and `finish` methods to the `Compressor`
object in the extension module, renames the `compress` method to
`process`, and updates that method to only process data. Now,
one or more `process` calls followed by a `finish` call will be
equivalent to a module-level `compress` call.
Note: To maximize the compression efficiency (and match
underlying Brotli behavior, the `Compressor` object `process`
method does not guarantee all input is immediately written to
output. To ensure immediate output, call `flush` to manually
flush the compression buffer. Extraneous flushing can increase
the size, but may be required when processing streaming data.
Progress on #191
|
|
2d441179
|
2016-10-18T10:31:05
|
|
Merge pull request #446 from nicksay/py-3-compressor-object
Python: Create an extension Compressor object
|
|
b04f4ea1
|
2016-10-17T13:00:14
|
|
Python: Update README with information about code formatting
Also, add a `yapf` section to `setup.cfg` to ensure YAPF runs
format code with the Google style.
|
|
595a5246
|
2016-09-29T15:14:16
|
|
Python: Create an extension Compressor object
- Create a `Compressor` object in the extension module
- Move the `compress` method into the native module and use
the new `Compressor` object to do the compression
Note: This does not change the module-level Python API. The
`Compressor` object will not be publicly exposed until its
methods have stabilized.
|
|
f7b5b3dc
|
2016-09-28T17:26:00
|
|
Python: Create native brotli module and move extension to _brotli
|
|
86fdb683
|
2016-09-21T16:02:32
|
|
Update brotlimodule.cc
|
|
7cbdb4aa
|
2016-09-21T15:51:54
|
|
Update brotlimodule.cc
|
|
b754f607
|
2016-09-21T15:37:45
|
|
Update python module
* use new decoder API
|
|
81480011
|
2016-08-23T14:40:33
|
|
Move "public" to "include/brotli"
|
|
2c2d5578
|
2016-08-22T15:44:12
|
|
Use version from common/version.h
|
|
dae9c7ff
|
2016-08-22T14:00:42
|
|
Fix brotlimodule
|
|
27f9d00e
|
2016-06-23T11:02:53
|
|
Fix issue #383
|
|
81054a46
|
2016-06-17T20:24:24
|
|
Restore platform suffix
|
|
f0c7ece3
|
2016-06-16T17:45:05
|
|
Remove platform suffix
|
|
bac060f1
|
2016-06-16T17:25:26
|
|
Fix library path
|
|
8872d7b4
|
2016-06-13T15:22:13
|
|
Fix CI build.
|
|
3ccbf05d
|
2016-06-13T11:01:04
|
|
Convert encoder to plain C.
|
|
55bd78fb
|
2016-06-03T12:31:02
|
|
Fix test file path
|
|
ab53fc31
|
2016-06-03T12:30:45
|
|
Fix test file path
|
|
db3a1162
|
2016-06-13T15:22:13
|
|
Fix CI build.
|
|
b972c677
|
2016-06-13T11:01:04
|
|
Convert encoder to plain C.
|
|
b73ebe32
|
2016-06-03T12:31:02
|
|
Fix test file path
|
|
66606e7d
|
2016-06-03T12:30:45
|
|
Fix test file path
|
|
bb6f5fea
|
2016-06-03T11:12:12
|
|
Merge pull request #336 from anthrotype/upload-sdist
appveyor: also upload source distribution packages to Github Releases
|
|
75c6c1ab
|
2016-04-19T16:43:42
|
|
Fix brotlimodule
|
|
f66c7c54
|
2016-04-10T20:51:10
|
|
python/tests: clean up generated files if successful
|
|
7e5bbd5f
|
2016-02-24T16:54:54
|
|
Merge pull request #321 from eustas/master
Add custom dictionary feature binding
|
|
7d25e6b6
|
2016-02-24T16:01:35
|
|
Truncate dictionary to window size.
|
|
cbb0d4cd
|
2016-02-23T17:45:42
|
|
Remove streaming test.
|
|
30612e3a
|
2016-02-23T17:42:55
|
|
Add binding for custom_dictionary.
|
|
14276922
|
2016-02-23T16:10:53
|
|
Fix typo
|
|
7111c339
|
2016-02-23T16:06:31
|
|
Create README.md
|
|
291d21cc
|
2016-02-19T16:54:15
|
|
Fix choices for --lgwin and --mode in python/bro.py.
|
|
c5c80a9f
|
2016-01-25T15:13:17
|
|
Addressed comment
|
|
8e8b8de0
|
2016-01-25T12:33:38
|
|
Update brotlimodule.cc
|
|
1b938dc7
|
2016-01-25T12:16:36
|
|
Update brotlimodule.cc
|
|
c49918e1
|
2016-01-25T12:07:39
|
|
Update brotlimodule.cc
|
|
ca0ae4cb
|
2016-01-25T11:40:20
|
|
Update brotlimodule.cc
|
|
a4f40c1b
|
2016-01-25T11:39:05
|
|
Fix brotlimodule compilation warnings
|
|
fec00d24
|
2016-01-23T00:31:47
|
|
Make input const
|
|
a22993b3
|
2016-01-22T14:09:25
|
|
Fix pointer dereferencing.
|
|
1f910642
|
2016-01-22T14:01:46
|
|
Remove deprecated API call
|
|
912b0ac2
|
2015-12-08T12:49:04
|
|
brotlimodule.cc: fix error with clang ('expected a class or namespace')
|
|
8195a5c9
|
2015-10-06T19:49:11
|
|
[brotlimodule.cc] set 'lgwin' valid range to [10..24]
|
|
82ffc4df
|
2015-10-05T18:57:32
|
|
[bro.py] set 'lgwin' valid range to [10..24]
|
|
3e67d487
|
2015-10-05T11:09:11
|
|
[brotlimodule.cc] remove C++11 vector::data() call
|
|
b5c92e54
|
2015-10-02T11:32:42
|
|
Add tools/version.h that conatins the brotli version.
This can be reused by all of the tools.
Set the version to the next git release tag.
|
|
8c7edd3e
|
2015-08-11T10:39:14
|
|
[bro.py] print --version as brotli.__version__
|
|
ac33d356
|
2015-08-11T10:42:22
|
|
[brotlimodule.cc] add __version__ string attribute to brotli module
|
|
f1417290
|
2015-08-10T18:44:06
|
|
[brotlimodule.cc] fix RuntimeError on OS X: keyword list must be NULL terminated
Sorry, my fault...
|
|
08212db7
|
2015-08-10T14:39:44
|
|
[brotlimodule.cc] fix C++11 warning about conversion from string literal to 'char *'
|
|
d3dfc689
|
2015-08-10T14:38:17
|
|
[brotlimodule.cc] no longer expose deprecated BrotliParams: enable_dictionary, enable_transforms, greedy_block_split, enable_context_modeling
|
|
e356b9bc
|
2015-05-11T14:12:37
|
|
[roundtrip_test.py] repeat test at different quality (1, 6, 9, 11)
|
|
c93c0dab
|
2015-05-11T11:10:48
|
|
[bro.py] use brotli.MODE_GENERIC as default compression mode;
remove additional low-level parameters
|
|
aa6f7d8f
|
2015-05-11T11:09:36
|
|
[brotlimodule] add MODE_GENERIC constant
|
|
b7e82917
|
2015-05-08T15:49:15
|
|
[bro.py] remove debug print
|
|
4106a406
|
2015-05-08T15:46:56
|
|
[bro.py] use new optional encoder parameters when compressing;
modified the help string to include the new parameters.
|
|
32c44ec8
|
2015-05-08T14:17:20
|
|
[bro.py] use argparse instead of getopt
|
|
3351bb08
|
2015-05-08T13:02:05
|
|
[brotlimodule] apply uniform docstring style
|
|
6d935db7
|
2015-05-08T12:38:22
|
|
[brotlimodule] add quality, lgwin and lgblock parameters
|
|
dbcb3261
|
2015-05-08T12:07:10
|
|
[brotlimodule] add enable_context_modeling parameter (defaults to True)
|
|
4c1d0693
|
2015-05-08T12:02:08
|
|
[brotlimodule] add new keyword params docstring of brotli.compress
|
|
6264bea2
|
2015-05-08T11:47:00
|
|
[brotlimodule] add greedy_block_split parameter (defaults to False);
renamed variables: transform -> enable_transforms, dictionary -> enable_dictionary
|
|
b2eba122
|
2015-05-08T11:34:20
|
|
[brotlimodule] add enable_dictionary parameter (defautls to True)
|
|
89c74d68
|
2015-05-08T11:23:08
|
|
[brotlimodule] use keyword arguments for mode and enable_transforms;
update brotli.compress docstring accordingly
|
|
e6913b2e
|
2015-05-08T10:06:18
|
|
[python] use built-in split instead of 'string' module for py23
In python3, the 'string' module no longer has a 'split' function.
|
|
10a2f374
|
2015-05-07T20:43:01
|
|
Handle multiple compressed files per original in the test.
Add some more test cases that decompress to the empty
file or a one byte long file. These test cases have
examples for the updated stream header and meta-block
header formats.
|
|
cdde52ef
|
2015-04-22T17:54:56
|
|
[python] refactored tests and import shared utilities from module
|
|
906f4f52
|
2015-04-22T16:49:00
|
|
[python] prepend build/lib folder to PYTHONPATH before running tests
|
|
b316cb74
|
2015-04-16T12:41:40
|
|
[python] fix unbuffered binary mode for I/O streams in Windows pypy
|
|
77c23995
|
2015-03-31T09:30:56
|
|
[python] moved setup.py to the root of repository
|
|
4865fd1d
|
2015-03-30T10:20:50
|
|
[python] add test command to setup.py
|
|
fa7dd52d
|
2015-03-27T18:56:18
|
|
Fixing building Python module after 534654d
|