python/_brotli.cc


Log

Author Commit Date CI Message
Eugene Kliuchnikov c8b37e8f 2019-07-17T14:39:56 Update (#762) * put LICENSE file into .jar * fix typo * add clarification comment in PY wrapper
Justin Ridgewell 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
Eugene Kliuchnikov 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
Eugene Kliuchnikov 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
Eugene Kliuchnikov 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`
Janek 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.
Eugene Kliuchnikov 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)
Alex Nicksay 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
Alex Nicksay 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.
Alex Nicksay f7b5b3dc 2016-09-28T17:26:00 Python: Create native brotli module and move extension to _brotli