Skip to content

Green-Software-Foundation/awesome-green-software

Repository files navigation

Green Software Awesome

Research, tools, code, libraries, and training for building applications that emit less carbon into our atmosphere.

An awesome list created and managed by the Open Source Working Group in the Green Software Foundation.


Welcome to the Green Software Foundation Directory, your one-stop platform for discovering and contributing to green software solutions. This project aims to build a trusted ecosystem of tools, libraries, and resources that promote sustainable software development practices.

Disclaimer

This list is created for informational purposes only and any links do not constitute an endorsement, recommendation, or favoring by the Green Software Foundation, its member organizations, or contributors to the list.

THESE MATERIALS ARE PROVIDED “AS IS.” The parties expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the materials. The entire risk of implementing or otherwise using the materials is assumed by the implementer and user. IN NO EVENT WILL THE PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Table of Contents

Introduction

The Green Software Foundation Directory is designed to help developers, organizations, and enthusiasts find and contribute to projects that reduce carbon emissions and promote sustainability in software development. By leveraging powerful tools like Algolia for search capabilities and Notion for content management, this platform ensures a seamless and efficient user experience.

Green Software Awesome List

Contents

Dev / Tooling

AI
AI Carbon
AI Energy
Cloud-based
AWS
Azure
Google
OVHcloud
Multicloud
  • Cloud Carbon Footprint An open-source cloud energy and carbon emissions measurement tool.
  • Green Metrics Tool A free open-source (FOSS) tool to measure the energy / CO2 consumption of your software architecture.
  • kube-green A simple open-source k8s addon that automatically shuts down (some of) your resources when you don't need them.
  • Carbonifer Command Line Tool to control carbon emission of your cloud infrastructure.
  • Gaia Gen A SaaS solution for monitoring and reporting cloud emissions (there is a cost associated with this solution).
Code-based
  • codecarbon.io Python : Track and reduce CO2 emissions from your computing
  • CAST Highlight Automatically analyze application source code to identify green deficiencies and improve green impact.
  • JoularJX Java: Software power monitoring at the source code level in real-time.
  • Kernel Tuner an auto-tuner capable of optimizing GPU code for energy efficiency.
  • oaklean.io Visualize and optimize the energy consumption of your JavaScript/TypeScript applications. Using a VSCode extension and integration with test frameworks, the system identifies energy-intensive code sections and suggests eco-friendly alternatives.
  • Tracarbon Tracarbon tracks your device's energy consumption and calculates your carbon emissions using your location
  • ecoCode A SonarQube plugin for PHP, Python, Java, and JavaScript, providing static code analyzers to highlight code structures that may have a negative ecological impact.
  • energy-consumption-measuring-toolkit Energy Consumption Measuring Toolkit for Python Applications
General Purpose
Emissions
  • Carbon AppInsights An Azure Functions-based solution for logging emissions data for Azure regions from Electricity Maps to Azure Monitor for alerting triggers and automated actions.
  • Carbon Aware SDK A Web API and command line for obtaining unified forecast and historical power grid emissions data based on location and time, to help build Carbon Aware software.
  • Carbon Aware Computing Hangfire Extension A Hangfire extension to schedule tasks with carbon awareness in mind. The best point in time is calculated based on emission forecasts to get a window with a minimal grid carbon intensity.
  • Carbon Aware Computing - Tools & Free forecast data The goal of this project is to provide developers with hassle-free, easy-to-use, ready-to-run tools for carbon-aware computing. The software contains a NuGet-Package, Powershell-Commandlets, and a live instance of the SDK. An open data carbon forecast for Europe is available as in the JSON-Carbon SDK-compatible format.
  • PSElectricityMaps A PowerShell Module for retrieving current carbon emissions data for power grids with a free account on ElectricityMaps / CO2signal.
  • PSWattTime A PowerShell Module for retrieving current carbon emissions data for power grids with a free account on WattTime.org.
Energy
  • CO2Scope Solution to monitor in real-time the CO2 emissions of IT services, virtual machines, and servers
  • Eco-CI Continuous Integration Energy Estimation A plugin for GitHub Actions / GitLab that measures your CI runs and estimates their energy use.
  • Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe energy-related system stats and exports as Prometheus metrics
  • Hardware Sentry Standard OpenTelemetry agent that exposes the energy usage and temperatures of servers, network, and storage systems in data centers
  • PowerJoular Monitor, in real-time, the power consumption of software and hardware components.
  • scaphandre Power measurement (bare metal hosts, prometheus, within a docker container, etc)
  • ML.ENERGY Leaderboard: How much energy do LLMs consume?
  • Zeus: Deep Learning Energy Measurement and Optimization
  • Vessim is a co-simulation testbed for carbon-aware applications and systems that connects domain-specific simulators for renewable power generation and energy storage with real software and hardware. It's been published at HotCarbon'24. Git Published in 2024
Extensions
  • GreenIT-Analysis The extension allows you to use your Dev Tools to measure the ecoIndex of a website and verify the application of web eco-design best practices defined by the "Collectif numérique responsible".
OS-based
Android
  • ecoCode mobile A SonarQube plugin to highlight code structures that may have a negative ecological impact.
  • PowDroid A lightweight CLI tool for measuring energy consumption at runtime (based on batterystats)
iOS
  • ecoCode iOS A SonarQube plugin to highlight code structures that may have a negative ecological impact.
Linux
  • FreeIPMI We can get the power consumption of a bare metal machine through the DCMI (IPMI extension).
  • ipmitool We can get the power consumption of a bare metal machine through the DCMI (IPMI extension).
  • PowerAPI A Linux software-defined power meter to estimate process-scale power consumption in real time.
  • PowerTOP A Linux tool to diagnose issues with power consumption and power management.
  • turbostress This tool generates load and outputs computer power metrics for this load.
Web
Windows

Organizations

Courses

Articles / Books / Research

Articles
Books
Research
Artificial Intelligence
Blockchain
Computation
Crypto
Data Centers
Emissions
Programming Languages
Quantum Computing
Streaming
Web

Green Software Foundation Directory

Features

  • Search Functionality: Powered by Algolia, enabling fast and relevant search results.
  • Content Management: Utilizes Notion for managing and updating the directory entries.
  • Responsive Design: Built with Astro and Tailwind CSS for a modern, responsive user interface.
  • Contributor Support: Easy-to-use forms for adding new projects or contributing to existing ones.
  • Integration with Social Platforms: Connect with the Green Software Foundation community on GitHub, Twitter, and LinkedIn.

Technologies Used

  • Frontend:

    • Astro - A modern framework for building fast, content-focused websites.
    • React - A JavaScript library for building user interfaces.
    • Tailwind CSS - A utility-first CSS framework for rapid UI development.
  • Backend & Services:

    • Algolia - A powerful search-as-a-service platform.
    • Notion - An all-in-one workspace for note-taking and project management.
    • Node.js - A JavaScript runtime for building scalable network applications.

Installation

Follow these steps to set up the project locally:

  1. Clone the Repository

    git clone https://github.com/your-username/green-software-foundation-directory.git
    cd green-software-foundation-directory
  2. Install Dependencies Ensure you have Node.js installed. Then run:

    npm install
  3. Setup Environment Variables Create a .env file in the root directory and add the necessary credentials. See the Configuration section for details.

  4. Run the Development Server

    npm run dev

    Open your browser and navigate to http://localhost:3000 to view the website.

Configuration

The project relies on several external services. You need to provide your own credentials to connect to these services.

  1. Algolia

    • PUBLIC_ALGOLIA_APP_ID: Your Algolia Application ID.
    • ALGOLIA_ADMIN_API_KEY: Your Algolia Admin API Key.
    • ALGOLIA_SEARCH_KEY: Your Algolia Search-Only API Key.
  2. Notion

    • NOTION_API_KEY: Your Notion Integration Token.
    • NOTION_DATABASE_ID: The ID of your Notion database containing the directory entries.
  3. Environment Variables Example

    NOTION_API_KEY=your_notion_api_key_here
    NOTION_DATABASE_ID=your_notion_database_id_here
    PUBLIC_ALGOLIA_APP_ID=your_algolia_app_id_here
    ALGOLIA_ADMIN_API_KEY=your_algolia_admin_api_key_here
    PUBLIC_ALGOLIA_SEARCH_KEY=your_algolia_search_key_here

    Note: Replace the placeholder text with your actual credentials.

Usage

Syncing Notion to Algolia

To synchronize your Notion data with Algolia, run the following command:

npm run sync-notion

Adding New Entries

Use the contribution form available on the website to add new projects or resources to the directory. Contributions are subject to review to ensure they meet the sustainability criteria of the Green Software Foundation.

Contributing

We welcome contributions from the community! To get started:

  1. Fork the Repository
  2. Create a New Branch
    git checkout -b feature/YourFeature
  3. Commit Your Changes
    git commit -m "Add your feature"
  4. Push to the Branch
    git push origin feature/YourFeature
  5. Open a Pull Request

Please ensure your contributions align with our Code of Conduct and Contributing Guidelines.

License

This project is licensed under the MIT License.

Acknowledgements

  • Algolia for providing excellent search services.
  • Notion for their robust content management platform.
  • Astro and Tailwind CSS for enabling a modern and responsive frontend.
  • The entire Green Software Foundation community for their dedication to sustainable software development.

Contact Us

For any inquiries or support, please reach out to ags@digitalemissions.org.

Contribute

Contributions welcome! Read the contribution guidelines first.