e2immu is a static code analyser for Java, focusing on practical immutability.


Welcome to the e2immu documentation.

We recommend The Road to Immutability → as a first introduction to the project. This document is also available as PDF in the Concepts → section.

All downloads (sources, jars) can be found on e2immu’s GitHub page →.

The e2immu project tries to be two things at the same time:

  • it aspires to be educational: large software projects are easier to maintain when code is highly compartimentalised. Knowing where modifications to objects take place is crucial. e2immu introduces simple concepts such as containers, eventually immutable, and effectively immutable classes to help you manage modification better.

  • it provides a static code analyser to help you enforce the use of these concepts in your code base. Obviously, its implementation tries to follow all the recommendations!


The e2immu analyser is not ready yet. While all concepts are stable, the analyser is not robust enough yet to be applied in production settings.

As of 2023, the analyser provides the foundation of CodeLaser →’s flagship product JFocus →. As such, it is receiving the necessary attention to evolve towards a production release.


Please consider contributing to this open source project. You can make valuable contributions, according to your specialisation, interests and capabilities. Read more here →.


No time to contribute, but you think this project may be worthwhile? IBTECH BV, a limited company under Belgian law, can write invoices to improve aspects of the analyser of your choice. Please contact Bart Naudts.

Edit this page on GitHub