repowiserepowise
Sign in
oisf/suricata
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowiseoisf/suricata
SU
SU

oisf / suricata

ccpprustmaina5ec441423.3K linessynced 2w ago

Code health

6.7out of 10Fair

This codebase scores 6.7 out of 10 for code health, which we rate fair. It also scores maintainability 5.5 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 54 of 1,680 files are git hotspots, and they average 3.3 — which is where the fixes pay off most.

Full health report →
Documentation3,355pages28 with model-written prose, 3,327 built from the indexScore validation6/2015.2× baselineTop-ranked files that did go on to need a bug fixDead code489exportsUnused exports that nothing in the graph reaches

Do next

1 thing worth doing in the week to Sep 17, the last indexed commit, 1 of them now.

Now

  • Critical

    Clean up what this week's commits left: 35 serious findings in 6 files

    6 commits in the last 7 days added or worsened them, and they are still open. Start with rust/src/nfs/nfs.rs, which has 9 critical.

    serious findings
    35
    critical
    11
    files
    6
    Medium effort

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
Lines of code
423.3K
Files
1,680
Symbols
33,027
Modules
13
Languages
8

Recent activity

All commits →

Commits

No commits indexed yet.

Decisions

  • swf: grow lzma output in one decoder passproposed · 2w ago
  • NFS: enforce OOO queue limits on chunk pathproposed · 2w ago
  • Extend xor transform with inline variable-position key syntaxproposed · 2w ago
  • ndpi: don't access flow storage directlyproposed · 2w ago
  • flowbits: deprecate toggle commandproposed · 2w ago
  • app-layer: treat pstate as non-NULLproposed · 2w ago
▸

Everything we found

6,932 open

Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.

  • worst item is critical severity. Code health4,968Untested hotspot · rust/src/http2/http2.rs60 findings · 9.6 deducted→
  • worst item is medium severity. Refactoring333decode_byte+1.5 health, M effort · rust/htp/src/utf8_decoder.rs→
  • worst item is medium severity. Decisions61rust/src/nfs/nfs.rs7 awaiting review · 54 hotspots ungoverned→
  • worst item is medium severity. Ownership1,564src/detect.c89% single-owner concentration, 16 commits in 90d→
  • worst item is low severity. Dead code6rust/htp/fuzz/fuzz_targets/fuzz_htp.rsUnreachable symbol (0 lines)→

Composition

Open the graph →
c 40%cpp 36%rust 20%
shell 2%python 1%Other 0%

Explore this codebase

  • Docs3,355 pages across 13 modules→
  • ChatAsk this codebase a question and get an answer with its sources.→
  • Files1,680 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 15 entry points→
  • Code healthPer-file scores, 5,205 open findings, coverage and refactoring targets→
  • Knowledge graphEntities, communities, and the paths between them→
  • Change couplingFiles that keep changing together, mined from commit history→
  • CommitsChange-risk ranked history with agent provenance→
  • ContributorsBus factor, per-file maintainers, and the human/agent split→
  • StatsSize class, origin, lifetime churn, rhythm and records→
  • CostsWhat indexing this snapshot cost, by model and by run.→