apache / opendal
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
mdx
txt
mjs
hs
ml
pyi
lua
zig
mli
mod
csproj
properties
npmignore
rockspec
editorconfig
npmrc
clang-format
jinja2
cmd
gitattributes
cabal
ini
pub
prettierignore
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main81765 LOC (64%) 820 files
test10458 LOC (8%) 139 files
generated2477 LOC (1%) 2 files
build and deployment11217 LOC (8%) 12 files
other20887 LOC (16%) 236 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pyi
hs
zig
mli
ml
cabal
jinja2
rockspec
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 820 files match defined criteria (81,765 LOC, 100.0% vs. main code):
    • 643 *.rs files (68,311 LOC)
    • 36 *.java files (3,129 LOC)
    • 37 *.toml files (2,317 LOC)
    • 14 *.go files (1,708 LOC)
    • 10 *.js files (1,043 LOC)
    • 4 *.pyi files (876 LOC)
    • 5 *.dart files (776 LOC)
    • 3 *.hs files (727 LOC)
    • 2 *.zig files (508 LOC)
    • 10 *.py files (467 LOC)
    • 3 *.d files (280 LOC)
    • 1 *.h files (207 LOC)
    • 3 *.mli files (200 LOC)
    • 5 *.cpp files (199 LOC)
    • 6 *.hpp files (190 LOC)
    • 4 *.ml files (120 LOC)
    • 3 *.swift files (113 LOC)
    • 5 *.xml files (94 LOC)
    • 1 *.ts files (90 LOC)
    • 7 *.rb files (85 LOC)
    • 1 *.cabal files (76 LOC)
    • 1 *.cs files (37 LOC)
    • 1 *.php files (33 LOC)
    • 1 *.jinja2 files (28 LOC)
    • 1 *.rdf files (28 LOC)
    • 1 *.gemspec files (27 LOC)
    • 3 *.yaml files (26 LOC)
    • 1 *.rockspec files (24 LOC)
    • 1 *.tsx files (22 LOC)
    • 3 *.lua files (12 LOC)
    • 3 *.sql files (9 LOC)
    • 1 *.c files (3 LOC)
  • " *.rs" is biggest, containing 83.55% of LOC.
  • " *.c" is smallest, containing 0% of LOC.


*.rs68311 LOC (83%) 643 files
*.java3129 LOC (3%) 36 files
*.toml2317 LOC (2%) 37 files
*.go1708 LOC (2%) 14 files
*.js1043 LOC (1%) 10 files
*.pyi876 LOC (1%) 4 files
*.dart776 LOC (<1%) 5 files
*.hs727 LOC (<1%) 3 files
*.zig508 LOC (<1%) 2 files
*.py467 LOC (<1%) 10 files
*.d280 LOC (<1%) 3 files
*.h207 LOC (<1%) 1 file
*.mli200 LOC (<1%) 3 files
*.cpp199 LOC (<1%) 5 files
*.hpp190 LOC (<1%) 6 files
*.ml120 LOC (<1%) 4 files
*.swift113 LOC (<1%) 3 files
*.xml94 LOC (<1%) 5 files
*.ts90 LOC (<1%) 1 file
*.rb85 LOC (<1%) 7 files
*.cabal76 LOC (<1%) 1 file
*.cs37 LOC (<1%) 1 file
*.php33 LOC (<1%) 1 file
*.jinja228 LOC (<1%) 1 file
*.rdf28 LOC (<1%) 1 file
*.gemspec27 LOC (<1%) 1 file
*.yaml26 LOC (<1%) 3 files
*.rockspec24 LOC (<1%) 1 file
*.tsx22 LOC (<1%) 1 file
*.lua12 LOC (<1%) 3 files
*.sql9 LOC (<1%) 3 files
*.c3 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
mjs
hs
ml
zig
lua
csproj
pub
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/vitest[.].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
  • 139 files match defined criteria (10,458 LOC, 12.8% vs. main code):
    • 33 *.rs files (4,847 LOC)
    • 37 *.java files (1,962 LOC)
    • 11 *.go files (1,002 LOC)
    • 20 *.py files (891 LOC)
    • 7 *.cpp files (436 LOC)
    • 7 *.mjs files (381 LOC)
    • 7 *.rb files (265 LOC)
    • 4 *.php files (139 LOC)
    • 2 *.hs files (124 LOC)
    • 1 *.ml files (90 LOC)
    • 1 *.zig files (83 LOC)
    • 1 *.lua files (67 LOC)
    • 1 *.d files (66 LOC)
    • 1 *.dart files (34 LOC)
    • 1 *.csproj files (24 LOC)
    • 1 *.swift files (19 LOC)
    • 2 *.cs files (15 LOC)
    • 1 *.hpp files (12 LOC)
    • 1 *.pub files (1 LOC)
  • " *.rs" is biggest, containing 46.35% of LOC.
  • " *.pub" is smallest, containing 0.01% of LOC.


*.rs4847 LOC (46%) 33 files
*.java1962 LOC (18%) 37 files
*.go1002 LOC (9%) 11 files
*.py891 LOC (8%) 20 files
*.cpp436 LOC (4%) 7 files
*.mjs381 LOC (3%) 7 files
*.rb265 LOC (2%) 7 files
*.php139 LOC (1%) 4 files
*.hs124 LOC (1%) 2 files
*.ml90 LOC (<1%) 1 file
*.zig83 LOC (<1%) 1 file
*.lua67 LOC (<1%) 1 file
*.d66 LOC (<1%) 1 file
*.dart34 LOC (<1%) 1 file
*.csproj24 LOC (<1%) 1 file
*.swift19 LOC (<1%) 1 file
*.cs15 LOC (<1%) 2 files
*.hpp12 LOC (<1%) 1 file
*.pub1 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*_generated[.][a-z]+".
  • 2 files match defined criteria (2,477 LOC, 3.0% vs. main code):
    • 1 *.rs files (1,456 LOC)
    • 1 *.dart files (1,021 LOC)
  • " *.rs" is biggest, containing 58.78% of LOC.
  • " *.dart" is smallest, containing 41.22% of LOC.


*.rs1456 LOC (58%) 1 file
*.dart1021 LOC (41%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/pnpm.*[.]ya?ml".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/[.]gitattributes".
  • 12 files match defined criteria (11,217 LOC, 13.7% vs. main code):
    • 2 *.yaml files (10,674 LOC)
    • 5 *.xml files (442 LOC)
    • 4 *.sh files (79 LOC)
    • 1 *.csproj files (22 LOC)
  • " *.yaml" is biggest, containing 95.16% of LOC.
  • " *.csproj" is smallest, containing 0.2% of LOC.


*.yaml10674 LOC (95%) 2 files
*.xml442 LOC (3%) 5 files
*.sh79 LOC (<1%) 4 files
*.csproj22 LOC (<1%) 1 file
Other Code
txt
ini
mdx
mod
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*/[.]npmignore".
    • files with paths like ".*[.]npmrc".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]mdx".
  • 236 files match defined criteria (20,887 LOC, 25.5% vs. main code):
    • 188 *.md files (14,981 LOC)
    • 7 *.txt files (4,456 LOC)
    • 17 *.json files (441 LOC)
    • 9 *.rs files (290 LOC)
    • 1 *.svg files (279 LOC)
    • 1 *.ini files (105 LOC)
    • 2 *.mdx files (96 LOC)
    • 3 *.toml files (78 LOC)
    • 2 *.mod files (57 LOC)
    • 2 *.c files (45 LOC)
    • 1 *.cpp files (18 LOC)
    • 1 *.js files (17 LOC)
    • 1 *.properties files (17 LOC)
    • 1 *.dart files (7 LOC)
  • " *.md" is biggest, containing 71.72% of LOC.
  • " *.dart" is smallest, containing 0.03% of LOC.


*.md14981 LOC (71%) 188 files
*.txt4456 LOC (21%) 7 files
*.json441 LOC (2%) 17 files
*.rs290 LOC (1%) 9 files
*.svg279 LOC (1%) 1 file
*.ini105 LOC (<1%) 1 file
*.mdx96 LOC (<1%) 2 files
*.toml78 LOC (<1%) 3 files
*.mod57 LOC (<1%) 2 files
*.c45 LOC (<1%) 2 files
*.cpp18 LOC (<1%) 1 file
*.js17 LOC (<1%) 1 file
*.properties17 LOC (<1%) 1 file
*.dart7 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 20:37