yEnc decoding of usenet data using SIMD routines
Project description
SABYenc 3 - yEnc decoding of usenet data using SIMD routines
Modification of the original yenc module for use within SABnzbd. The module was extended to do header parsing and full yEnc decoding from a Python list of chunks, the way in which data is retrieved from usenet. This is particularly beneficial when SSL is enabled, which limits the size of each chunk to 16K. Parsing these chunks in python is much more costly. Additionally, this module releases Python's GIL during decoding, greatly increasing performance of the overall download process.
Further improved by using yencode from animetosho, which utilizes x86/ARM SIMD optimised routines if such CPU features are available.
Installing
As simple as running:
pip install sabyenc3 --upgrade
When you want to compile from sources, you can run in the sabyenc
directory:
pip install .
SIMD detection
To see which SIMD set was detected on your system, run:
python -c "import sabyenc3; print(sabyenc3.simd);"
Testing
For testing we use pytest
(install via pip install -r tests/requirements.txt
) and test can simply be executed by browsing to the sabyenc
directory and running:
pytest
Note that tests can fail if git
modified the line endings of data files when checking out the repository!
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 sabyenc3-5.1.7-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3723d8415476542c6fa5d01c8ca473fa5d72050313c9640b6d5a56f6c9a3304c |
|
MD5 | b74bc913b7c82686b3ae300a2dbca729 |
|
BLAKE2b-256 | 7178985d8e0c888a3b9d4aab054b29cef5a938850dee45b35b7ffee50ba50bb6 |
Hashes for sabyenc3-5.1.7-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a3b95ba038c202901541902b3cde999b6fe46a54b4a695bd1ad18e056e29b01 |
|
MD5 | 20d624214e941437522369f71292bf44 |
|
BLAKE2b-256 | 8680e6127a808902c0cae851bb5c61bd4e84488a2019c7e3852815038a92e416 |
Hashes for sabyenc3-5.1.7-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7e3bba9e9a41580d08c1f150ce12e0eb57cc9af972c13e717b9ab0b46acde2d |
|
MD5 | 44ab3b59613aab921b84ec58b6a479af |
|
BLAKE2b-256 | 3c385e8cabca374d80fbb3558350350db4ec2889ea6259270eb196c1d9e95808 |
Hashes for sabyenc3-5.1.7-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6796ce3aed59b468b4bdbbcdb8e8db7f2aed7a23a46cd941c70eafa4c8a148b9 |
|
MD5 | f6fc4c2fb90631718570482e9526ef07 |
|
BLAKE2b-256 | f62f092267a272d3adee33ccbcbe999e91226c6ed2a628ef96ce0745ca24bdd6 |
Hashes for sabyenc3-5.1.7-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de520d83fe444510b5dc03b6d9ffe9895c155c7eae4accfbe4db0beca6b21454 |
|
MD5 | 471c7f7be51663982be202b37f375baf |
|
BLAKE2b-256 | c0ff11de054b9f2f9fd2f7078ff90d4d5e076be46120f940cf55a2f0f2925c8d |
Hashes for sabyenc3-5.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b10e0c142c8253b89b67ceffd697b027f5267141392d631ce376be798511b120 |
|
MD5 | cf4df38a16739d303e2200b43d707a08 |
|
BLAKE2b-256 | 9a00d1a7008916b16036bb08be9533889a301261186961c64dbc5bcd75796b73 |
Hashes for sabyenc3-5.1.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71ec0e9b96a775a90a7e39045923f3740295b6b3760dc17914e8221b01fe585d |
|
MD5 | 8f098b31ab6f71b26c376a3af445c0eb |
|
BLAKE2b-256 | b699e72b83c8b439c6bf121c06be612f7cdee3c628b0dd83fd00e3ab77463a0e |
Hashes for sabyenc3-5.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ddb17e1a737b243814c3eb974aa46a1ca3bb0fcf2232dbc67e9c8d33209ae8b |
|
MD5 | cdf6ecb489fe1ce9d477e4644152c4d9 |
|
BLAKE2b-256 | 3f12774d85510f7674df5d0b19a11ad8711f1c3cb10f91d75800f28cc42d721b |
Hashes for sabyenc3-5.1.7-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fac12949ad57b39ee88d641571eb0e8d81cb51057607be41787decd9d1bc3ec0 |
|
MD5 | fe26041c49fc7f76e82d1008391c2fc4 |
|
BLAKE2b-256 | 879b87976d29f83017d7cdbc1c531ae7e3c2d49e76391780523b526edbae1800 |
Hashes for sabyenc3-5.1.7-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 246cf7d658e8d2464d7d445c28c00b4675450a1ea47c878b9a13978c4e992c34 |
|
MD5 | 874957f957af7b5ea59f3a01427dd456 |
|
BLAKE2b-256 | 6a0a49f596aadf1277938ca9d343f07f0130596c8c5bdf4f6da4b7a1f8cce590 |
Hashes for sabyenc3-5.1.7-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42fe23628b32f8228c79dd0adad19b622b4492eb89ae1200384efd059d66b1e5 |
|
MD5 | 31a9d44ff3b839244d12f02cdeb406b3 |
|
BLAKE2b-256 | 046004d57628aba225da99f5f35540865a8c38a2eb1e97a6dda76022c525ede7 |
Hashes for sabyenc3-5.1.7-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6aaae54fcf30e5ea8407a824e47979d6cc0d3ed9a865fbabc0c4404050d94af8 |
|
MD5 | aa00e587abc976ac57d97ed87eb9ed6f |
|
BLAKE2b-256 | cccaa8c06103664f72c54176ae8c1c1a57b545967233c9085b5371a4b8d08903 |
Hashes for sabyenc3-5.1.7-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 966aaa8e755c48499450622503b588f91f676fd4a72c345fc80b8a148fa5596e |
|
MD5 | a79ee08c39c878fdbcfab87780e7fe39 |
|
BLAKE2b-256 | ed0a8d269d08dc2eaaa7e48307b326169e5e76aaefe214420f0763879b219cc8 |
Hashes for sabyenc3-5.1.7-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51ece0675bb18ed744501c08a715229f8b67b98d5acf97476a1926070914f983 |
|
MD5 | 3f165cfe4a5a1f11d5ca76acc72fb174 |
|
BLAKE2b-256 | aa27b4f8524875f742f64fe3b53f4a548c8dc1e7b1dbc3dd2c04620973463c90 |
Hashes for sabyenc3-5.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2115b3007f0f45c8a0a1553f0db59ef2f2cb4dcc0a82e6ee2d5b8eb561009e7f |
|
MD5 | 99626757bd9d3644aba1f2fbcfe6b410 |
|
BLAKE2b-256 | f9cc9dea71a38c2cc9e7623966cc628f65d39a1bc2a560746a82fa9ab889bb95 |
Hashes for sabyenc3-5.1.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb167a89d6a72690a54f140273c40da22f20cc638f06b9fe7b8bb956a399f3d8 |
|
MD5 | 78efbaf53993db7827831a93fa114303 |
|
BLAKE2b-256 | 3c546e42308913e3af086eb0a9da8ca66ad96231beb990878aef6724a8970129 |
Hashes for sabyenc3-5.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef107f9ec3c7b162a010c3f71b737651ee052ab8d698225154b2e6d7c5b5971f |
|
MD5 | 4ba23ce3e603cdc98acf35cbbff1e484 |
|
BLAKE2b-256 | a39430892d0fe274168cd65029c6d1506fe4496f13b7b953243160a6b01dca76 |
Hashes for sabyenc3-5.1.7-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17a90e5b25120e858ce883b78f2d88012b11599b65385021470f442b7b495658 |
|
MD5 | 06e5c256cf5d0663876c2af14aaf6e61 |
|
BLAKE2b-256 | 57235bc96b61a51a14e02f2c7a08debc227549194a0df8f775889db47553fa4c |
Hashes for sabyenc3-5.1.7-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7316dd70b1e6eb3fdc4391d2848af665e81abe8e1f042a33277c16eace4852a |
|
MD5 | 17acb58f20602e48469f5bdf0394e7f2 |
|
BLAKE2b-256 | 5ec34ef656b078276a8e21dead7b499591b34ac67340c8a6117dfc52bb9b1892 |
Hashes for sabyenc3-5.1.7-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fae13b1613af1d7ad1435e1c1f333b989e3c4c37fc98fb452e2559f7c8e13e4f |
|
MD5 | a77a536ece1d1b2a60c934f3d4057b48 |
|
BLAKE2b-256 | e3e96ff5daa6506b4884a3a9f878cc7bedf4b541c15aedd69b021ce77fc2ae8d |
Hashes for sabyenc3-5.1.7-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 559306e2b32d6d3acd8ab8258822a81ab0024fad1be9038b04d8af196c2485cc |
|
MD5 | 6df1e6d6105a5ebd9bedf2c0b42d3401 |
|
BLAKE2b-256 | 061307dfaeb0f8a9681e6cae359ef5e8c2fb198ddaea34f57d9503a903460b09 |
Hashes for sabyenc3-5.1.7-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a5a64155ccabb91342a34f17bd938a9fef6d928cc0089c06b9d3c9b8759b03a |
|
MD5 | 2703fd7d786ecf051f3210c016b82d64 |
|
BLAKE2b-256 | e287a7b9f8b9cd6de80b02d6f787a802617b4f4b532b4842e930714a0f369158 |
Hashes for sabyenc3-5.1.7-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2c718b09de19dc55c98157020e4d4c0db3ceb8453aa940eac8a42da952d6b2d |
|
MD5 | 897a7d343865d1e385d08a3305461aa3 |
|
BLAKE2b-256 | 172bec5705a17fc3b235a2119d25434cae6d8849c40799e54b75abd53325cef6 |
Hashes for sabyenc3-5.1.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40b3ca96bd6f5c34151ca08679a9334fde331aa2ed6d3d06c9d2fe1200fe9a29 |
|
MD5 | 02d5d5acf4b8113775205018a185774e |
|
BLAKE2b-256 | 12e18cc8259a45ab9f19e03e3046d746c69a2f94ce458f2a239a534fa444ea7f |
Hashes for sabyenc3-5.1.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8213e7eb3040e7f07932b903fce01d60c38e7d6c9fc4875258bdc1e83266f6a8 |
|
MD5 | 9717e18eaec3db8d0f1ae267db0f6b36 |
|
BLAKE2b-256 | c350649ad71075c195fb7ddee41aeb1957fe0bb3d4807bc7233965b3d24fe25a |
Hashes for sabyenc3-5.1.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01b3f66343a9169870cadcc788dd1300f1ae58857cfcf5d089b4afe5edecf610 |
|
MD5 | 995017266fb183ca78f70f419807076a |
|
BLAKE2b-256 | 8917e84e4f97cac9d932112b666e51862e4954445d64fd4e78f6091584894ce2 |
Hashes for sabyenc3-5.1.7-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2416c91161bbbc952334b31d07541b19b323bfac6b961f5c84be848719aa08a9 |
|
MD5 | a00f00cf753fa640b1f0a031d5927d39 |
|
BLAKE2b-256 | 1053bb4ecfaa63d1387fd14b62328cfe67291abd83d5b1de3c8fee7f0d3e42b3 |
Hashes for sabyenc3-5.1.7-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6dc871e196b1d41a661d6641b5a7dd7532964405dbe628d1a426360d89b87cc |
|
MD5 | 6aa0974c373f04d72217e3b44e648484 |
|
BLAKE2b-256 | 5ad6caa2af68b02a13541bbe82bbe0ddf85ec95e6de3b8ec841126424b135982 |
Hashes for sabyenc3-5.1.7-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 375c4a9afb374fe9229df2be67bf859d6673e3a8160981db409602b68b1f428f |
|
MD5 | 92eff82d7a4e36dae9a5ea560b6478bb |
|
BLAKE2b-256 | 04c9dad7821707bb0e6f20840e0ae3035d283a6789ae7b69f20226460a89ce36 |
Hashes for sabyenc3-5.1.7-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82d329df61b83004ca8a448ac2dba13e6c51fa9678a8ba8e7639a1c81a5a799a |
|
MD5 | fbf2f52fe68999efb61a9f9143456010 |
|
BLAKE2b-256 | 738127451f5bb4ba35a0b3cb8e6673147c586d5af1769afccb4dcb2ee1982ff4 |
Hashes for sabyenc3-5.1.7-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e468fd20c1f2e59f302c6c06b38166fcf8e8f5eb35ff4460284de36082ca79a |
|
MD5 | 5c56cc0e22a8c9cfb5d1c5ff93a74663 |
|
BLAKE2b-256 | f8c2487f2a9c0c5ed490b4580b4a76cdf6e84a3e82a8464a4d6ab88b56ee26dd |
Hashes for sabyenc3-5.1.7-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa93fb47cff0e16081512d0ed10842196b290e0fe17d6d72df24a191bf1d418 |
|
MD5 | e9addc66b517c21e8051a7dae9a45649 |
|
BLAKE2b-256 | cd424951a0555c7d674be0d32436ab234f69106b5c83a867f85244a89f27b4cf |
Hashes for sabyenc3-5.1.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52ccfcee854a6ab3bff966b33e2c3b573ddf4189382af307a7419b9520f6b8e1 |
|
MD5 | 3c3b27895eb6a4ff80b5953f32d584ae |
|
BLAKE2b-256 | 094acfe6f8a51c672d04dbbde46826291bf8975edfae6e6ee094e735ab66118e |
Hashes for sabyenc3-5.1.7-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef21af998e441c414d1ee6db6d10c8af1eaf4d0c7ecad517a19c3869322014f8 |
|
MD5 | a6a1a66253cd1f01d2e81fb18e32f622 |
|
BLAKE2b-256 | e30370c15803933bb8ea69d75148088f41238d2c349f3de7941d30ab3a45040f |
Hashes for sabyenc3-5.1.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fa0680927e0be62a88bdee5ebf579f5c9bf98207a415c0142cd88ef9fe0468f |
|
MD5 | aba68668b905c41907fd8866289d1fba |
|
BLAKE2b-256 | c60f15578190392e769f017c52885bb89f000ee6d7a95a52b130b2a688578ceb |