Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.0.0b2

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.0.0b2
File Size Uploaded
efootprint-23.0.0b2.tar.gz 336.3 kB Details

Built distribution (wheel)

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

Total release size: 742.9 kB

Release files / efootprint-23.0.0b2.tar.gz

Download URL efootprint-23.0.0b2.tar.gz
Size 336.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d5f4193f5aa7554bdcc181aa94b0343b20b5b2d352152460ba5b1e3160e67427
BLAKE2b-256 checksum
How to use checksums
f0a342ec0d9d4cb7dd5b2524cfa44c809d27a7613d10b42d70eb8d1059a77f66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

Release files / efootprint-23.0.0b2-py3-none-any.whl

Download URL efootprint-23.0.0b2-py3-none-any.whl
Size 406.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f352e8e9df2c6469e8e1b44df5e981ba763572caa9a29a2147ffe0e520ed31d0
BLAKE2b-256 checksum
How to use checksums
dfc440c4a8678c8f14451f8106f9eab78de5e891ade9966f241e87b139f62f4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

Release history Release notifications | RSS feed

23.0.0

2 release files

This release

23.0.0b2 This release

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