Code Analysis

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

69 packages
  • credo 1.7.19

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

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

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

    381
    1.3m last 90 days
  • Functions useful for processing Erlang code.

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

    79
    532.5k last 90 days
  • styler 1.12.2

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

    808
    467.0k last 90 days
  • An analysis tool for checking safety of database migrations.

    303
    444.7k last 90 days
  • quokka 2.13.1

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

    172
    432.1k last 90 days
  • boundary 0.11.0

    Managing cross-module dependencies in Elixir projects.

    1.0k
    407.1k last 90 days
  • Erlang linter - rebar3 plugin

    44
    395.1k last 90 days
  • erlfmt 1.8.0

    erlfmt is an opinionated Erlang code formatter

    467
    380.5k last 90 days
  • ex_slop 0.4.5

    Credo checks that catch AI-generated code slop in Elixir

    171
    302.2k last 90 days
  • ex_dna 1.5.4

    Code duplication detector powered by Elixir AST analysis

    118
    285.7k last 90 days
  • ex_check 0.17.0

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

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

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

    69
    135.9k last 90 days
  • reach 2.8.4

    Program dependence graph for Elixir and Erlang

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

    98
    91.1k last 90 days
  • rebar3 plugin to format Erlang code a la `gofmt`

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

    54
    76.0k last 90 days
  • A Mix formatter that sorts your Tailwind classes

    129
    48.2k last 90 days
  • Generate an HTML report from dialyzer output

    6
    46.0k last 90 days
  • sql_fmt 0.5.0

    Pretty print SQL queries

    64
    43.9k 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.

    31
    36.0k last 90 days
  • Mix compiler tracer for detecting unused public functions

    229
    35.2k last 90 days
  • Credo checks for Ash Framework

    44
    31.2k 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.

    26
    29.5k last 90 days
  • Elixir formatter plugin for doctests.

    40
    26.0k last 90 days
  • Credo checks for Mox

    13
    23.4k last 90 days
  • An interface to the BEAM file format and a decompiler

    119
    20.9k last 90 days
  • recode 0.9.0

    An experimental linter with autocorrection.

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

    19
    18.3k last 90 days
  • dialyze 0.2.1

    Dialyzer Mix task

    81
    18.3k 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
    16.2k last 90 days
  • An Elixir semantic linter that detects performance issues and non-idiomatic code via AST analysis.

    78
    16.1k last 90 days
  • Beautiful, compiler-style diagnostic messages for Elixir

    12
    14.2k 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
    13.6k last 90 days
  • biomine 0.3.0

    Elixir bindings for the Biome formatter

    4
    13.3k last 90 days
  • eunomo 3.0.0

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

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

    380
    13.1k last 90 days
  • glinter 2.19.2

    A linter for the Gleam programming language with 22 configurable rules

    19
    12.1k last 90 days
  • Add option to credo to generate sonarqube generic issue file

    7
    10.8k last 90 days
  • ex_crap 0.1.1

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

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

    0
    9.6k 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
    8.8k last 90 days
  • Rebar3 Elvis plugin

    10
    8.8k last 90 days
  • assay 0.7.0

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

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

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

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

    19
    7.6k 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
    7.4k last 90 days
  • Duskmoon fork of Vize Elixir bindings — compile, lint, and format Vue SFCs via Rust NIFs.

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

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

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

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

    2
    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.

    533
    5.0k last 90 days
  • A Credo check for deprecated functions

    0
    4.9k last 90 days
  • dogma 0.1.16

    A code style linter for Elixir, powered by shame.

    468
    4.8k last 90 days
  • Xref Runner

    50
    4.7k last 90 days
  • One task to efficiently run all code analysis & testing tools in an Elixir project. Community-maintained fork of ex_check.

    4.7k 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.

    4
    4.5k last 90 days
  • churn 0.1.10

    Churn supports finding refactoring candidates in your code

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

    0
    4.1k last 90 days
  • Run quality checks (credo, dialyzer, coverage, etc) in parallel with actionable output. Useful with LLMs.

    0
    3.9k last 90 days
  • A Credo check to ensure hygenic domain boundaries.

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

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

    55
    3.7k last 90 days
  • lfmt 0.4.0

    A code formatter for LFE

    1
    3.5k last 90 days