Code Analysis

Static analysis tools, linters, and code quality assessment libraries. Packages among the 3,000 most downloaded in the past 90 days.

68 packages
  • credo 1.7.19

    A static code analysis tool with a focus on code consistency and teaching.

    5.2k
    3.6m last 90 days
  • Mix tasks to simplify use of Dialyzer in Elixir projects.

    1.8k
    2.3m last 90 days
  • Utilities to work with Elixir source code.

    378
    754.3k last 90 days
  • Functions useful for processing Erlang code.

    18
    736.0k last 90 days
  • Core library for the Erlang style reviewer

    79
    455.8k last 90 days
  • styler 1.12.2

    A code-style enforcer that will just FIFY instead of complaining

    804
    389.6k last 90 days
  • An analysis tool for checking safety of database migrations.

    302
    383.7k last 90 days
  • erlfmt 1.8.0

    erlfmt is an opinionated Erlang code formatter

    466
    360.2k last 90 days
  • Erlang linter - rebar3 plugin

    44
    320.4k last 90 days
  • boundary 0.10.4

    Managing cross-module dependencies in Elixir projects.

    992
    283.3k last 90 days
  • ex_slop 0.4.4

    Credo checks that catch AI-generated code slop in Elixir

    151
    204.8k last 90 days
  • ex_dna 1.5.4

    Code duplication detector powered by Elixir AST analysis

    116
    194.0k last 90 days
  • ex_check 0.16.0

    One task to efficiently run all code analysis & testing tools in an Elixir project

    166.7k last 90 days
  • A rebar plugin for code formatting

    114
    139.7k last 90 days
  • A rebar plugin for dead code cleaning

    69
    125.5k last 90 days
  • quokka 2.13.1

    A Credo-configured code-style enforcer that will just fix it for you instead of complaining

    169
    96.5k last 90 days
  • rebar3 plugin to format Erlang code a la `gofmt`

    47
    73.1k last 90 days
  • A suite of checks to enforce naming best practices in an Elixir project.

    97
    65.3k last 90 days
  • reach 2.8.3

    Program dependence graph for Elixir and Erlang

    191
    61.4k last 90 days
  • A collection of opinionated Credo checks aimed at improving code quality and catching common mistakes in Elixir, Oban, and LiveView

    50
    48.5k last 90 days
  • Generate an HTML report from dialyzer output

    6
    46.6k last 90 days
  • A Mix formatter that sorts your Tailwind classes

    128
    43.2k last 90 days
  • Mix compiler tracer for detecting unused public functions

    230
    39.5k last 90 days
  • sql_fmt 0.5.0

    Pretty print SQL queries

    64
    32.1k last 90 days
  • Credo checks for Ash Framework

    40
    30.3k last 90 days
  • Elixir formatter plugin for doctests.

    40
    28.6k last 90 days
  • A set of community-maintained checks for the Credo static analysis tool. Many of the checks are implementations of rules from https://github.com/christopheradams/elixir_style_guide.

    25
    23.1k last 90 days
  • Custom Credo checks for detecting common Elixir/Phoenix anti-patterns including N+1 queries, missing error handling, blocking operations, telemetry gaps, and more. Provides 20 comprehensive static analysis checks to improve code quality.

    27
    21.9k last 90 days
  • recode 0.8.0

    An experimental linter with autocorrection.

    316
    18.9k last 90 days
  • eunomo 3.0.0

    Elixir `alias`, `import` and `require` sorter.

    18
    17.1k last 90 days
  • dialyze 0.2.1

    Dialyzer Mix task

    81
    16.3k last 90 days
  • An interface to the BEAM file format and a decompiler

    119
    15.9k last 90 days
  • Add-on for Credo for checking environment variables that get evaluated at Elixir compile time.

    19
    14.7k last 90 days
  • coverex 1.5.0

    Coverex is an Elixir Coverage tool used by mix. It provides tables with overviews of module and function coverage data, includings links to annotated source code files and supports coveralls.io.

    102
    12.9k last 90 days
  • A CI/CD tool for checking dependency license compatibility in Elixir projects. Reads license information from local hex metadata files and validates compatibility with your project's license using industry-standard rules.

    7
    12.7k last 90 days
  • Credo checks for Mox

    12
    11.9k last 90 days
  • A module for Custom Credo checks (extensions) in addition to the default checks.

    0
    11.5k last 90 days
  • Add option to credo to generate sonarqube generic issue file

    7
    11.1k last 90 days
  • assay 0.7.0

    A tool for running Dialyzer in incremental mode on Elixir projects.

    11
    10.8k last 90 days
  • An Elixir semantic linter that detects performance issues and non-idiomatic code via AST analysis.

    73
    10.1k last 90 days
  • churn 0.1.10

    Churn supports finding refactoring candidates in your code

    95
    9.7k last 90 days
  • biomine 0.3.0

    Elixir bindings for the Biome formatter

    4
    7.9k last 90 days
  • Elixir source code refactoring

    280
    7.7k last 90 days
  • Static analysis that detects bare Ecto mutations on Carbonite-tracked tables missing audit transactions. Catches the gap between adding a trigger and updating all write paths.

    0
    7.7k last 90 days
  • Custom Credo checks used by the Blitz Backend Elixir team

    17
    7.0k last 90 days
  • glinter 2.19.2

    A linter for the Gleam programming language with 22 configurable rules

    19
    6.7k last 90 days
  • Elixir NIF bindings for Tailwind CSS Oxide — fast parallel content scanning and candidate extraction.

    5
    6.3k last 90 days
  • Rebar3 Elvis plugin

    10
    6.1k last 90 days
  • A plugin for the lexical language server that enables Credo checks

    5.9k last 90 days
  • Credo check to identify cases where `Enum.reduce` can be simplified to other `Enum` functions

    20
    5.8k last 90 days
  • Infers types for expressions, effects and scope variables of EYG programs.

    364
    5.8k last 90 days
  • erlfmt formatter for Mix projects

    3
    5.7k last 90 days
  • Custom Credo checks targeting Enum anti-patterns LLMs commonly generate (filter |> map, map |> reject(is_nil), etc.)

    0
    5.5k last 90 days
  • A rebar3 plugin to run shellcheck on given shell scripts.

    2
    5.3k last 90 days
  • ex_crap 0.1.0

    Calculate Change Risk Anti-Patterns scores from cyclomatic complexity and test coverage.

    10
    5.3k last 90 days
  • Duskmoon fork of Vize Elixir bindings — compile, lint, and format Vue SFCs via Rust NIFs.

    65
    5.2k last 90 days
  • Fast and flexible runtime type-checking: Type checks are optimized by the compiler and types can be composed, re-used and turned into property-testing generators. TypeCheck also focuses on showing understandable messages on typecheck-failures.

    532
    4.9k last 90 days
  • A fork of the Elixir code formatter, with added freedom

    40
    4.8k last 90 days
  • Credo check to detect silent exception swallowing in rescue blocks. Enforces proper error handling by requiring logging, error reporting, or re-raising.

    1
    4.5k last 90 days
  • Cross-language code analysis library using unified MetaAST representation. Build mutation operators, purity analyzers, and complexity metrics once in Elixir and apply them across Python, JavaScript, Elixir, Ruby, Go, Rust, and more.

    3
    4.2k last 90 days
  • Erlang Code Formatter

    78
    4.1k last 90 days
  • dogma 0.1.16

    A code style linter for Elixir, powered by shame.

    468
    4.0k last 90 days
  • A check to ensure there are no compile time variables used across an Elixir project.

    0
    3.5k last 90 days
  • A code formatter for Surface, the component based library for Phoenix LiveView

    55
    3.4k last 90 days
  • A Credo check for deprecated functions

    0
    3.4k last 90 days
  • Binary pattern checks for Credo

    8
    3.2k last 90 days
  • A Credo check to ensure hygenic domain boundaries.

    0
    3.1k last 90 days
  • bond 1.19.0

    Design By Contract (DbC) for Elixir

    30
    3.0k last 90 days