StalkerMap
A comprehensive Rust library for building CLI network scanner applications with robust input validation, terminal interaction, and URL parsing capabilities.
Overview
StalkerMap provides the foundational utilities needed to create interactive command-line network scanning tools. The library emphasizes safety, performance, and ease of use through Rust's type system and zero-dependency design.
Features
Currently Available
- Input Sanitization & Validation - Type-safe input validation with composable filters
- Interactive Terminal Interface - User-friendly CLI input with validation loops
- URL Parsing - Comprehensive HTTP/HTTPS URL parsing with host validation
Planned Features
- DNS Queries - Resolve hostnames and perform DNS lookups
- Port Scanning - Efficient port scanning with customizable options
- Directory Enumeration - Web directory and file discovery
- Report Generation - Export scan results to various formats
Quick Start
Add this to your Cargo.toml:
[]
= "0.1.0"
Usage Examples
Basic Input & Range Validation
use ;
// Get validated user input with range checking
let threads = ask;
println!;
URL Parsing and Validation
use UrlParser;
// Parse and validate URLs
match new
Complex Input Validation
use ;
// Multiple validation rules
let choice = ask;
Complete Interactive URL Input Example
This example demonstrates the complete workflow of getting user input, validating it, and parsing URLs - perfect for network scanner applications:
use ;
Architecture
The library is designed with modularity and composability in mind:
utils- Core utilities for input handling and URL parsingdns- DNS resolution and query utilities (planned)scanner- Port scanning and network discovery (planned)reporter- Report generation and export (planned)
Supported URL Formats
- HTTP/HTTPS schemes
- IPv4 and IPv6 addresses
- DNS hostnames
- Custom ports
- Paths and query strings
Error Handling
All operations return Result<T, E> types for safe error handling:
use ;
match new
CLI Application
This repository also includes a CLI application demonstrating the library usage:
# Clone and run
Contributing
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
See CHANGELOG.md for a list of changes and version history.