Skip to content

eredotpkfr/fipv

Repository files navigation

Test PyPI Github Pages PyPI - Python Version License: MIT Stars

fipv

It stands out as a high-speed Python package meticulously built in C language 🤙 It elegantly consolidates core IP address validation functions into a robust C-based implementation, ensuring unparalleled speed compared to alternatives

🎯 Key Features

  • 🚀 Efficiency and Performance: The C-based implementation of fipv guarantees exceptional speed and minimal RAM usage, making it a top choice for high-performance IP address validation in Python applications
  • 📚 Simplified Usage: Explore github pages for easy-to-follow documentation and package references

Available Validators

  • IPv4
  • IPv4 CIDR
  • IPv6
  • IPv6 CIDR

Installation

$ pip3 install fipv

Usage

Basic Validation

import fipv

# Basic C validation functions
print(
    fipv.ipv4("127.0.0.1"),
    fipv.ipv4_cidr("127.0.0.1/44"),
    fipv.ipv6("::1"),
    fipv.ipv6_cidr("::1/129"),
)

# Output
# True False True False

Bulk Validation

import fipv

# Validate bulk IPv4 data
ips = ['127.0.0.1'] * 1000000
valids = [ip for ip in ips if fipv.ipv4(ip)]
print(len(valids))

# Output
# 1000000

Test Benchmark (2021-10-07)

In this test, it was tested validation speed and average RAM usage with different python validators and different data types. Finally results saved to below table

🟢 Valid 🔴 Invalid

Test ID Test Data Count Total Data Data Type Project Validation Duration Avr. RAM Usage (MB)
1 🟢 500K 1M IPv4 validators 0m12,975s 85M
🔴 500K ipaddress 0m2,007s 80M
N/A N/A fipv 0m0,635s 76M
2 🟢 1M 2M IPv4 validators 0m25,682s 151M
🔴 1M ipaddress 0m3,937s 154M
N/A N/A fipv 0m1,193s 150M
3 🟢 500K 1M IPv4 CIDR validators 0m19,721s 96M
🔴 500K ipaddress 0m8,662s 89M
N/A N/A fipv 0m0,909s 77M
4 🟢 1M 2M IPv4 CIDR validators 0m39,457s 179M
🔴 1M ipaddress 0m17,029s 174M
N/A N/A fipv 0m1,779s 174M
5 🟢 500K 1M IPv6 validators 0m12,633s 96M
🔴 500K ipaddress 0m2,802s 92M
N/A N/A fipv 0m0,684s 87M
6 🟢 1M 2M IPv6 validators 0m26,449s 183M
🔴 1M ipaddress 0m5,605s 177M
N/A N/A fipv 0m1,308s 172M
7 🟢 500K 1M IPv6 CIDR validators 0m20,936s 99M
🔴 500K ipaddress 0m10,778s 95M
N/A N/A fipv 0m0,958s 93M
8 🟢 1M 2M IPv6 CIDR validators 0m51,382s 184M
🔴 1M ipaddress 0m25,563s 184M
N/A N/A fipv 0m1,862s 168M

Contact

Blog - erdoganyoksul.com
Mail - erdoganyoksul3@gmail.com