NetPulse Subnet
High-performance, standalone Python library & CLI for IPv4 & IPv6 network calculations, FLSM splitting, and VLSM allocation.
Overview
netpulse-subnet is a standalone network administration tool extracted from the larger NetPulse discovery suite. It helps network engineers programmatically calculate, partition, and optimize IPv4 and IPv6 address spaces natively in Python or directly from the terminal.
Key Features
- Dual-Stack Support: Robust handling of both IPv4 and 128-bit IPv6 subnets.
- Subnet Calculator (
info): Deep visibility into IP boundaries, subnet masks, wildcard masks, and binary representation. - Fixed-Length Subnet Splitter (
split): Flawlessly chunk large network blocks based on exact host requirements or target partition counts. - Variable-Length Planner (
vlsm): Mathematically sort varying host requirements into the tightest fitting CIDR blocks dynamically to eliminate IP wastage. - Conflict Detection (
validate): Ingest massive lists of legacy subnets and instantly detect routing clashes using a high-speed O(N log N) line-sweep algorithm. - REST API Enabled: Run the built-in FastAPI uvicorn wrapper to serve subnet calculation logic dynamically to web dashboards or automation scripts.
Installation
Install globally or locally via pip:
pip install netpulse-subnet
Quick Start (CLI)
# Calculate detailed subnet boundaries for an IP
netpulse-subnet info 192.168.1.50/24
# Optimize and allocate VLSM blocks from a /24 parent network
netpulse-subnet vlsm 192.168.1.0/24 --req "HR=120,Dev=50,Sales=20,Guest=10"
# Validate a list of subnets to ensure no overlap, and calculate free space
netpulse-subnet validate 192.168.1.0/24 192.168.1.128/25 --parent 192.168.1.0/23
Python Integration
Use cleanly typed Pydantic models natively inside your own tools:
from netpulse.subnet.services.subnet import calculate_subnet_info, validate_subnets
# Retrieve detailed boundary models
info = calculate_subnet_info("192.168.1.50", "24")
print(f"Broadcast IP: {info.broadcast_address}")
# Validate for overlaps and free space
valid = validate_subnets(["10.0.0.0/24", "10.0.1.0/24"], parent_network="10.0.0.0/22")
print(f"Conflicts: {valid.has_overlaps}")
Documentation
For full API references, algorithms, and documentation, visit the Official GitHub Repository.
Metadata
Release files for netpulse-subnet 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| netpulse_subnet-0.1.5.tar.gz | 655.0 kB | Without provenance | Details for netpulse_subnet-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| netpulse_subnet-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for netpulse_subnet-0.1.5-py3-none-any.whl |
Total release size: 677.9 kB
Release files / netpulse_subnet-0.1.5.tar.gz
| Download URL | netpulse_subnet-0.1.5.tar.gz |
|---|---|
| Size | 655.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec8d3c00fe918fa9b2a25110debe9543a2b5206be45201deb2943a5f3fdd868c
|
|
BLAKE2b-256 checksum How to use checksums |
37083f9882e201376fbefb90da8f89585d699527ddc967cc9167ee3d7567bfab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / netpulse_subnet-0.1.5-py3-none-any.whl
| Download URL | netpulse_subnet-0.1.5-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c158f87b386c86bfcc78c4838d5e23a7142afb7fca5b2b774a6284026197d4b6
|
|
BLAKE2b-256 checksum How to use checksums |
68dc3cacce00b7b6bbe10256a1bbe4519c60aee12fb4ded7677c5cee9a00d900
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for netpulse-subnet 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.