{ "info": { "author": "Simon Gomizelj", "author_email": "simon@vodik.xyz", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "====\npnet\n====\n\nA fast and simple packet creation and parsing lib for Python, currently nothing\nmore then a proof of concept. Inspired by both the python `pypacker\n`_ library and Rust's `pnet\n`_,\n\n------\nDesign\n------\n\nBuilt around trying to minimize copying data by taking advantage of\n`memoryviews `_\nfor fast slicing and zero copy memory operations. \n\nThis library takes either a `bytes` or `bytearray` object and parses out\nvarious protocols in a similar fashion to the Rust library. The resulting\npacket objects can be inspected, or, in the case its backed by a `bytearray`,\nalso written to. In this case, the backing memory is immediately updated.\n\nInstead of mapping packet fields to attributes, I expose them instead with a\ncollection-like API. This is my personal taste, as I don't like how\nautogenerated attributes end up with akward names that can overlap with Python\nkeywords.\n\n-----------\nPerformance\n-----------\n\nInitial testing on my machine has shown that this library is about **twice** as\nfast at parsing packets, but I haven't determined yet if this can be attributed\nto design differences, or if I'm just simply doing less.\n\n----\nTODO\n----\n\nThis is one part of a slew of network inspecting code I'm releasing.\n\n- rich BPF support and mini-language\n- asyncio support for raw sockets and packet capturing\n- asyncio based dhcp server and client library\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vodik/pnet", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "pnet", "package_url": "https://pypi.org/project/pnet/", "platform": "", "project_url": "https://pypi.org/project/pnet/", "project_urls": { "Homepage": "https://github.com/vodik/pnet" }, "release_url": "https://pypi.org/project/pnet/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Fast zero-copy packet creating and parsing module", "version": "0.0.1" }, "last_serial": 3079797, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5cbf001f270a9442be6405890c9a0fcd", "sha256": "16bbc1c550c7170b4990a6bee33921c093e1df59a8e57aa0e09d15a76d621a02" }, "downloads": -1, "filename": "pnet-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5cbf001f270a9442be6405890c9a0fcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9644, "upload_time": "2017-08-08T00:23:46", "url": "https://files.pythonhosted.org/packages/c3/a3/26e2a4b1998a76ad846ffcf403f60231adda327412e321a4f535a74dd9c4/pnet-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5cbf001f270a9442be6405890c9a0fcd", "sha256": "16bbc1c550c7170b4990a6bee33921c093e1df59a8e57aa0e09d15a76d621a02" }, "downloads": -1, "filename": "pnet-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5cbf001f270a9442be6405890c9a0fcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9644, "upload_time": "2017-08-08T00:23:46", "url": "https://files.pythonhosted.org/packages/c3/a3/26e2a4b1998a76ad846ffcf403f60231adda327412e321a4f535a74dd9c4/pnet-0.0.1.tar.gz" } ] }