WhatsApp/eqwalizer

A type-checker for Erlang

Scala

547

696 commits

updated Jun 26, 2026

See the code

README

eqWAlizer

A type-checker for Erlang.

[!IMPORTANT] The eqWAlizer repository is moving into ELP (Erlang Language Platform). Please use the erlang-language-platform repository for issues and pull requests.

eqWAlizer logo

Using it with rebar3 projects

eqWAlizer is integrated and distributed with ELP (Erlang Language Platform).

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Add eqwalizer_support dependency to your rebar3 project definition (see below)
  4. From the project directory run:
  • elp eqwalize <module> to type-check a single module
  • elp eqwalize-all to type-check all src modules in the project

Adding eqwalizer_support:

{deps, [
  {eqwalizer_support,
    {git_subdir,
        "https://github.com/whatsapp/erlang-language-platform.git",
        {branch, "main"},
        "eqwalizer/eqwalizer_support"}}
]}.

Using it with non-rebar projects

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Write a project.json file describing your project.
  4. From the project directory, assuming your .json file is called project.json run:
  • elp eqwalize <module> --project project.json to type-check a single module
  • elp eqwalize-all --project project.json to type-check all src modules in the project

FAQ

Please refer to the FAQ document for answers to some common questions, including:

  • What's the difference between eqWAlizer and Dialyzer?
  • Why not extend Dialyzer, rather than creating a new tool?
  • What about Elixir?

Where can I learn more about eqWAlizer, its technical principles, its relation to dialyzer and elixir support feasibility?

here.

License

eqWAlizer is Apache licensed.

WhatsApp/eqwalizer

A type-checker for Erlang

Scala

547

696 commits

updated Jun 26, 2026

See the code

README

eqWAlizer

A type-checker for Erlang.

[!IMPORTANT] The eqWAlizer repository is moving into ELP (Erlang Language Platform). Please use the erlang-language-platform repository for issues and pull requests.

eqWAlizer logo

Using it with rebar3 projects

eqWAlizer is integrated and distributed with ELP (Erlang Language Platform).

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Add eqwalizer_support dependency to your rebar3 project definition (see below)
  4. From the project directory run:
  • elp eqwalize <module> to type-check a single module
  • elp eqwalize-all to type-check all src modules in the project

Adding eqwalizer_support:

{deps, [
  {eqwalizer_support,
    {git_subdir,
        "https://github.com/whatsapp/erlang-language-platform.git",
        {branch, "main"},
        "eqwalizer/eqwalizer_support"}}
]}.

Using it with non-rebar projects

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Write a project.json file describing your project.
  4. From the project directory, assuming your .json file is called project.json run:
  • elp eqwalize <module> --project project.json to type-check a single module
  • elp eqwalize-all --project project.json to type-check all src modules in the project

FAQ

Please refer to the FAQ document for answers to some common questions, including:

  • What's the difference between eqWAlizer and Dialyzer?
  • Why not extend Dialyzer, rather than creating a new tool?
  • What about Elixir?

Where can I learn more about eqWAlizer, its technical principles, its relation to dialyzer and elixir support feasibility?

here.

License

eqWAlizer is Apache licensed.

Significant stargazers

(top 24 of 46)

Michael Klishin

2,018 followers · starred Aug 2022

Tristan Sloughter

526 followers · starred Feb 2023

Dmitrii Kovanikov

1,789 followers · starred Aug 2022

Alan Zimmerman

404 followers · starred Aug 2022