package carbon

  1. Overview
  2. Docs
OCaml library for accessing various Carbon Intensity APIs

Install

Dune Dependency

Authors

Maintainers

Sources

carbon-0.2.0.tbz
sha256=8d4e2f152d97aa02eff54919b05c7a61c317f0103fc634a0029c246482249e0b
sha512=6c1e04c2192e62b5f2137f6ba35afa6d261079cb17312e35cb881f657b79dfdf88380b02b6629db796dd007937ab5de9a1c868c6a8d31769efbd35412f987a3f

Description

Carbon provides access to various APIs to discover carbon intensity information for different countries.

Published: 27 Nov 2024

README

carbon-intensity

Carbon Intensity is an OCaml client for querying various energy grid APIs to understand the energy generation mix. This enables programs like schedulers, energy monitors etc. to have a better understanding of their carbon intensity.

The API provides geographic-specific services, which allow you to exploit more fine-grained APIs and then a generic Intensity interface for a global-oriented API.

Integrated APIs

  • Great Britain:

    • https://www.carbonintensity.org.uk/

  • France:

    • https://www.rte-france.com/eco2mix

  • Misc:

    • https://www.co2signal.com (requires API key)

Usage

A very simple use of the region specific API for Great Britain only requires the user to provide Eio's network capability.

# Eio_main.run @@ fun env ->
  Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun _ ->
  let gb = Carbon.Gb.v env#net in
  Carbon.Gb.get_intensity gb
  |> Eio.traceln "%a" Carbon.Gb.Intensity.pp;;
+period: 2024-11-25T21:00Z - 2024-11-25T21:30Z
+forecast: 99 gCO2/kWh
+actual: 92 gCO2/kWh
+index: low
+
- : unit = ()

Dependencies (8)

  1. uri
  2. tls-eio >= "1.0.4"
  3. ptime
  4. ezjsonm >= "1.2.0"
  5. cohttp-eio >= "6.0.0~beta2"
  6. ca-certs
  7. eio >= "1.1"
  8. dune >= "3.11"

Dev Dependencies (4)

  1. odoc with-doc
  2. eio_main with-test
  3. mdx with-test
  4. mirage-crypto-rng-eio with-test

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.