Skip to content

Halleck45/ast-metrics

Repository files navigation

AST Metrics

PhpMetrics

CI GitHub Release

AST Metrics is a blazing-fast static code analyzer. It provides metrics about your code, and helps you to identify potential problems early on.

Documentation | Contributing | Twitter





Preview

HTML report

Quick start

Open your terminal and run the following command:

ast-metrics analyze --report-html=<directory> /path/to/your/code

Installation

AST Metrics is a standalone package. It does not require any other software to be installed.

curl -s https://raw.githubusercontent.com/Halleck45/ast-metrics/main/scripts/download.sh|bash

or follow the detailled installation instructions.

Important

Please always read any script found on the internet before running it, and never use privileged access to run it.

Why?

Static code analysis is a game-changer for improving code quality. It helps you catch potential issues early, enforce coding standards, and gain deeper insights into your codebase.

With AST Metrics, you can:

  • Get a bird's-eye view of your project: Quickly identify overly complex code or tightly coupled classes that could slow down your development or introduce bugs.
  • Enforce architectural coherence: Ensure your code structure aligns with best practices—for instance, making sure your service layer doesn’t depend on your data access layer.

Whether you're maintaining an existing codebase or building a new one, AST Metrics empowers you to write better, more maintainable code.

Features

  • Designed for CI/CD. You can integrate it into your pipeline to check that your code meets your quality standards, You can integrate it into your CI pipelines, whether you're using GitHub Actions or GitLab CI.
  • Fast and efficient.
  • Provides simple and detailed reports.
  • Code analysis: cyclomatic complexity, maintainability, size...
  • Coupling analysis: instability, afferent coupling...
  • Activity analysis: number of commits, bus factor...
  • Easy to install: no dependencies, no configuration needed.

Read more in the documentation

Contributing

AST Metrics is experimental and actively developed. We welcome contributions.

Feel free to open a discussion. We love suggestions, ideas, bug reports, and other contributions.

If you'd like to contribute to the codebase, check out the contributing guide to get started.

We are looking for help to support new programming languages, stabilize the tool, and enrich it. Here is the list of supported languages:

  • PHP (PHP 5, PHP 7, =< PHP 8.1)
  • Golang
  • 👷 Python (partial)
  • 🕛 Dart
  • 🕛 Flutter
  • 🕛 TypeScript
  • 🕛 Java

License

AST Metrics is open-source software licensed under the MIT license