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
License
Copyright (C) 2020,2021 Hiroshi Miura
7-Zip Copyright (C) 1999-2010 Igor Pavlov
LZMA SDK Copyright (C) 1999-2010 Igor Pavlov
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
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.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c93bfa93105a2b871d599a4a9443237d5c0a46905af5d140118f39810f1b5a9d |
|
MD5 | 0c829e0c46ffc349219a125cd587585a |
|
BLAKE2b-256 | 1992ff79a31aa4446a8ac5b0281a0d2067ab69f58fa5d33b5a2c392fe544c66f |
Hashes for pybcj-0.5.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59380fa89c80b08487b2bfe4a9f7ada8b4579b3fbd4167bcd53b7e4c94bf6b51 |
|
MD5 | 689952e8e631486cff1d8b989c0b3313 |
|
BLAKE2b-256 | bbfcae01aafdbbfbb1c7913851e11580458ef7d232ba7c3b1ac2bba85252ba98 |
Hashes for pybcj-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac0a834e371967a8542a0af940162b1c99a56f10c91030ce2db42eaa5304539b |
|
MD5 | 5b1f3a173e1ef0538f68001dd0bf5b98 |
|
BLAKE2b-256 | 4582a0f0e416760b17addee8ea7f29e5b3823564df18dfb91b1582df62e644d0 |
Hashes for pybcj-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b350ffdab4bd260571e19f083e02326ad22b7fe60eaed1b062fd28b8f95046e3 |
|
MD5 | 5617581d726b2123b7cff71b0c1c60eb |
|
BLAKE2b-256 | 331bd242bdad4527240f85a66fddb3def6f97f04ca5dfdd912f931bf9a951126 |
Hashes for pybcj-0.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db30601a7aafd673a2b797e77c2cf2becf59ea8adb89adf1e661576f30cbe040 |
|
MD5 | 01251313d729d40d0a6e78355838747c |
|
BLAKE2b-256 | 6bb72b5009cb0faf179dd1d27f364f771d314bfc58b7c8b1c36fd51ad3a06bf0 |
Hashes for pybcj-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82422d7c367d4de8eb1562ca94cd1236ad82ecf1bea3ff6d562b6d28265c39fc |
|
MD5 | 06903930c2d8806e7cbdad3656d9fa1c |
|
BLAKE2b-256 | 7b19f081cfbaacace3f78a0ec4f59b5ef3a16224d1f38956db636e524f119dd5 |
Hashes for pybcj-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 506a53d1ae7adf0e51aa27b694eebf8629b7cf9d1a38ded1a476907fe847cbec |
|
MD5 | f72b3e985b6e724162bb008a98331bb0 |
|
BLAKE2b-256 | b5aad9be7822f7541e457f961c7efb46d5a264362954996d2140a3959cfd0d5b |
Hashes for pybcj-0.5.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 472722e2a5e41483215421bbc415563ff4d80bd828b8873801c7a6249756e580 |
|
MD5 | 45c89cc7b86b3b5e1f0f2f9848dfe362 |
|
BLAKE2b-256 | cc564b47e4d1eaf10249faee22d68aedfa4623dd508e5ebf9047da5a6e49ddc1 |
Hashes for pybcj-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e28714234bd55959978758da86917979876c54741c6aafaf6af20814d3be64df |
|
MD5 | 8e690f6d8ff8b0dcca8f85049497d9d2 |
|
BLAKE2b-256 | bdcedb52dfd1067c2cd3ad7848fc99038ec8ff72a931407310758aa3cf7ecc47 |
Hashes for pybcj-0.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc28f1af35786cab701aea939cfe268348d0ec9f347df7c49c28c8c6421ba3b4 |
|
MD5 | 1fa8b78d082aa7ebea5c54c6a318966e |
|
BLAKE2b-256 | 513588a4db0322d40c1b1bb7644053c558e90609cc01ae9f0dc4e94fc629b220 |
Hashes for pybcj-0.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eda47314cd03b564f66641d207480a29f9001b1dcc9e85b8f2a0148067fbb78d |
|
MD5 | e4ce4e166ef0ab551cc2297e83549fd5 |
|
BLAKE2b-256 | 9f552ede2427e480e09bcf0001626995ef7266d47abc9b6939c5aa4e8d291089 |
Hashes for pybcj-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8dc9225c7d98959a89bb27a302b9d46e0dab1af9211014e1a4d71462eb84b28 |
|
MD5 | ab9b5ad479d7bb712f010b8335d819e2 |
|
BLAKE2b-256 | e4ece1a459a424402f6c5a1d0067a2335aa0851fa8cacbc1cd3a1eff65dc5367 |
Hashes for pybcj-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1be462c6a3663646db7205ff3be951c00ab0cd79445c89e3b19af656d2a108c6 |
|
MD5 | 40217fe2b5cff9e47a75d2088d50c265 |
|
BLAKE2b-256 | ee529d30c4c6443336b9cdbdbfdb01e38ed840613c714ef54c7e22b21a8d9cd9 |
Hashes for pybcj-0.5.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26ae2b578347b7695fe634fd67dd7de52f71594af485e1a809a26c17ef200b48 |
|
MD5 | 29823c320e24ecd6a229f8c9bf1e48fc |
|
BLAKE2b-256 | eba7f2b1c78d18c95ebe0c55839384a3bcc962162a0ca9f15b485e59d85fc0c6 |
Hashes for pybcj-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c191add6959a2f4d7794b6ca4d2bbdba1981879fa7db499963fcbd3734d8d32 |
|
MD5 | 724eacbf2e850168b15ca7642263a444 |
|
BLAKE2b-256 | 0bececb6e14b39689f4227fa38c2c366c4ea9786ce8df521196b1d079523571b |
Hashes for pybcj-0.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac5e907d02966fb179191830858230ab9d4ab0e255f449045c32aa5aee040b2c |
|
MD5 | 8fa73b8a599575a84a37c99e10c714e9 |
|
BLAKE2b-256 | 59e957834ec851d7dada23597aa6569b5a4457d24060c6fa10659e11c71cf1b4 |
Hashes for pybcj-0.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c0ab86c2f1053dd94638d591b9418f09160973b61f988b68623de37e2ddadd8 |
|
MD5 | b44cc61bf6dd0a485eaf22329b3c9575 |
|
BLAKE2b-256 | dd9f65aea951f00a1691cd53d22523b74b5cd1e2497716ad331752ba7bca293f |
Hashes for pybcj-0.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ed24c9ab38e14d1d151979187608ecede1a5c5cdf328d256c97f414a6046898 |
|
MD5 | 9bf8bd427b21e13e12ddf043ed35e01a |
|
BLAKE2b-256 | 6f2b9822a5e918c6effa5d43f269ac82ea820e7cf3d5bb76deafa332569b42bc |
Hashes for pybcj-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f479bbf66f0909176a48b34a469ae65d51c8482a1756032bedeaa7bc73e824d8 |
|
MD5 | 95a261fcf22f60dc3c4cac371418f22a |
|
BLAKE2b-256 | 775a40353f66ecf115f08bbd0b4370c394530aaba54e134f1bd5240199dbc7ee |
Hashes for pybcj-0.5.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 970fd92939310c60c1de145838c2445351a41dfb4c007336657498e30322cc69 |
|
MD5 | 6f456f852f53bc62f96bf6ef50b65115 |
|
BLAKE2b-256 | f33febc031a3c7f51a53cecf1c1e36a36f2bd1cd6387ffb253e906c53dbb6ddd |
Hashes for pybcj-0.5.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1846cc1941fe6e3912d444f9e2d088ae1d77ba7c69707f336069383f35ffe946 |
|
MD5 | 6201973a5c3c79694bdbb45f2b1cda75 |
|
BLAKE2b-256 | c9329f8dbf15869ec7e6c80148700e19e65a6dc3a66da9c593756b71d80a2c39 |
Hashes for pybcj-0.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d2bb4e99276304bf137178f597107a7f1c71f7612d8779bfc9a6b76acb410df |
|
MD5 | 823f29748be1c336c27b26d704c5c585 |
|
BLAKE2b-256 | feb23acc92e92a532eaf262cf5d62b9b29244fcda97942842fea2a0cccc2c3fe |
Hashes for pybcj-0.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c93bc3270269af476a9dd722a0e29f4d0ab6dff664231049666eee7ac29ed90 |
|
MD5 | 87e7d40c85bdbb3850e2f92234a0f774 |
|
BLAKE2b-256 | 6a9ca63a4e5fda746f521bd0d7deb72facad92e0d1e2e6113d8fe779385686b9 |
Hashes for pybcj-0.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98b9a0e7646e369d330243d7f973b778218571514dd04435fa181a46cf8b81c2 |
|
MD5 | dd3501b09a30be881bf304752d1f0e58 |
|
BLAKE2b-256 | a4c9892b7f638faea8f336721cca397f514f2d857f58a93691f8cb9bb428573c |
Hashes for pybcj-0.5.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1637ec4e6a359e072a46a18669ca860c9637995d62470e916d88bc4dd0928956 |
|
MD5 | 10e7502b04ec864fe2744e4546d7e0fe |
|
BLAKE2b-256 | 0b1c84c364b02eb3fb8da289084e7ea6aa73bb66d68effb78345d7559e609d3f |
Hashes for pybcj-0.5.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1988ab436f6b2c02d5ced885164fd9928ea35f506470b14c75fa44ccc7bd3116 |
|
MD5 | 7f5340a14776227a8a4b4881604ecb71 |
|
BLAKE2b-256 | d9b2ab5b44711128fea0f896ddb521f247b8115a861e30d787785be0ebdea2e2 |
Hashes for pybcj-0.5.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9621b61ed9ed59fa832d7726637ff5bdd1951875edcc28df5a4407ec6107d217 |
|
MD5 | 54500f46eba677ded93cc7daca8c589b |
|
BLAKE2b-256 | 08cbc9638047e0112e5145eec10648d2ad9f81b393100940f06f0b86a84a32d7 |
Hashes for pybcj-0.5.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e42770d7748c7bb1f1dec89bbc8d9d9dcd8cf82292437129f71a03e050ffe626 |
|
MD5 | 26d520096646ad45601b6d7fdf7927e2 |
|
BLAKE2b-256 | 8c08889ab45f1ee3202c45cdc4d9fb683b145e45e4fc9fc1f5137868662a73a7 |
Hashes for pybcj-0.5.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d39ed9c2a3ffcab889da8ba1f3b111401e0b63c6b964aaa6b89e1cb7ad93286 |
|
MD5 | 157ca7830c4d8c24ed189a79d7c1b64c |
|
BLAKE2b-256 | cb947131e53177977810ebddb93e3c12e2b834c6fdcdd5988f5ba77b33c3e14f |
Hashes for pybcj-0.5.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07a734292eee8de4f33b9c871d8e854be226cc5b617df5a52e5481336310efc1 |
|
MD5 | 0ab6e92b7d92acc503e2fe5f16ddac25 |
|
BLAKE2b-256 | efc3b6377569b060803581138622fb387d419c162b34bf7bbaf4d4a33d218257 |
Hashes for pybcj-0.5.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac125422441dc45480e07891ef2fc2999aa8dd00474c1282580e96b3b2445e25 |
|
MD5 | ad4dde945ea71fad9e2ad57104b3c8d4 |
|
BLAKE2b-256 | 163be41928bb4e1e180d7729d482f9c8aaa8e7688cdcc6cc01a89e9ec9ca708e |