larch.pickle - A faster and secure python pickle replacement
============================================================
This module can be used as transparent replacement for pickle.
Difference to original python pickle:
- no memo attribute.
- no `clear_memo()`.
- no `persistent_id` interface.
- byte strings are always assumed to be `utf-8` encoded.
- `Pickler` has an additional `with_refs` parameter. Setting `with_refs`
to `false`, the pickler will ignore object references. This can result
in an extra speed boost.
Installation
------------
larch-pickle needs the boost library for compilation. If boost is not in
the standard include path install it with: ::
python build_ext -I /path/to/boost install
Security
--------
Version 1.4.0 introduced a secure parameter in Unpickler.
With `secure=True` the Unpickler loads only objects that, are registered
as secure. To register secure objects you can
- use the decorator `secure_unpickle`
- set the attribute `__pickle_secure__ = True`
- add a module name to `secure_modules`
Speed compared to some other pickler packages
---------------------------------------------
dump Dictionaries (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= ========= ========
Package Seconds Size
============= ========= ========
larch-pickle 0.291857 9356357
marshal 0.344505 15975952
msgpack 0.368878 9810043
ujson 0.550575 13101307
json 0.815204 14365311
Pickle-3.12.2 1.16181 10276493
============= ========= ========
load Dictionaries (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= =========
Package Seconds
============= =========
larch-pickle 0.719275
marshal 0.767289
msgpack 0.817542
Pickle-3.12.2 0.847736
json 0.91282
ujson 0.930489
============= =========
dump Objects (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= ========= ========
Package Seconds Size
============= ========= ========
larch-pickle 0.337152 9656364
Pickle-3.12.2 1.15342 10416542
============= ========= ========
load Objects (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= =========
Package Seconds
============= =========
larch-pickle 0.794334
Pickle-3.12.2 0.820135
============= =========
dump Strings (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= ========= ========
Package Seconds Size
============= ========= ========
marshal 0.215026 32481517
msgpack 0.251937 28782143
larch-pickle 0.418834 10885236
json 0.513742 31701248
ujson 0.537478 30722275
Pickle-3.12.2 0.633869 17726498
============= ========= ========
load Strings (10 loops)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
============= =========
Package Seconds
============= =========
larch-pickle 0.206729
Pickle-3.12.2 0.253017
marshal 0.359512
msgpack 0.360152
json 0.527622
ujson 0.673696
============= =========
Raw data
{
"_id": null,
"home_page": "https://github.com/kochelmonster/larch-pickle",
"name": "larch-pickle",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "library",
"author": "Michael Reithinger",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/bf/93/2371f39f3ebca0bb266718cc5ef4151de20086bd163c28127e002c6ca387/larch-pickle-1.4.3.tar.gz",
"platform": null,
"description": "larch.pickle - A faster and secure python pickle replacement\n============================================================\n\nThis module can be used as transparent replacement for pickle.\n\nDifference to original python pickle:\n\n - no memo attribute.\n - no `clear_memo()`.\n - no `persistent_id` interface.\n - byte strings are always assumed to be `utf-8` encoded.\n - `Pickler` has an additional `with_refs` parameter. Setting `with_refs`\n to `false`, the pickler will ignore object references. This can result\n in an extra speed boost.\n\n\nInstallation\n------------\n\nlarch-pickle needs the boost library for compilation. If boost is not in\nthe standard include path install it with: ::\n\n python build_ext -I /path/to/boost install\n\n\nSecurity\n--------\n\nVersion 1.4.0 introduced a secure parameter in Unpickler.\nWith `secure=True` the Unpickler loads only objects that, are registered\nas secure. To register secure objects you can\n\n- use the decorator `secure_unpickle`\n- set the attribute `__pickle_secure__ = True`\n- add a module name to `secure_modules`\n\n\nSpeed compared to some other pickler packages\n---------------------------------------------\n\ndump Dictionaries (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= ========= ========\nPackage Seconds Size\n============= ========= ========\nlarch-pickle 0.291857 9356357\nmarshal 0.344505 15975952\nmsgpack 0.368878 9810043\nujson 0.550575 13101307\njson 0.815204 14365311\nPickle-3.12.2 1.16181 10276493\n============= ========= ========\n\n\nload Dictionaries (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= =========\nPackage Seconds\n============= =========\nlarch-pickle 0.719275\nmarshal 0.767289\nmsgpack 0.817542\nPickle-3.12.2 0.847736\njson 0.91282\nujson 0.930489\n============= =========\n\n\ndump Objects (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= ========= ========\nPackage Seconds Size\n============= ========= ========\nlarch-pickle 0.337152 9656364\nPickle-3.12.2 1.15342 10416542\n============= ========= ========\n\n\nload Objects (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= =========\nPackage Seconds\n============= =========\nlarch-pickle 0.794334\nPickle-3.12.2 0.820135\n============= =========\n\n\ndump Strings (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= ========= ========\nPackage Seconds Size\n============= ========= ========\nmarshal 0.215026 32481517\nmsgpack 0.251937 28782143\nlarch-pickle 0.418834 10885236\njson 0.513742 31701248\nujson 0.537478 30722275\nPickle-3.12.2 0.633869 17726498\n============= ========= ========\n\n\nload Strings (10 loops)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n============= =========\nPackage Seconds\n============= =========\nlarch-pickle 0.206729\nPickle-3.12.2 0.253017\nmarshal 0.359512\nmsgpack 0.360152\njson 0.527622\nujson 0.673696\n============= =========\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "A faster python pickle replacement",
"version": "1.4.3",
"project_urls": {
"Homepage": "https://github.com/kochelmonster/larch-pickle"
},
"split_keywords": [
"library"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1e64497e214981ef444528d30772d4eb7220c5f7c923b6e400723b13f7fb6506",
"md5": "724cdde83749a7a60f0de04d38428005",
"sha256": "d9de944a602fb8621e0ad841641924353dbf5594bfecb2c262742b3b26f2a83b"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp310-cp310-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "724cdde83749a7a60f0de04d38428005",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 120183,
"upload_time": "2024-03-22T14:45:06",
"upload_time_iso_8601": "2024-03-22T14:45:06.684047Z",
"url": "https://files.pythonhosted.org/packages/1e/64/497e214981ef444528d30772d4eb7220c5f7c923b6e400723b13f7fb6506/larch_pickle-1.4.3-cp310-cp310-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c9bd001e8dfef833966af59a6c9908c03b79c6232fed481017ef2eb8d6bb71af",
"md5": "a6803f52202e0ed2fa941223de7ba47e",
"sha256": "462be1dcaaaa88fef0d473d0ac8ae431f0e172778c44b080dbd68233731c3d51"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "a6803f52202e0ed2fa941223de7ba47e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 94934,
"upload_time": "2024-03-22T14:45:08",
"upload_time_iso_8601": "2024-03-22T14:45:08.493825Z",
"url": "https://files.pythonhosted.org/packages/c9/bd/001e8dfef833966af59a6c9908c03b79c6232fed481017ef2eb8d6bb71af/larch_pickle-1.4.3-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa7d9fdf2debdb7cdaf0e8bb82e24c1d3f78fa2549c39c5f8599a6721f9fa74e",
"md5": "6245491b0097dd0661710805aa456490",
"sha256": "01bafdb4322c3d7cf111b9df5f4cbcdbfb5ffdd6ad3eecd4a40c57fedff52d5b"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "6245491b0097dd0661710805aa456490",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 233742,
"upload_time": "2024-03-22T14:45:10",
"upload_time_iso_8601": "2024-03-22T14:45:10.118035Z",
"url": "https://files.pythonhosted.org/packages/fa/7d/9fdf2debdb7cdaf0e8bb82e24c1d3f78fa2549c39c5f8599a6721f9fa74e/larch_pickle-1.4.3-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "44226dd08ce91cd0fafa14e0dd1b413972db52cf1f6bf26d05bb382010a5c8f7",
"md5": "6c7f9efe5a2b7c059d284b66aa4efcbc",
"sha256": "0af8866c6d2d6b7e211ea7ac7d202fe2fc8bfa15774dfec686cb1c75f9e0e2c6"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "6c7f9efe5a2b7c059d284b66aa4efcbc",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 95522,
"upload_time": "2024-03-22T14:45:11",
"upload_time_iso_8601": "2024-03-22T14:45:11.942560Z",
"url": "https://files.pythonhosted.org/packages/44/22/6dd08ce91cd0fafa14e0dd1b413972db52cf1f6bf26d05bb382010a5c8f7/larch_pickle-1.4.3-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d3844741279b6d01cadcdc40cf242e325ecaa600e8c42635d26533f053a412b4",
"md5": "124cc70024e32f08a10f86874a8b62c4",
"sha256": "43aa630e586c564605325effe87fd3f38692b71cf3f960efe48c2df4f7967a06"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp312-cp312-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "124cc70024e32f08a10f86874a8b62c4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 228662,
"upload_time": "2024-03-22T14:45:13",
"upload_time_iso_8601": "2024-03-22T14:45:13.490508Z",
"url": "https://files.pythonhosted.org/packages/d3/84/4741279b6d01cadcdc40cf242e325ecaa600e8c42635d26533f053a412b4/larch_pickle-1.4.3-cp312-cp312-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4b9d81f6c01b6906223a7ffc769a878539fa10a6e6d757b6d66f27b78d2a8bc0",
"md5": "b7a1035c3bd2a25754e0c64347bf5ab3",
"sha256": "18c74fde0bdd0382598745633b6a230a28707bbd382e695fae1518324d926b8a"
},
"downloads": -1,
"filename": "larch_pickle-1.4.3-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "b7a1035c3bd2a25754e0c64347bf5ab3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 94581,
"upload_time": "2024-03-22T14:45:14",
"upload_time_iso_8601": "2024-03-22T14:45:14.719484Z",
"url": "https://files.pythonhosted.org/packages/4b/9d/81f6c01b6906223a7ffc769a878539fa10a6e6d757b6d66f27b78d2a8bc0/larch_pickle-1.4.3-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf932371f39f3ebca0bb266718cc5ef4151de20086bd163c28127e002c6ca387",
"md5": "b9793bf8444e157c54303b023f4a98ba",
"sha256": "560575f0061bf4e598adfc10f2b84b0ae3b61f8c27734fdd62775a5659c3a611"
},
"downloads": -1,
"filename": "larch-pickle-1.4.3.tar.gz",
"has_sig": false,
"md5_digest": "b9793bf8444e157c54303b023f4a98ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4062621,
"upload_time": "2024-03-22T14:45:15",
"upload_time_iso_8601": "2024-03-22T14:45:15.819967Z",
"url": "https://files.pythonhosted.org/packages/bf/93/2371f39f3ebca0bb266718cc5ef4151de20086bd163c28127e002c6ca387/larch-pickle-1.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-22 14:45:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kochelmonster",
"github_project": "larch-pickle",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "larch-pickle"
}