{ "info": { "author": "James Brown", "author_email": "jbrown@uber.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "`cidrtrie` is a simplistic implementation of a prefix tree and a library for classifying IP addresses based on prefix matching. Unlike other implementations (such as [py-radix](http://www.mindrot.org/projects/py-radix/)), this is pure-Python and aims to be as simple as possible.\n\n## Why? ##\nThis implementation offers asymptotic performance improvement for problems that look like Internet routing.\n\n`bench.py` contains a simple and used-elsewhere _O(n)_ implementation (\"`NaiveCidrClassifier`) of this same functionalify. Some sample numbers for inserting 100,000 cidrs into the tree and then looking up 10,000 IPs on a 3GHz Intel i7-4578U:\n\n insert CidrClassifier 5.16s\n insert NaiveCidrClassifier 0.11s\n lookup CidrClassifier 0.25s\n lookup NaiveCidrClassifier 92.11s\n\nAn example use case would be to efficiently map IP addresses (from logs or some other source) to the originating network (and, eventually, to the owner) without using a commercial library like MaxMind or bringing in any native-code dependencies.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/uber/cidrtrie", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "cidrtrie", "package_url": "https://pypi.org/project/cidrtrie/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cidrtrie/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/uber/cidrtrie" }, "release_url": "https://pypi.org/project/cidrtrie/0.1/", "requires_dist": null, "requires_python": null, "summary": "Prefix Tree (trie) for manipulating CIDR sets", "version": "0.1" }, "last_serial": 1555786, "releases": { "0.0.1": [], "0.1": [ { "comment_text": "", "digests": { "md5": "846307b51cc8ac942b5535cc255e2d22", "sha256": "3e9bb94eb0ff5587f8ea161c7bf3c9d1000fb1c833fd7f5993cc667ac2904b50" }, "downloads": -1, "filename": "cidrtrie-0.1.tar.gz", "has_sig": false, "md5_digest": "846307b51cc8ac942b5535cc255e2d22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4086, "upload_time": "2015-05-20T23:09:32", "url": "https://files.pythonhosted.org/packages/7a/49/7f5580a4984843923ca61f1a9db17aa98749b75497c5a2af09d9499c9d6e/cidrtrie-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "846307b51cc8ac942b5535cc255e2d22", "sha256": "3e9bb94eb0ff5587f8ea161c7bf3c9d1000fb1c833fd7f5993cc667ac2904b50" }, "downloads": -1, "filename": "cidrtrie-0.1.tar.gz", "has_sig": false, "md5_digest": "846307b51cc8ac942b5535cc255e2d22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4086, "upload_time": "2015-05-20T23:09:32", "url": "https://files.pythonhosted.org/packages/7a/49/7f5580a4984843923ca61f1a9db17aa98749b75497c5a2af09d9499c9d6e/cidrtrie-0.1.tar.gz" } ] }