Releases: catnet-io/engine
Releases · catnet-io/engine
Release list
v0.3.0 — Event-Driven API
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.
v0.2.0
Changelog
0.2.0 - 2026-06-21
Added
- Topology Graph Support (
pkg/topology/): Complete network topology graph builder with gateway identification, device clustering by subnet, and graph export capabilities. - OS/Device Fingerprinting Enhancements:
- OUI (Organizationally Unique Identifier) module with zero-allocation lookup for MAC vendor identification.
- TTL (Time To Live) fingerprinting module for OS detection.
- Banner fingerprinting support for service identification.
- Comprehensive test suites and benchmarks for all fingerprinting modules.
- DevSecOps Documentation: Added
docs/devsecops.mdwith security practices, vulnerability scanning procedures, and fuzzing guidelines. - Enhanced CI/CD Infrastructure:
- Golangci-lint configuration (
.golangci.yml) with strict linting rules. - Dependabot automation for dependency updates (
dependabot.yml). - Fuzz testing CI workflow for automatic fuzzing on pull requests.
- Govulncheck PR workflow for automated vulnerability scanning.
- GPG-signed commit workflow for supply chain security.
- Automated develop→main merge workflow with GPG signing.
- Golangci-lint configuration (
Changed
- Performance Optimizations (Zero-Allocation Patterns):
- ⚡ ARP table parsing in MAC discovery now uses zero-allocation parsing.
- ⚡ VendorFromMAC lookup optimized for minimal memory allocations with dedicated benchmarks.
- ⚡ Subnet extraction (
/24) in topology builder uses zero-allocation string slicing. - ⚡ Topology graph edge keys replaced with zero-allocation struct keys, eliminating string concatenation overhead.
- Port Scanner Improvements: Enhanced port scanning logic with better concurrency handling and timeout calculations.
- CI Workflow Updates: Refactored CI workflows for better separation of concerns and improved maintainability.
- Dependency Updates:
actions/checkout: Bumped from v4 to v7 for enhanced features and security fixes.actions/setup-go: Bumped from v5 to v6 for improved Go version handling.
Fixed
- POSIX
osPingEnhancement: Improved timeout parameter handling to properly convert milliseconds to whole seconds for Linux (-Wflag) and milliseconds for macOS. - Golangci-lint Version Mismatch: Fixed CI compilation issue by compiling golangci-lint from source when necessary.
Security
- All commits are now GPG-signed via automated workflow for supply chain integrity.
- Added regular vulnerability scanning with
govulncheck. - Enhanced CI linting with golangci-lint and security-focused configuration.
v0.1.2
v0.1.0
Changelog
0.1.0 - 2026-06-02
Added
- pkg/scanner: DeviceInfo, ScanConfig, DefaultConfig, Sanitize
- pkg/scanner: validateIPv4, Ping, ReverseDNS, GetMAC, ScanPorts
- pkg/scanner: ParseRange com suporte a CIDR e dash range
- pkg/scanner: StartScan, StopScan com goroutines e cancelamento por context
- pkg/scanner: build tags separados para Windows (SendARP) e POSIX (arp)
- pkg/exporter: ExportJSON, ExportCSV, ExportXML com sanitização de injeção CSV
- CI: go vet + go test -race no GitHub Actions
- CI: govulncheck semanal