https://github.com/WhatsApp/eqwalizer
A type-checker for Erlang
https://github.com/WhatsApp/eqwalizer
Last synced: about 1 month ago
JSON representation
A type-checker for Erlang
- Host: GitHub
- URL: https://github.com/WhatsApp/eqwalizer
- Owner: WhatsApp
- License: apache-2.0
- Created: 2022-06-22T08:57:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T08:05:05.000Z (6 months ago)
- Last Synced: 2024-10-29T15:31:58.396Z (6 months ago)
- Language: Scala
- Homepage:
- Size: 2.07 MB
- Stars: 513
- Watchers: 28
- Forks: 28
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-ccamel - WhatsApp/eqwalizer - A type-checker for Erlang (Scala)
README
# eqWAlizer
A type-checker for Erlang.
## Using it with rebar3 projects
eqWAlizer is integrated and distributed with ELP (Erlang Language Platform).
1. Use OTP 26 or higher.
2. [Install ELP](https://whatsapp.github.io/erlang-language-platform/docs/get-started/install/).
3. [Add](https://whatsapp.github.io/erlang-language-platform/docs/get-started/configure-project/rebar3/) `eqwalizer_support` dependency
to your rebar3 project definition (see below)
4. From the project directory run:
- `elp eqwalize ` to type-check a single module
- `elp eqwalize-all` to type-check all `src` modules in the projectAdding `eqwalizer_support`:
```
{deps, [
{eqwalizer_support,
{git_subdir,
"https://github.com/whatsapp/eqwalizer.git",
{branch, "main"},
"eqwalizer_support"}}
]}.
```## Using it with non-rebar projects
1. Use OTP 26 or higher.
2. [Install ELP](https://whatsapp.github.io/erlang-language-platform/docs/get-started/install/).
3. [Write a `project.json`](https://whatsapp.github.io/erlang-language-platform/docs/get-started/configure-project/custom-project/) file describing your project.
4. From the project directory, assuming your `.json` file is called `project.json` run:
- `elp eqwalize --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](./FAQ.md) 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](https://www.beamrad.io/35).
## License
eqWAlizer is [Apache licensed](./LICENSE).