Skip to main content

e-footprint model

A toolkit for exhaustively modeling the environmental impact of digital services.

The current perimeter is the carbon footprint associated with the fabrication and usage of servers, storage, network (usage only) and end-user devices necessary for the existence of a web digital service. It is also now possible to model the production of edge devices (like video game consoles, smartphones, servers, etc.) and describe the unitary usage by device over its usage phase, to get the environmental footprint of the deployed fleet. Edge devices support hierarchical grouping via EdgeDeviceGroup with per-component unit multiplicity (nb_of_units), enabling complex fleet structures with nested device and sub-group counts.

Other environmental impacts (water, rare earth metals, etc.) will be added soon through an integration with the Boavizta API, and the lifecycle phases of device transportation and end of life are currently considered negligible.

Getting started

Python support policy

e-footprint requires Python >= 3.12, with no cap on 3.x minor versions: it follows a rolling window where "supported" means the latest Python minor versions for which every compiled dependency ships wheels. Today that's 3.12 and 3.13; the next minor is added once its wheels land. The <4.0 bound in requires-python is a major-series guard, not a ceiling on the rolling window.

Installation

Check out INSTALL.md.

Documentation

Here is the link to the e-footprint documentation. There you will find a description of all the e-footprint objects, their parameters, the relationship between the objects and the calculated attributes and their graphs.

Graphical interface

You can explore the model’s graphical interface, which is also open source and found in the Boavizta e-footprint interface repository. Please send an email to e-footprint’s main maintainer, Vincent Villet if you wish to give feedback !

Modeling examples

Checkout our open source e-footprint modeling use cases.

Tutorial

pip install efootprint

You can then run the jupyter notebook tutorial to familiarize yourself with the object logic and generate an object relationship graph and a calculation graph as HTML files in the current folder.

object relationships graph
Object relationships graph: usage patterns in deep blue, user journey in blue, user journey steps in pale blue, jobs in gold, infra hardware in red. Hover over a node to get the numerical values of its environmental and technical attributes. For simplifying the graph the Network and Hardware nodes are not shown.
simple calculation graph
Calculation graph: user inputs in gold, hypothesis in darkred, and intermediate calculations in pale blue. Hover over a node to read the formula.

To launch jupyter:

# Todo once to setup jupyter kernel
poetry run ipython kernel install --user --name=efootprint-kernel
# Start Jupyter server with poetry
poetry run jupyter notebook tutorial.ipynb

Run with Docker

No local Python setup needed: build the image once, write your model script, then run it inside the container.

docker build --build-arg EFOOTPRINT_VERSION=<version> -t efootprint .
docker run --rm -v "$PWD":/work efootprint python /work/build_model.py

The current directory is mounted at /work inside the container, so build_model.py (and any file paths it references, e.g. an output HTML graph) resolves relative to your working directory. See Dockerfile. This image isn't published anywhere yet — build it locally as above.

Dev setup

Check out INSTALL.md.

Code logic

The code has been architectured to separate modeling from optimization from API logic. The goal is to make contribution to the modeling logic as straightforward as possible.

  • Modules that deal with modeling logic are located in efootprint/core.
  • Optimizations (having the model rerun the right calculations whenever an input attribute or a link between objects changes) are dealt with in efootprint/abstract_modeling_classes.
  • All json serialization / deserialization logic, that is essential for making the web interface work, are found in efootprint/api_utils.

Contributing

Check out CONTRIBUTING.md

License

GNU Affero General Public License v3.0

Release files for efootprint 23.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for efootprint 23.1.0
File Size Uploaded
efootprint-23.1.0.tar.gz 340.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for efootprint 23.1.0
File Interpreter ABI Platform
efootprint-23.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 752.2 kB

Release files / efootprint-23.1.0.tar.gz

Download URL efootprint-23.1.0.tar.gz
Size 340.6 kB
Tags Source
SHA-256 checksum
How to use checksums
91fb465a5a6abe8f8189f00c79af0d7ec5caf7f301500f87d9a44c357c197723
BLAKE2b-256 checksum
How to use checksums
3ce69df78136bdf5a95c4c6d970f1363e50f62cf7bd5ad34c74f93d4b5799f98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Release files / efootprint-23.1.0-py3-none-any.whl

Download URL efootprint-23.1.0-py3-none-any.whl
Size 411.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb48321fe49fb683003b6310eefc5b514723b4c763b902545851b3d768985dd2
BLAKE2b-256 checksum
How to use checksums
5f79a2cb1e8c24639a2e609fde9a26f07dfa4b3310178e475953bfce6af1f65e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Release history Release notifications | RSS feed

This release

23.1.0 This release

2 release files

23.0.0

2 release files

22.3.1

2 release files

22.2.1

2 release files

22.2.0

2 release files

22.0.1

2 release files

22.0.0

2 release files

21.1.6

2 release files

21.1.2

2 release files

21.1.1

2 release files

21.1.0

2 release files

21.0.1

2 release files

20.1.0

2 release files

20.0.2

2 release files

20.0.1

2 release files

20.0.0

2 release files

19.0.2

2 release files

19.0.1

2 release files

19.0.0

2 release files

18.0.0

2 release files

17.1.0

2 release files

17.0.2

2 release files

17.0.1

2 release files

17.0.0

2 release files

16.0.4

2 release files

16.0.3

2 release files

16.0.2

2 release files

16.0.1

2 release files

16.0.0

2 release files

14.3.0

2 release files

14.2.2

2 release files

14.2.1

2 release files

14.2.0

2 release files

14.1.0

2 release files

14.0.4

2 release files

14.0.3

2 release files

14.0.2

2 release files

13.0.1

2 release files

13.0.0

2 release files

12.0.0

2 release files

11.2.4

2 release files

11.2.3

2 release files

11.2.2

2 release files

11.2.1

2 release files

11.0.0

2 release files

10.1.9

2 release files

10.1.8

2 release files

10.1.7

2 release files

10.1.1

2 release files

10.1.0

2 release files

10.0.9

2 release files

10.0.5

2 release files

10.0.4

2 release files

10.0.3

2 release files

10.0.1

2 release files

10.0.0

2 release files

9.1.5

2 release files

9.1.4

2 release files

9.1.3

2 release files

9.1.2

2 release files

9.1.1

2 release files

9.1.0

2 release files

9.0.3

2 release files

9.0.2

2 release files

9.0.1

2 release files

9.0.0

2 release files

8.2.1

2 release files

8.2.0

2 release files

8.1.0

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.1.0

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.0.0

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page