Skip to content

Henrize/v6match

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

v6match - Efficient CIDR blocks matching

GitHub License npm Version GitHub last commit

Features

  • 🌐 Widespread Support: v6match supports both IPv4 and IPv6 CIDR blocks, including IPv4-mapped IPv6 addresses.
  • 🚀 High Performance: With prefix tree based matching, v6match is designed to be fast and efficient. Perform 150,000+ match queries per second on a 1C/1G VPS.
  • 🔍 Large CIDR Block Support: v6match can handle thousands of CIDR blocks with ease.
  • 🛠️ Zero Dependencies: v6match keeps your project light with no external dependencies, making it simple to integrate and deploy.
  • Easy to Use: A straightforward API that gets you up and running with just a few lines of code.

Installation

npm i v6match

Usage

import { Matcher } from 'v6match';

const m = new Matcher();

m.add('2001:db8::/32');
m.has('2001:db8::1'); // true

API

Matcher.add(cidr: string): void

Add a CIDR block to the matcher. Supports both IPv4, IPv6 and IPv4-mapped IPv6 CIDR blocks.

m.add('127.0.0.1/8');
m.add('::FFFF:192.168.0.1/120');
m.add('2001:db8::/32');

Matcher.has(ip: string): boolean

Check if an IP address is in any of the CIDR blocks added to the matcher.

m.has('127.0.0.1'); // true
m.has('::FFFF:192.168.1.1'); // false
m.has('2001:db8::1'); // true

License

The MIT License

About

Efficient CIDR blocks matching for Node.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published