bcj filter library
Project description
In data compression, BCJ, short for Branch-Call-Jump, refers to a technique that improves the compression of machine code of executable binaries by replacing relative branch addresses with absolute ones. This allows a LZMA compressor to identify duplicate targets and archive higher compression rate.
BCJ is used in 7-zip compression utility as default filter for executable binaries.
pybcj is a python bindings with BCJ implementation by C language. The C codes are derived from p7zip, portable 7-zip implementation. pybcj support Intel/Amd x86/x86_64, Arm/Arm64, ArmThumb, Sparc, PPC, and IA64.
Development status
A development status is considered as Alpha state.
Installation
As usual, you can install pybcj using python standard pip command.
pip install pybcj
Alternatively, one can also use conda:
conda install -c conda-forge pybcj
WARNING
When use it on MSYS2/Mingw64 environment, please set environment variable SETUPTOOLS_USE_DISTUTILS=stdlib to install.
License
- pybcj library is provided under
SPDX-License-Identifier: LGPL-2.1-or-later SPDX-URL: https://spdx.org/licenses/LGPL-2.1-or-later.html
Copyright (C) 2020-2022 Hiroshi Miura
7-Zip Copyright (C) 1999-2010 Igor Pavlov
LZMA SDK Copyright (C) 1999-2010 Igor Pavlov
LGPL-2.1 license is stated at LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pybcj-0.5.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f691ac916ba7604895a6b80db2183c00177144ae79cb1919943c9b2433acf53 |
|
MD5 | 2f4df51c688ba6df55dced30099c0c6e |
|
BLAKE2b-256 | 26244227f7161b23cd309d8400bfb0d377dd11e4656f992095acf32b287472fc |
Hashes for pybcj-0.5.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8888381e88e53ac269b595e1880820381b4e5604181978dd7fe00ccec75fe008 |
|
MD5 | c82230776a479c83e0fd14ba789bb8cf |
|
BLAKE2b-256 | 28ef047dbe2b473d64404512d463aeacb9b6edc4a09d13c45c7b258ff2cc5d55 |
Hashes for pybcj-0.5.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0415d851bac0a8a59b07589870d39174f70e1a1211e7b15b1254593eaf04d93 |
|
MD5 | 6fb5cd6a40d24b335f9bd35b6200b2fb |
|
BLAKE2b-256 | d718d73ef91a6fb11148581ded5c4b5a9ebd30d609c721e1bc129cb333386e02 |
Hashes for pybcj-0.5.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d22906d17c05a6b215c30d6739e3e9039a08e0e47bf4bdfde9638b2a2a38fa04 |
|
MD5 | a5c6585886cbadd1eb3a699a69173f79 |
|
BLAKE2b-256 | 41ff2cb9a0de4f2a4950f2a78ec79218100a0a6648b856f758e1ba2043518756 |
Hashes for pybcj-0.5.3-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a69aa3a7bfb2d8b535e2721917c9be93a4b2985e3735a4209b21a275bd1af15 |
|
MD5 | 0bddbf3c592bf9e4482e9384e4efa6dd |
|
BLAKE2b-256 | cee23fe6e3f7fde63ff69b91c09f6b6c2ff33265a52dcb18b176e1338623736d |
Hashes for pybcj-0.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ef6dfd79092899d28f7309844dbd1de79804567ecd8b6d7d5812c897d32657d |
|
MD5 | 90be3b61a7202b47b02a5c04ca4bd5df |
|
BLAKE2b-256 | a49b3880b1e6da62da7fa7f440bfae9f5f5bde05c9ba65feb2e3393444851097 |
Hashes for pybcj-0.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76e45f50b9606d00ea2e6ce767765956d2415f93eb52165a399e3c85ae60b224 |
|
MD5 | 6c41a5515473a735ae0dc35a08d95c80 |
|
BLAKE2b-256 | 2314c6bce1894eabd5f4a1f5e0bd49e281d1bfe24a1cf0b6c959397ff6ebec6a |
Hashes for pybcj-0.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e1bcfa82fa80198fa70a728e43667f1bf45f4b31e959c01b7f170a4c965d4f0 |
|
MD5 | 729f948c4b10fb6b9a9ac439bc5d5015 |
|
BLAKE2b-256 | b14d7f601332f8be77858f4638dd97b178d8d8d92b1cd97d9593d2739229d95c |
Hashes for pybcj-0.5.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d83a73768cdfaf7f92ef4dbb8510ad82b9dbf70f4ddaa2763ca4deb7a7d53fd6 |
|
MD5 | f1be8704fa1a12ddf204f70b3f33ef87 |
|
BLAKE2b-256 | 6b04cd28135f76d133cf3e35fab9ad56ebb9ef8da9793a121cf4b7cab2206bae |
Hashes for pybcj-0.5.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 376aba216760730938fb418908f389e46fd85212c238f2dd5c7d1ddd6f9f70b6 |
|
MD5 | 9ad562742a97672929c81a4255382d92 |
|
BLAKE2b-256 | c56d668c297b7cec526d7efc6c109669133137b6a39088efa83a302d65085529 |
Hashes for pybcj-0.5.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfccdc3c6072a95ecac21a0ff61d726bbfd54bd78601442590d9595d62d06cd4 |
|
MD5 | 812dbbdc0ab428a67c44136a89f0a717 |
|
BLAKE2b-256 | 46a1feacc78cc2f999ef8ea39336ecc170dc1d125a99b98f2886d71a3ca628e6 |
Hashes for pybcj-0.5.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c20954dfe8392278f52adf9e3913af45bac28ef713d4096d797b2516d66d2e0 |
|
MD5 | cec7f0316eb12a8dcbbde444bb4e9bcd |
|
BLAKE2b-256 | e01baed1a2607eb66fc7b2a1345f788130b9c9036a5b1eb0a34486e34399d90c |
Hashes for pybcj-0.5.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0064f27e4df12cde50543ac2836c6fc319aa713739ed73ecd941d6ed059bf1ca |
|
MD5 | 75e5b1adc17f6ccf4c1123cd077a2735 |
|
BLAKE2b-256 | 1e4b8f655072e022ddf6907f8073eb328f491458c0583f9037d30db81e29fab8 |
Hashes for pybcj-0.5.3-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c54d4daeb6bc3ecc3de8fc3520beb885a1735a62bc93b6f5feb2545e91716f7 |
|
MD5 | a4d6ba8007dc603ce9cebe32ebc81f17 |
|
BLAKE2b-256 | 0fae32d5fbdfb4954fd80a443e8fe4fd6f0f8f115100fd68781daa01d999680e |
Hashes for pybcj-0.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba2bfde2d9c0c8e00b01a657eeeaac5e655ecf8781fc16db5ac6707e8a5e7f6d |
|
MD5 | 6228d4cf2f0937a3c4df371ff618bc8d |
|
BLAKE2b-256 | 29235adc94f692b3b50fc35137afd82212baf63addcffa8fa3b0cb175b2325af |
Hashes for pybcj-0.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cae03af56037571c632d643cfc7183fc7d4cc9b8e92f6832f408c1b8ae47795 |
|
MD5 | d5fd30a71323812ae5e99db30bcf0af3 |
|
BLAKE2b-256 | 89d1b99c11c6041260f621366e9425a888064b4a7d4ecb569f7260ba26e58f97 |
Hashes for pybcj-0.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1902785505cb65ac6b4eeb5b0aa5fc8f00aaf48fe53c9162822cc2dacc2f701 |
|
MD5 | a9b660a5ff486a60c912afdf6495f2e8 |
|
BLAKE2b-256 | 00a34e26b4c296c778e309a2aa15f63b42653f48b120461a02cb23594a32022e |
Hashes for pybcj-0.5.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c850ee822a999f1fb52853914bb6556035ef72f3a2b41f0b612fc89502de190 |
|
MD5 | 6574f15d829b3e8a7eeb64f1872e35cf |
|
BLAKE2b-256 | a3c67eca655383ebb0452dee0b9235c6e654da32e5690964cf0d2d5b8e54db0c |
Hashes for pybcj-0.5.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31463f1b7648c95d5a5533c40a8a674d98cc30a592b3d0232f689c3b1a0fc664 |
|
MD5 | f3b87bdedba6b461096f27e2c257ac7b |
|
BLAKE2b-256 | 51dd3c308565959211aa79c63534f4e07cae2b7c069638c457c7b43fdd22d5bb |
Hashes for pybcj-0.5.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8687345228fcaf4677ea67d0d21e52dfab7a2c34e68f5497187d56e782f4848f |
|
MD5 | 333aa2e1fa528383986a1db2e9204adc |
|
BLAKE2b-256 | 4140beddc271aab65390e85d5a3442df4b36b4624c0223005c04fe07fa787047 |
Hashes for pybcj-0.5.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3b50ae2a58ea7d1743f76e91d8bc6e6198d018d75a99eee7cd5e4b2c0eba269 |
|
MD5 | 43f6fbbc3de8712f79ef0a6897c5090e |
|
BLAKE2b-256 | 9a5fc3ce590fec7f1347685118acc7ce64cbb7fd2eb162d1410320ff21d31709 |
Hashes for pybcj-0.5.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77cacb01c7aada4b0ca6a419663c150825bc97a77c6284bbc515830be324c34e |
|
MD5 | 1076ee67f33568c8b83389e22b8d929f |
|
BLAKE2b-256 | 168d933b026c5c096418db947fac8f9c9292fa6d32b51cdb082b28c1ac0ff358 |
Hashes for pybcj-0.5.3-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a82490a16a350b416bfae2b3cb284ccccb4b6016f32d2df615523510515813f1 |
|
MD5 | 0fc60fc04c21eced997630408d404b5b |
|
BLAKE2b-256 | 36e51fc23dc7cc1c99250faf476b76e30bfa1efecae6de9bc6aee33223fb7ef9 |
Hashes for pybcj-0.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33f4b36ca9eab443eb66e8974c482da1fc7f43243a169c6865b64cc37e5389cb |
|
MD5 | 4b85ec9672246f59ebcddd90cdd736cc |
|
BLAKE2b-256 | 16dc0ec6a86fa549032124b87e5ef972120180dd24ce34aa57470dbf8681fe0d |
Hashes for pybcj-0.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a45d0043575371312b98f7788b28ad7dd8feeb763b723c7fe1081ec154149b6a |
|
MD5 | b2621b6f0e473e340e6cd967a3a8a959 |
|
BLAKE2b-256 | 4823ae9706c2a5028b8e4b5c63a571dfd34dee28e8f20f18c4cfc20fcafa7131 |
Hashes for pybcj-0.5.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19a8a1402c01382388442526a61b5bbfca167111d6292146d3beba34862cb597 |
|
MD5 | 2801d1b56f9944c530f42e11ecca48c4 |
|
BLAKE2b-256 | d7ef1ab00cea5d42bfe22418a833df5938a9930debc5a1583fd01905cb71167f |
Hashes for pybcj-0.5.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4bb5a50f9f2361ce60e1efa8059a2ea016f544db4cdcbeb7a00e5db4409910e |
|
MD5 | 538454693427f191ba2e1c6c2b0735df |
|
BLAKE2b-256 | ac5720d6aa1f4a3a3ed1ae7ee0db87826363681a594590b391f52a6cba6e4a67 |
Hashes for pybcj-0.5.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2284a3fcbf0aa0c7e05765d8578e61a6ff148a3dc2c786494381f4c9b597d716 |
|
MD5 | ed823fd2735b21c5cd32d9d962bc3433 |
|
BLAKE2b-256 | 1640f25901de9bc9316e0d3ba4a8c19d533d49976a4525019fd02021f031ec4f |
Hashes for pybcj-0.5.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92098fe0e47a5dade7e47423241e7d51a4094d9119c5d868f00e8de535a76b09 |
|
MD5 | 96ad356321b21f41da57c02308e7bc52 |
|
BLAKE2b-256 | 34a0c6f9966189e58f5283a805c5bcd0a51b97e6fef5cee7a818ca5a4f1040cb |
Hashes for pybcj-0.5.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28ba109b889f2ac9db36b4b43b8ac24e3b58ff5e70dec6368d739a78a77dbb67 |
|
MD5 | cf0db4b10b5caaee1653dc13e2952794 |
|
BLAKE2b-256 | 33c9047ea0645a80a796156bf81e4d98894f50cb5c6b7d1dce42356997eab147 |
Hashes for pybcj-0.5.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7be3c42599d00e407377d79ad745fc994dbb6d984aee5db650cb2fd62789355 |
|
MD5 | a01b91f2f21299127f8a68c371a698df |
|
BLAKE2b-256 | f8f1c70f68a58f1cdff25d48a79c41a80ce0b3a6086fb191f2807c669f706519 |
Hashes for pybcj-0.5.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f0854fb87ea066fbf41a0e212bb6ef906ac8cf2e8991ca1bf8f757d14859944 |
|
MD5 | abe9b7e38145536961fc8b0c70776ab0 |
|
BLAKE2b-256 | dd1ed26f4028c9bdfdf36aa38df9a97acbd28bedfeeeaa8452893f6de4a54984 |
Hashes for pybcj-0.5.3-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4816641cd3c1c246649daaea079457a65526d961f8458460d9ebb5b7567f2f3 |
|
MD5 | ff04a58e53182ccfee3f54da8aefad43 |
|
BLAKE2b-256 | 21280cdf37d04639d57b457ae2ba53cabe15f6fb2417387483c46e2747918dbc |
Hashes for pybcj-0.5.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e5d4410e81d46de0220fcaec7d47fd5aa2c54de8bb6401783b977dfc69eab3e |
|
MD5 | 608bcb3d3a2672b8a1e23a3a8d7d500e |
|
BLAKE2b-256 | 5d7bf2e576f858958af08cf9267573b1efb20c991a144507024d47bc921d631c |
Hashes for pybcj-0.5.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11290676f0940debe2f05f851c35c72b2fb457a4d578303a4a7b75fe1195cb06 |
|
MD5 | d79e4b9301a69b629548f8aa6018ee75 |
|
BLAKE2b-256 | 24783b74088d585a04b399fc3e4d4880b992240acfeb8f7452172f8308ec98f1 |
Hashes for pybcj-0.5.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 825e4c02383eb320fdfc5780bf81c9ca89cc5612afd8253304d62a4141223c71 |
|
MD5 | b54674803bae1765eb1d4c4fd645c69d |
|
BLAKE2b-256 | bccafdc71d182861a9760d7f68d580457761b47ccfbb5d974129ae0cdc065484 |
Hashes for pybcj-0.5.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c7e6560e55de09918a57820044071b5f85bb3c64a59d449d2742aa1fbe3c173 |
|
MD5 | 9949f7804e54922a244ebbe37bf88659 |
|
BLAKE2b-256 | 1cdf6e7ef29e439a7662370c2ff5c6541ff8d14486d8c4f726a985e5a7755a9a |
Hashes for pybcj-0.5.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0ab15077d9997a6551574ddc4c16e713e9ea24d0bef27278592545339f2ae79 |
|
MD5 | b8929977795091ea557ac7601aac6f28 |
|
BLAKE2b-256 | 9c6739539eca414bc81f758a2f416f267222e7ba541dd8744c23cf0164de9018 |
Hashes for pybcj-0.5.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fda6fc500de3edda6c07ca740c24bfc4aa956154161bc9665e715819d255c153 |
|
MD5 | 3b998ffc8679c8414f9c8f412618c4b5 |
|
BLAKE2b-256 | 7f9120b832b09a201bac743cb8823136c429aaae23c85758680bfe4e6d7492d3 |
Hashes for pybcj-0.5.3-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f436db34f3e870f502b718ef4fe2bda2492f9f124bccef3d5551267687f4270 |
|
MD5 | 40613147b1b9c3a26dce8dcd090a965b |
|
BLAKE2b-256 | f5ecdd3b4bb573a3b9895da8da477588420890c70a296bd384db16fdb8e2fc89 |
Hashes for pybcj-0.5.3-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb92bb70466240739648c4bf8ca088a890902b515081bd9767be5f814cfaf99e |
|
MD5 | 91edfe9c0c61c06023d7902a4fc29afc |
|
BLAKE2b-256 | 10b8c6b476b2527191961ebcafb012acc0c3f5ad20e3d826d122baffaa825242 |
Hashes for pybcj-0.5.3-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e284ba2c0a45117fdead695d30d559422812b559a67cd45398af96506e47530d |
|
MD5 | 04f3ecebc096e5c9b95c0c92b74c7f2b |
|
BLAKE2b-256 | b4e25b2b2882ad26ddc926cedc3ede2c318089b098c50b1b29589efc0ca6bfbc |
Hashes for pybcj-0.5.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ae358ace2df9b6c30c49c28f7e94ec912c33b4da9e906dc47a97b9ba6799b94 |
|
MD5 | ff3233fad428682eeb534ea9e1b48be4 |
|
BLAKE2b-256 | 2890e2c2bc7096c579f1c7b636744d1e2ae919627e192bc1eb698a893292a647 |
Hashes for pybcj-0.5.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d24861d4fc6c3c85c0537ab1181e497b5f1b0790016c8c94fb2cdeb7a9ab9542 |
|
MD5 | 42f8fb0a396bd84e619c816011babc11 |
|
BLAKE2b-256 | 54e6124553e528d5030fdf170c3022b788849ffd57d2aea89c98ca79811d3ea8 |
Hashes for pybcj-0.5.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0955e42434fbeda2fa029d4301c2ccace203e68a7a784191d73d2d5d97f1eb7 |
|
MD5 | d1c9cf56b53d7f4cf500d5ca52491f93 |
|
BLAKE2b-256 | 30881a9894ab0cd279428a90c720b258d1b045b6c20e6433da16946c8df7a5d3 |
Hashes for pybcj-0.5.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1439ac72de5f3f37692f5a67f25c6aa655e4f912d251563ca21405e9357e17e2 |
|
MD5 | de3961d9b56ca3dfe5d7d4a7f3eb1a99 |
|
BLAKE2b-256 | cad6b5c9335eef5e9628f98a0e467cc8ef1789c8c6ecca29a67f2e7d499ddfc5 |