Summary
Add CSV and SQLite export formats alongside the existing terminal and JSON reporters.
Requirements
CSV Reporter
- Implement
Reporter trait in src/reporter/csv.rs
- Export findings as CSV rows (one finding per row)
- Export summary stats as a separate CSV section or file
- Use the
csv crate (already in dependencies)
SQLite Reporter
- Implement
Reporter trait in src/reporter/sqlite.rs
- Create tables:
findings, summary, hosts, protocols, services
- Use
rusqlite crate (needs to be added to Cargo.toml)
- Support
--sqlite <path> CLI flag
Acceptance Criteria
Summary
Add CSV and SQLite export formats alongside the existing terminal and JSON reporters.
Requirements
CSV Reporter
Reportertrait insrc/reporter/csv.rscsvcrate (already in dependencies)SQLite Reporter
Reportertrait insrc/reporter/sqlite.rsfindings,summary,hosts,protocols,servicesrusqlitecrate (needs to be added to Cargo.toml)--sqlite <path>CLI flagAcceptance Criteria
CsvReporterimplementsReporter, outputs valid CSVSqliteReportercreates a queryable .db file--output-format csvand--sqliteCLI flags