Skip to main content

Prefix Tree (trie) for manipulating CIDR sets

Project 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.

## Why? ## This implementation offers asymptotic performance improvement for problems that look like Internet routing.

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:

insert CidrClassifier 5.16s insert NaiveCidrClassifier 0.11s lookup CidrClassifier 0.25s lookup NaiveCidrClassifier 92.11s

An 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cidrtrie-0.1.tar.gz (4.1 kB view details)

Uploaded Source

File details

Details for the file cidrtrie-0.1.tar.gz.

File metadata

  • Download URL: cidrtrie-0.1.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cidrtrie-0.1.tar.gz
Algorithm Hash digest
SHA256 3e9bb94eb0ff5587f8ea161c7bf3c9d1000fb1c833fd7f5993cc667ac2904b50
MD5 846307b51cc8ac942b5535cc255e2d22
BLAKE2b-256 7a497f5580a4984843923ca61f1a9db17aa98749b75497c5a2af09d9499c9d6e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page