Skip to main content

High-speed network discovery and drift analysis engine

Project description

NetPulse Discovery Logo

NetPulse Discovery

Python Rust Build Status

NetPulse Discovery is a high-performance, asynchronous network mapping and drift-analysis engine. By offloading packet-level networking to a compiled Rust core, it achieves near wire-speed execution while maintaining a flexible, developer-friendly Python API.

🚀 Key Features

  • Blazing Fast Scans: Leverages libpcap and raw sockets in Rust to execute ARP and ICMP sweeps orders of magnitude faster than standard Python libraries.
  • Asynchronous Port Scanning: Native asyncio TCP connect scanner that can check hundreds of ports across multiple devices concurrently.
  • Drift Detection: Built-in intelligence to compare historical scans and calculate exact topological drift (e.g., "Host 192.168.1.5 went offline").
  • MAC Vendor Resolution: Automatically translates hardware MAC addresses into human-readable manufacturer names.
  • Standalone API & CLI: Usable as a Python library, a Typer-powered CLI, or a FastAPI REST microservice.

📦 Installation

NetPulse Discovery is distributed as a pre-compiled binary wheel. It is entirely self-sufficient and requires no Rust compiler or external dependencies to install!

pip install netpulse-discovery

⚡ Quickstart

As a CLI Tool

The standalone CLI returns structured JSON output perfect for piping into jq or other tools. You can also export directly to files!

[!IMPORTANT] Multiplatform Execution: Low-level network scanning requires elevated privileges.

  • Linux / macOS: Prefix your commands with sudo
  • Windows: Open an Administrator Command Prompt or PowerShell session to execute.
# Scan a network
sudo netpulse-discovery scan 192.168.1.0/24 --timeout 500

# Export results directly to a file
sudo netpulse-discovery scan 192.168.1.0/24 --output results.json
sudo netpulse-discovery scan 192.168.1.0/24 --output results.yaml
sudo netpulse-discovery scan 192.168.1.0/24 --output results.txt

# Calculate Network Drift from two exported JSON files (No sudo required)
netpulse-discovery drift old_results.json results.json --output drift_report.yaml

As a Standalone REST API

You can spin up a dedicated, hyper-fast FastAPI server instantly:

netpulse-discovery serve --port 8000

Then send requests to http://localhost:8000/discovery/scan or http://localhost:8000/discovery/drift/compare.

As a Python Library

Embed the high-performance engine directly into your own applications:

import asyncio
from netpulse.discovery.services.discovery import DiscoveryService
from netpulse.discovery.models.discovery import DiscoveryMethod

async def main():
    service = DiscoveryService()
    # Scans the network using ARP resolution
    result = await service.discover_network(
        "10.0.0.0/24", 
        methods=[DiscoveryMethod.ARP]
    )
    
    for device in result.devices:
        print(f"[{device.ip}] {device.mac} - {device.vendor}")

asyncio.run(main())

📚 Documentation

For more detailed guides, check out the docs/ folder:

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

netpulse_discovery-0.1.4.tar.gz (22.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

netpulse_discovery-0.1.4-cp38-abi3-win_amd64.whl (169.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

netpulse_discovery-0.1.4-cp38-abi3-manylinux_2_34_x86_64.whl (313.0 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

netpulse_discovery-0.1.4-cp38-abi3-macosx_11_0_arm64.whl (275.1 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

Details for the file netpulse_discovery-0.1.4.tar.gz.

File metadata

  • Download URL: netpulse_discovery-0.1.4.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for netpulse_discovery-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9cbfcf514fefe61feec7ff0b13d40e7c322498b02f8197465d5e17b20a214905
MD5 961c8e98a75e71beadbe13308d856a88
BLAKE2b-256 0b3a6505413a39818f36999d86766544b8b274d116915c20e39c8ae4a2b8e498

See more details on using hashes here.

File details

Details for the file netpulse_discovery-0.1.4-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for netpulse_discovery-0.1.4-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a26a2f8f7e4f822f0a920fa9cd64fcf60c83cbf0b960f40f745083d715587cf0
MD5 7a96bbbc890e89dfc544d72305a9b28c
BLAKE2b-256 1d30cc9ba206958568078f56c28197365463efb758cf976bf32d8214a02b758b

See more details on using hashes here.

File details

Details for the file netpulse_discovery-0.1.4-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for netpulse_discovery-0.1.4-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 60cf071ae97fd488a6a1a26a6a8240b4684372dc2fb051a42e697cc00f074da3
MD5 e3c68cbc8776bfbf8422dd8aedc6efcd
BLAKE2b-256 0273644e07cf8acd8c5cc104a18017dcf0826993017eae278951cac58f26cfe5

See more details on using hashes here.

File details

Details for the file netpulse_discovery-0.1.4-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for netpulse_discovery-0.1.4-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc160398822fd3f181cd48e4480de287a09aae932cc0e49939fa21f3eb6f73a9
MD5 df63e5438d5b035f7403f45e15cbddc5
BLAKE2b-256 e448bf129d416e8fb90c42b9f7dd98f4b026bff1042fc296d67ab44bd4d70d76

See more details on using hashes here.

Supported by

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