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.

# Note: Raw sockets require elevated privileges
sudo uv run netpulse-discovery scan 192.168.1.0/24 --timeout 500

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.2.tar.gz (20.5 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.2-cp38-abi3-win_amd64.whl (167.5 kB view details)

Uploaded CPython 3.8+Windows x86-64

netpulse_discovery-0.1.2-cp38-abi3-manylinux_2_34_x86_64.whl (311.4 kB view details)

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

netpulse_discovery-0.1.2-cp38-abi3-macosx_11_0_arm64.whl (273.4 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: netpulse_discovery-0.1.2.tar.gz
  • Upload date:
  • Size: 20.5 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.2.tar.gz
Algorithm Hash digest
SHA256 b030728679a8a5f2204e2cd7bca1cf3bc650519188e450a686d66ad4c8d57d0a
MD5 6aa9910b9a35475fc600dd9a8809b701
BLAKE2b-256 f008c3a9b5a2e2cb69fa2e9a11d0a4c7132e8253d4f41b61a8c7b5b48904a021

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netpulse_discovery-0.1.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7f3d8b2222575e8cd80067e2e20ce5035195046efa62834049f87531a2495baa
MD5 8d2746e278073fd9c324618bce2ddb36
BLAKE2b-256 8ffe940a251ba1218bc2295933676d746aee8f0ad0c479f84e518f2a67f5500b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netpulse_discovery-0.1.2-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d52b94d3682a92d264f5897bc3d7a8f7f8d455aa37f0205d5eee5bd019407d44
MD5 dfe4c01212bde01ed4776719746c7d26
BLAKE2b-256 d32263cde04a6f1097797c0e8aa4a04e620f44a5bfbc7f3261495e5bcea8b0e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netpulse_discovery-0.1.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a118ff564cf19adfcca423efb34f3c9a31aa190d38063f1710e7f1c9054581ff
MD5 7206a75c2921d32056733c60c6fcaee0
BLAKE2b-256 f7b5f41f19531eb1e05e8ac50505064972bfe7e2745894eddb8894210672a652

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