An open API service indexing awesome lists of open source software.

https://github.com/eredotpkfr/fipv

⚡ Fast IP validator with C language as a python module
https://github.com/eredotpkfr/fipv

c clang clang-format fast fast-ip-validator fast-validator fipv ip ipv4 ipv4-address ipv6 ipv6-address python python-validator valdiate-ipv4 validate-ipv6 validation validator

Last synced: 3 months ago
JSON representation

⚡ Fast IP validator with C language as a python module

Awesome Lists containing this project

README

          

[![Test](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml/badge.svg)](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml)
[![PyPI](https://img.shields.io/pypi/v/fipv)](https://pypi.org/project/fipv/)
[![Github Pages](https://img.shields.io/badge/github-pages-orange.svg)](https://www.erdoganyoksul.com/fipv/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fipv)
[![License: MIT](https://img.shields.io/badge/license-MIT-informational.svg)](https://opensource.org/licenses/MIT)
[![Stars](https://img.shields.io/github/stars/eredotpkfr/fipv?style=social)](https://github.com/eredotpkfr/fipv/stargazers)
# 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](https://www.erdoganyoksul.com/fipv/) for easy-to-follow documentation and package references

⚡ **Available Validators**
- IPv4
- IPv4 CIDR
- IPv6
- IPv6 CIDR

## Installation
```sh
$ pip3 install fipv
```
## Usage
### Basic Validation
```python
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
```python
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](https://www.erdoganyoksul.com)

Mail - erdoganyoksul3@gmail.com