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.6.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e752d9651f48a2580a5e20f2d528508766148556665b11d77794cdf6527bd3ec |
|
MD5 | 0559351289e65122ebc50167bca29f75 |
|
BLAKE2b-256 | ab9854cdab05b70f95e9ddc03fb429ec4760943086e42a620b64a7df3de5a86a |
Hashes for pybcj-0.6.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f9b5ca0bed57af76eab1b868c521ee2424a32569568ac612da66fc3231ae80c |
|
MD5 | dc6d1204e15175a36fe96a42b3d5c8d8 |
|
BLAKE2b-256 | 3eead94ad24fbce61ea16c4bc6534f67d753341afac4acbd6a3f252f8ba5f330 |
Hashes for pybcj-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f279313f4af4a2d15f4400d6a4c3ec34bd5cc9e598a66276f44771b154522660 |
|
MD5 | 533ae36abccf26b95533631cb063cfcd |
|
BLAKE2b-256 | 53daaddbb8487baac9912d3566502e50307b334ccd25e113c0ac8f2d2a716673 |
Hashes for pybcj-0.6.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32f70db65de58a2508979a0354aa31f2968c2845cb7267ae34d93b895b6bf672 |
|
MD5 | 00b38eec469b5b434c51c3b38b7ea8b0 |
|
BLAKE2b-256 | f246a5d1b2d6ac5a3d1b06e3f02363e1fa064b00f83148c6fb0a96da28da124f |
Hashes for pybcj-0.6.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ec52bbacfab8892f2631765d110c3a13ec770a4fd326b9a68b1412a9d1cc8a5 |
|
MD5 | 0d4f4bd9e751a2b1f49802d4b7ee3c7a |
|
BLAKE2b-256 | 970abf4d74f42a2b67bb6f0834b5eb9b5a3bbf024d9a2b3a5854710ed1b8882f |
Hashes for pybcj-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 330ef236e7610a383ec0629b98340ce395f8b44d910f40ab41ec48c748183975 |
|
MD5 | c773bb08a1ce82a68c8889a001474e61 |
|
BLAKE2b-256 | 72a6141f99e33304ef986d05c529f208b869044aff72658e2daa24e4a8d6e7bf |
Hashes for pybcj-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6c10bb940fd38ee3b05273ee460ccceb87bab189cb6c490ff5d8b6dc29e36c6 |
|
MD5 | d9e68d7d8fc3e0e29f3321a0c27dcc13 |
|
BLAKE2b-256 | 9edc358c55c118b6f8e82887c9edba0f4a2c59d508d840de91d6f4cebfab3c8d |
Hashes for pybcj-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08baeeae6cffc51723eb196e0c734be67f1283c2f76bd15c075c3a88efa203ff |
|
MD5 | 087ee5e4dedb7d93f7246832f2e6b131 |
|
BLAKE2b-256 | 8e3974d64e942c5fcc2ceda75dc53a5e3e65b84a99b5190e775b155c90207ce5 |
Hashes for pybcj-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16fa96145d1384cc713deb371680af564bf73cdff326bf6f7df19be3e53d269a |
|
MD5 | 78824c3152966283a473fa807fd8c7a5 |
|
BLAKE2b-256 | eba0b9d57e795495bf5be7a808041be509eeb6ea7248c8ef444d4993fb84763a |
Hashes for pybcj-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1289fb7e6b9a9135a49319655f39a79f055df1cdf0d380e224e344db39933ebf |
|
MD5 | 92165211997cc9b09ab76c916b116148 |
|
BLAKE2b-256 | 610d1aec8b809d51618c5d96751f865122905bb57f9a77e05a2eee187378e976 |
Hashes for pybcj-0.6.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1d7901c8c26587fb2a40b8ab4f0abcdf7b5d3027f8ce6fd067d3f29026e3a04 |
|
MD5 | 3c83e25ff28c7e90f9871e9c48d84fd5 |
|
BLAKE2b-256 | 972f31d13bea546897a9e5df36b3f960932293be0de5c176ef8975e4a3ff072e |
Hashes for pybcj-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 969ed5a7f573477608fbf9e48cca2061610e460d88294db37a3029768c1dae5e |
|
MD5 | bac3763d96ac4e9c023b5ce70d1e692c |
|
BLAKE2b-256 | c84929cb9d02566b216ab2adf54a8f1d7c2cb5588f8309c91fdbe33ff68f6133 |
Hashes for pybcj-0.6.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82041867e20fecf4229467bef8be9bb8f6e5d8e124fe890a05b6429b401a84f6 |
|
MD5 | 432e2b7453e805a61510fc2d2a48bdc1 |
|
BLAKE2b-256 | 723fa92bfa7ab61ccd694ef3c3e415ea8de974c04d171241d1b686615649d7a2 |
Hashes for pybcj-0.6.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b06dd0ec4595c3e5baf65b5e63fb5e4779e25b40cb59ff1306331c50cf8955eb |
|
MD5 | 8b71ad28bc8b1b5cf88e55ff2092add6 |
|
BLAKE2b-256 | 39233fcf979dcf2e2a9432bc40f80aa331bccd33d18ec031b7f14945c5a225dc |
Hashes for pybcj-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 505fd12173bb4ebd2053731c4159dadeaa7779bda9206087d3207d28d57a7601 |
|
MD5 | 585ff71c2d97ffb2fab914e8b195623c |
|
BLAKE2b-256 | f91d40be80f2b057ef2ce7856d83da31704467c122422634bb023c22968c1882 |
Hashes for pybcj-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c9a30dbcc5a76ad8d3ba1c99a7048d89c4706bdfdd6608ae385f73c4b8dd9df |
|
MD5 | 1d907f8b5489262db01b0157a820a9e5 |
|
BLAKE2b-256 | 01a8f917d544d67a56b2d83810ac185b02fb6e86f685710799cd3be11b24d842 |
Hashes for pybcj-0.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f63a770aa60b851600f04ca9f2c118b1895372426388ef000c7f0013756ea271 |
|
MD5 | 68807c8f3d38ed40b024be377d662c93 |
|
BLAKE2b-256 | 040eed6aa5f5e7bd68d90415889214b94f3647958936f9013088ab3f57eb193d |
Hashes for pybcj-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94d3b6ff44d0a49ae8f5f999baceff47a5ee4222370372ccc5dec6540bc72890 |
|
MD5 | 93e15c95388887aa76f09399571a111b |
|
BLAKE2b-256 | 1c365172f6bb9cf0bf4047147a20c769f066b4a02d761db82d41c34dc287c8e9 |
Hashes for pybcj-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b660367cca1e5c8823c581b374722b06c8e0baf521542e699834484b2df68d05 |
|
MD5 | 2d7b1c0c6f771b23cdb205cba64cd49e |
|
BLAKE2b-256 | 6dcf41d84b6d5ddb9eb71ae7279b2c5cc99387c6e1e1879a742b923b00981967 |
Hashes for pybcj-0.6.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b96b1464fa8542a3f914c17b25ec5ca2559db99ce91c217108652b07bb967551 |
|
MD5 | 8843a45b017f42ff11831a75bb9ff531 |
|
BLAKE2b-256 | b5e3feeb5c0ea8a4fb97304e7a8b5c86702e65df8707529dd0461782cee9f936 |
Hashes for pybcj-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e0a08878552b315efae7ced0237bfc59a4c22444bacc11be3ce26bda3dbbe9d |
|
MD5 | 8d223e407778e2d07488ba6043bb2838 |
|
BLAKE2b-256 | 86ebf7e4100cae0728e479ca273c4795ccbd80637ab94c0ad743928f80753e85 |
Hashes for pybcj-0.6.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fb312cccd5172a53eb6322cdb29912b380df9a41aff2a0fe1e526402f3f011f |
|
MD5 | dc02844067e1526690b9fffeeec9f392 |
|
BLAKE2b-256 | 5236b5ce4d9a3ebb155fe45749531e3607d49e5676f5709f3a598360a9e8c8e8 |
Hashes for pybcj-0.6.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4d9381efbf32185571feb3b25098df9215575feae32177747072051ae75f8e7 |
|
MD5 | 65faffa29d226e85ac3cbf310853d14e |
|
BLAKE2b-256 | 6dd9f087044b42c78e8dadcbe38db1567a6ca6dcbb6e824aec1c1bf5f242ee20 |
Hashes for pybcj-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33ef295d67c50330cad3156f5a6c1c34337b62f985516b5991dc163fffa98e57 |
|
MD5 | 64cf2080e471c3c7b470649cc60e0636 |
|
BLAKE2b-256 | a5461d0984e24d8e0e91f3dc63c617116951536d97d0151100d3d563446b1847 |
Hashes for pybcj-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8df2d704f08b542640bb03a2f3e228eb731f6b58c7d95bc773ceb3e41316a60 |
|
MD5 | 38a0627d31d06ed95d99d3d34e1761f0 |
|
BLAKE2b-256 | 8ae8673f961d8221e96362065778d3a467b89d814411e5119b65dfbd99c50ba8 |
Hashes for pybcj-0.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3785409bfb2b478833bc89ee31794768bc19c092d574e68ae6f5dd1d8d1f39c6 |
|
MD5 | 560e834dc4d3dbb52936323549efcada |
|
BLAKE2b-256 | 20b4f2be02240a887dab853656472737c95009d06ca88fe6e8bd16921f1a95fc |
Hashes for pybcj-0.6.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4dd1543bb623e5080a486d239e867950701fb5d6d39d076b544b9e4a15d4e28 |
|
MD5 | 64c41202f3d733c47c71cf99ddc1b7c3 |
|
BLAKE2b-256 | 773bb26f00b9120532a0a88326d4f1ca2553373ffc36da9e2aafdfab3d5f7684 |
Hashes for pybcj-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59c0c169f78da6ee38d5f14525f3647bff27cf9b01587e134036bfc8bdd54d4a |
|
MD5 | 53124511ba7085d37df20c0745e8aea2 |
|
BLAKE2b-256 | bfadf4154fcd2d038c254c0f69ce018b5b420f240259bcc5124d1dc473a20973 |
Hashes for pybcj-0.6.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dbc48cde7332ed2a6a6b6cf71166b1a37722b11deb0df0901e0d2ad2f365a9f |
|
MD5 | 8edfd9b3e3cf120e1d7ebe8786e371ae |
|
BLAKE2b-256 | 27fe586e39b2bcab548c726e62dd6f6da96eea52147e5062db3086162335a6f2 |
Hashes for pybcj-0.6.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca8afa7a3ac962e1c50248c029a3283f5ceea7e9bfb1ba30f2115420791ac1ea |
|
MD5 | 5d2f19a7b45323c2db400330832e2518 |
|
BLAKE2b-256 | 92c6ba3d1f9b9127ee5bd685185e173fc95e02848bdeff12f1f2c8b5ae5684ef |
Hashes for pybcj-0.6.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34201a90d1e664b3766645c1dec99f55a45ebd6ad6b293bccb58c2039bcf0d49 |
|
MD5 | 174be46f6cc122015a9d57617b2f917f |
|
BLAKE2b-256 | fc3a0576fa2b90dfd967523115e25c2db59bae1cca0c31de993ad42b4f31d8a3 |
Hashes for pybcj-0.6.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08d94fc67d1015656b38b2eefe1ec790055419333b2b22520fa057221b80a474 |
|
MD5 | 70e599341bda2a46ef4a7f5d0fb21341 |
|
BLAKE2b-256 | 72b29f3e2107c730981650064537e57786e12cf3660378f19651710aac64ce10 |
Hashes for pybcj-0.6.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0195a5c53dff47cfef7e481768e50bc0179f3669e8828d55b2cfec940877c32e |
|
MD5 | 656142a2901c534c8ff720e3dbc8281f |
|
BLAKE2b-256 | 171ab7efae88bcb4e36c396bec9aa5c594a72c8672b947037b3d7590e6e36bad |
Hashes for pybcj-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd43e68b2a6226af64a002334d13dbfe87e3d634e32aeac43eb74a6c32076e45 |
|
MD5 | e8408b5e229afbbbec692e0314c529a5 |
|
BLAKE2b-256 | 71e177e218f54152177005828a7e2352eec75de07d0334e95084555167a6c795 |
Hashes for pybcj-0.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22f31a178400fed5a1c865f55b9af1e462440cfe6255a0a79a19290ddb8ceaba |
|
MD5 | 3b7e907725a706731e0552e993ee403d |
|
BLAKE2b-256 | 3c2ef3787086bb77cf91dae55f6b23168775c38e7c9abc68c23b4264b1d339df |
Hashes for pybcj-0.6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b958cb84c044859b4633c12f0a45a384a8c9bd573a7bb4b506fe2d5b017e1e9 |
|
MD5 | dd5403a1b6bacd0686ea450d05bb8dfe |
|
BLAKE2b-256 | 6617fe03880e378127e0c98fba0e6c09a18c8c23730a08530f6868f080e1b11a |
Hashes for pybcj-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9702c89476a5cc46aad35f1ae0918321feb58e27660eee3e767e569839a98a2 |
|
MD5 | 70cbaa2793b1dce26fb86fe4752b3a91 |
|
BLAKE2b-256 | 95044bb1d0f1b3e91feb7806f99ed4a9b5f4c284c0eec8c66458399435999435 |
Hashes for pybcj-0.6.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 229f12c0408e84f87c928f87bf303f0ced411ed19cddda49adacde5e5787b7b1 |
|
MD5 | 1382d94d3f7b09af15db655fd658b7fa |
|
BLAKE2b-256 | 732616b9df885ce7010effa9f5b424d93e28606d024799406c7a9e2adea4b106 |
Hashes for pybcj-0.6.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94a23bf5647d9cd84697a83aceefdf495a872be559b6719b6c0807bab0a85451 |
|
MD5 | a466494f7a513702779947c5f8d5d1af |
|
BLAKE2b-256 | 255b68dc6190d818827c18bd39d5861dc632fb8bd6b1cdd4f15066590a64d348 |
Hashes for pybcj-0.6.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 397c72a8080b6d981795dfd4b66ae93ac042194bbea3cb53eb6abf968d79bdbb |
|
MD5 | 1c3339177b0337e90e90922fbbcb0c96 |
|
BLAKE2b-256 | a945832d7069b3153cb57aac38f5ebae08714a6332fc97bc5118f4cc81f692be |
Hashes for pybcj-0.6.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfe37868c21ea37543ab6f7f643b36945eb506b189a82a111b6dcc31519e911a |
|
MD5 | 8f8d3b371dccaf82236c7f02dae067e5 |
|
BLAKE2b-256 | 7c3a0a46cb15b218601a821e0effc10114f37eada8a5b3d2d6596165a8b8f216 |
Hashes for pybcj-0.6.0-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb9a9dfce998948ee68541ce8f691fd62c8f1b0a3711c60aada81bc32fefc74b |
|
MD5 | 6953a3b8ecfce83ddf348b3a18c55a37 |
|
BLAKE2b-256 | a2a9208b5fd7b96c6b555e229b95317c755fd6f1376ab16422e567b82855d1dc |
Hashes for pybcj-0.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0f4f3ecb9dd673414d630c6c6aa9878c70c41e331e037df0d98d518ec195916 |
|
MD5 | a867f2c7e1c854a5c1d18f916c5f6394 |
|
BLAKE2b-256 | cafadb908693e448f61e9a31dca1bf1d3c0906b604ea7e3ed72cbe79d684de65 |
Hashes for pybcj-0.6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e23c6eb55c8664077ecc431e57b65a658a27c0b55c2e40cb125bb6ccf91e717 |
|
MD5 | 3f68f3319730fd306dfbd111dce7f166 |
|
BLAKE2b-256 | 697163b563e9d72c61b6e1603c0af16a6cca915a08dcd4bede85818feaf63053 |
Hashes for pybcj-0.6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48c0709a5df0195d1fe1d04f125efe9cf1721c25aca272d9b98633691a009133 |
|
MD5 | 8bc4408e27761d5d99b1202c2f0789a3 |
|
BLAKE2b-256 | 80eb6ea821277d02cafc30f226c4d5c400af13f7f54353b0bac0db4d7a1614e0 |
Hashes for pybcj-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd7d4ecc3048ba9b6a3fe401ddc8d6ff8c500b2207c186f9d6bea2851674427c |
|
MD5 | bcb7a5a235364a72ed4102e9e9502d96 |
|
BLAKE2b-256 | a016aed25c4c8f4d2251fa9e304bd713a013517e760fd58e15a8946c849afb93 |