Skip to content

v0.3.0 — Event-Driven API

Latest

Choose a tag to compare

@mendsec mendsec released this 24 Jun 20:18
62da8c4

v0.3.0 - 2026-06-24

Added

  • pkg/results: \HostResult\ — canonical host result type with \Alive/\OpenPorts\ and JSON tags \�live/\open_ports. Replaces \DeviceInfo\ as interchange format for the event-driven API.
  • pkg/results: \HostResult.ToDeviceInfo()\ — conversion for compatibility with \DeviceInfo.
  • pkg/profile: \ScanProfile, \DefaultProfile, \Sanitize\ — scan configuration with \DefaultPorts, \Concurrency, \TimeoutMs\ and JSON tags.
  • pkg/events: \Event, \EventType\ (string-based), \HostDiscoveredData, \ProgressData\ — async event system via channel.
  • pkg/export: \ExportJSON, \ExportCSV\ for []results.HostResult\ with CSV sanitization.
  • pkg/scan: \Engine, \NewEngine, \ScanStream, \Stop\ — event-driven orchestrator delegating scan logic to \pkg/engine.
  • pkg/scan: \Ping, \ReverseDNS, \GetMAC, \ScanPorts\ — delegation wrappers for \pkg/discovery\ and \pkg/ports.
  • Tests: Tests for all new packages (\pkg/results, \pkg/events, \pkg/profile, \pkg/export, \pkg/scan).

Changed

  • pkg/results/HostResult: Changed from type alias to \DeviceInfo\ to independent struct with \Alive/\OpenPorts\ fields and JSON tags (\�live/\open_ports). Existing code using \DeviceInfo\ is unaffected.
  • pkg/events/EventType: Changed from \int\ (iota) to \string\ for easier serialization in Wails and TUI frontends.

Notes

  • \pkg/engine, \pkg/discovery, \pkg/ports, \pkg/exporter, \pkg/fingerprint, \pkg/topology, \pkg/coreerr\ preserved unchanged.
  • No external dependencies added — stdlib Go only.