Metadata-Version: 2.1
Name: sabctools
Version: 7.1.2
Summary: C implementations of functions for use within SABnzbd
Home-page: https://github.com/sabnzbd/sabctools/
Author: Safihre
Author-email: safihre@sabnzbd.org
License: GPLv2+
Description: 
        SABCTools - C implementations of functions for use within SABnzbd  
        ===============================  
          
        This module implements three main sets of C implementations that are used within SABnzbd:   
        * yEnc decoding and encoding using SIMD routines  
        * CRC32 calculations  
        * Non-blocking SSL-socket reading  
        * Marking files as sparse
        
        Of course, they can also be used in any other application.
        
        ## yEnc decoding and encoding using SIMD routines
        yEnc decoding and encoding performed by using [yencode](https://github.com/animetosho/node-yencode) from animetosho,   
        which utilizes x86/ARM SIMD optimised routines if such CPU features are available.  
          
        ## CRC32 calculations
        We used the `crcutil` library for very fast CRC calculations.
        
        ## Non-blocking SSL-socket reading  
        When Python reads data from a non-blocking SSL socket, it is limited to receiving 16K data at once. This module implements a patched version that can read as much data is available at once.
        For more details, see the [cpython pull request](https://github.com/python/cpython/pull/31492).
        
        ## Marking files as sparse
        Uses Windows specific system calls to mark files as sparse and set the desired size.
        On other platforms the same is achieved by calling `truncate`.
          
        # Installing  
          
        As simple as running:  
        ```  
        pip install sabctools --upgrade  
        ```  
        When you want to compile from sources, you can run in the `sabctools` directory:  
        ```  
        pip install .  
        ```  
        
        ## SIMD detection  
        
        To see which SIMD set was detected on your system, run:  
        ```  
        python -c "import sabctools; print(sabctools.simd);"  
        ```  
          
        ## OpenSSL detection  
        
        To see if we could link to OpenSSL library on your system, run:  
        ```  
        python -c "import sabctools; print(sabctools.openssl_linked);"  
        ```  
        
        # Testing  
          
        For testing we use `pytest` (install via `pip install -r tests/requirements.txt`) and test can simply be executed by browsing to the `sabctools` directory and running:  
        ```  
        pytest  
        ```  
        Note that tests can fail if `git` modified the line endings of data files when checking out the repository!  
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: C
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
Classifier: Operating System :: Unix
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications :: Usenet News
Description-Content-Type: text/markdown
