Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
rencode/ | H | 21-Oct-2018 | - | 12,124 | 7,496 | |
rencode.egg-info/ | H | 03-May-2022 | - | 204 | 153 | |
tests/ | H | 03-May-2022 | - | 595 | 399 | |
COPYING | H A D | 21-Oct-2018 | 34.3 KiB | 675 | 553 | |
MANIFEST.in | H A D | 21-Oct-2018 | 79 | 5 | 4 | |
PKG-INFO | H A D | 21-Oct-2018 | 5.9 KiB | 204 | 153 | |
README.md | H A D | 21-Oct-2018 | 4.2 KiB | 193 | 143 | |
setup.cfg | H A D | 21-Oct-2018 | 38 | 5 | 3 | |
setup.py | H A D | 03-May-2022 | 2.6 KiB | 93 | 55 |
README.md
1# rencode 2 3The rencode module is similar to bencode from the BitTorrent project. For complex, heterogeneous data structures with many small elements, r-encodings take up significantly less space than b-encodings: 4 5``` 6>>> len(rencode.dumps({'a':0, 'b':[1,2], 'c':99})) 713 8 9>>> len(bencode.bencode({'a':0, 'b':[1,2], 'c':99})) 1026 11``` 12 13This version of rencode is a complete rewrite in Cython to attempt to increase the performance over the pure Python module written by Petru Paler, Connelly Barnes et al. 14 15 16## Performance Comparison 17The test program used for these results is included in the repository: 18https://github.com/aresch/rencode/blob/master/tests/timetest.py 19 20### Encode functions 21``` 22test_encode_fixed_pos_int: 23 rencode.pyx: 0.003s (+0.013s) 589.17% 24 rencode.py: 0.016s 25 26test_encode_int_int_size: 27 rencode.pyx: 0.006s (+0.032s) 625.99% 28 rencode.py: 0.038s 29 30test_encode_int_long_long_size: 31 rencode.pyx: 0.014s (+0.026s) 279.96% 32 rencode.py: 0.040s 33 34test_encode_int_short_size: 35 rencode.pyx: 0.006s (+0.030s) 629.80% 36 rencode.py: 0.036s 37 38test_encode_str: 39 rencode.pyx: 0.006s (+0.010s) 263.96% 40 rencode.py: 0.017s 41 42test_encode_dict: 43 rencode.pyx: 0.135s (+0.302s) 324.68% 44 rencode.py: 0.437s 45 46test_encode_fixed_list: 47 rencode.pyx: 0.012s (+0.025s) 307.78% 48 rencode.py: 0.037s 49 50test_encode_fixed_neg_int: 51 rencode.pyx: 0.003s (+0.012s) 536.97% 52 rencode.py: 0.015s 53 54test_encode_fixed_dict: 55 rencode.pyx: 0.046s (+0.105s) 331.07% 56 rencode.py: 0.151s 57 58test_encode_int_char_size: 59 rencode.pyx: 0.005s (+0.029s) 687.64% 60 rencode.py: 0.034s 61 62test_encode_fixed_str: 63 rencode.pyx: 0.003s (+0.011s) 438.07% 64 rencode.py: 0.015s 65 66test_encode_list: 67 rencode.pyx: 0.148s (+0.228s) 253.68% 68 rencode.py: 0.376s 69 70test_encode_none: 71 rencode.pyx: 0.004s (+0.011s) 386.06% 72 rencode.py: 0.014s 73 74test_encode_int_big_number: 75 rencode.pyx: 0.011s (+0.019s) 264.32% 76 rencode.py: 0.030s 77 78test_encode_float_64bit: 79 rencode.pyx: 0.003s (+0.011s) 416.19% 80 rencode.py: 0.014s 81 82test_encode_bool: 83 rencode.pyx: 0.004s (+0.014s) 447.57% 84 rencode.py: 0.018s 85 86test_encode_float_32bit: 87 rencode.pyx: 0.003s (+0.010s) 417.86% 88 rencode.py: 0.014s 89 90Encode functions totals: 91 rencode.pyx: 0.412s (+0.888s) 315.49% 92 rencode.py: 1.301s 93``` 94### Decode functions 95 96``` 97test_decode_fixed_list: 98 rencode.pyx: 0.003s (+0.020s) 848.67% 99 rencode.py: 0.022s 100 101test_decode_int_long_long_size: 102 rencode.pyx: 0.003s (+0.013s) 484.80% 103 rencode.py: 0.016s 104 105test_decode_dict: 106 rencode.pyx: 0.267s (+0.406s) 251.81% 107 rencode.py: 0.673s 108 109test_decode_fixed_dict: 110 rencode.pyx: 0.087s (+0.123s) 241.32% 111 rencode.py: 0.211s 112 113test_decode_float_32bit: 114 rencode.pyx: 0.002s (+0.007s) 536.88% 115 rencode.py: 0.009s 116 117test_decode_int_big_number: 118 rencode.pyx: 0.007s (+0.010s) 256.05% 119 rencode.py: 0.017s 120 121test_decode_int_char_size: 122 rencode.pyx: 0.002s (+0.014s) 754.12% 123 rencode.py: 0.016s 124 125test_decode_fixed_neg_int: 126 rencode.pyx: 0.001s (+0.004s) 389.03% 127 rencode.py: 0.006s 128 129test_decode_fixed_str: 130 rencode.pyx: 0.009s (+0.009s) 199.78% 131 rencode.py: 0.019s 132 133test_decode_float_64bit: 134 rencode.pyx: 0.002s (+0.007s) 540.17% 135 rencode.py: 0.009s 136 137test_decode_bool: 138 rencode.pyx: 0.002s (+0.004s) 369.49% 139 rencode.py: 0.006s 140 141test_decode_fixed_pos_int: 142 rencode.pyx: 0.002s (+0.004s) 368.96% 143 rencode.py: 0.006s 144 145test_decode_list: 146 rencode.pyx: 0.019s (+0.247s) 1403.77% 147 rencode.py: 0.266s 148 149test_decode_none: 150 rencode.pyx: 0.002s (+0.004s) 367.05% 151 rencode.py: 0.006s 152 153test_decode_int_short_size: 154 rencode.pyx: 0.002s (+0.014s) 716.47% 155 rencode.py: 0.016s 156 157test_decode_str: 158 rencode.pyx: 0.010s (+0.026s) 364.51% 159 rencode.py: 0.036s 160 161test_decode_int_int_size: 162 rencode.pyx: 0.002s (+0.014s) 705.92% 163 rencode.py: 0.016s 164 165Decode functions totals: 166 rencode.pyx: 0.421s (+0.926s) 319.79% 167 rencode.py: 1.348s 168``` 169 170### Overall functions 171 172``` 173test_overall_encode: 174 rencode.pyx: 0.069s (+0.120s) 274.42% 175 rencode.py: 0.189s 176 177test_overall_decode: 178 rencode.pyx: 0.051s (+0.153s) 400.57% 179 rencode.py: 0.204s 180 181Overall functions totals: 182 rencode.pyx: 0.120s (+0.273s) 327.98% 183 rencode.py: 0.393s 184``` 185 186 187## Author 188* Andrew Resch <andrewresch@gmail.com> 189* Website: https://github.com/aresch/rencode 190 191## License 192See [COPYING](https://github.com/aresch/rencode/blob/master/COPYING) for license information. 193