Effective and Eventual Immutability: a Static Code Analyser for Java

e2immu is a static code analyser for Java. It offers practical definitions of modification and immutability, to help you write code that lasts longer.

Get started

LGPL v3 licensed. GitHub v0.6.2

Write better code

The real purpose of a code analyser is to help you write better code, either by correcting you, or inspiring you.

Immutable Containers

Read about some of the concepts introduced by e2immu in The Road to Immutability, whether you are a novice at Java, or a life-long enthousiast.

Practical Immutability

e2immu provides practical definitions for immutability, and helps you maintain a balance between object orientend and functional paradigms.

Customizable Annotated APIs

Bend, or sharpen, the modification rules yourself: Annotated APIs determine how you view library code.


A plugin for IntelliJ lets you see the immutability status of your classes in your IDE. The Gradle plugin runs the analyser.

No magic!

Learn the concepts and use the support classes. The analyser is there to help, but it is not required.