Skip to main content

GSFit: Grad-Shafranov Fit

BSD-3-Clause License

Rust Rust coverage: Rust tests Rust coverage: Python tests Rust coverage: Rust + Python tests dependency status

Python 3.11|3.12|3.13|3.14|3.15 Python coverage: Python tests Ruff ty Checked with mypy

GSFit is a modern tokamak equilibrium reconstruction tool for post-shot experimental analysis and scientific interpretation. Developed by Tokamak Energy Ltd. for use on ST40, the world's highest field spherical tokamak.

The Grad-Shafranov equation is the equilibrium solution to the ideal, single-fluid, MHD equations, assuming axisymmetry. The Grad-Shafranov equation has two free degrees of freedom, often referred to as the source functions: the pressure gradient p_prime and ff_prime, where f gives rise to the poloidal plasma current. GSFit uses diagnostics, most importantly the magnetics, to simultaneously solve the non-linear Grad-Shafranov equation while optimising the p_prime and ff_prime degrees of freedom to minimise the difference between the experimental "measured" values and the "calculated" values. More details about the algorithms used can be found in the excellent paper J.-M. Moret, et. al., "Tokamak equilibrium reconstruction code LIUQE and its real time implementation", Fusion Eng. Design, 91, 2015.

GSFit's numerical solver is written in Rust for speed and robustness, and the user interface / set-up is written in Python for its convenience.

The goal of GSFit is high accuracy, not performance; when something can be calculated accurately, it should be calculated accurately regardless of computational cost.

GSFit uses the COCOS 13 coordinate system, as described in O. Sauter and S. Y. Medvedev, "Tokamak Coordinate Conventions: COCOS", Comput. Phys. Commun. 184, 2013. Where, in summary, flux is measured in weber, and the poloidal angle increases counterclockwise, starting from the outboard mid-plane.

Why Rust and Python?

Rust is a compiled, high-performance language, nearly as fast as C and Fortran. It includes modern tooling such as a package manager and centralised registry (cargo and crates.io), autoformatting (rustfmt), and has testing built into the language. Rust enforces strict ownership rules, making programs extremely memory efficient without requiring any extra effort. These rules also eliminate entire classes of memory issues. Additionally, Rust has zero-cost abstractions, allowing object-oriented programming (implementations) to be used without a performance penalty. For more information, the official Rust book gives a complete introduction to the language with examples.

Python is ubiquitous within the fusion industry. Using Python allows easy integration into existing workflows. For example, in examples/example_02_mastu_with_synthetic_data_from_freegsnke.ipynb, we reconstruct an equilibrium using synthetic "measured" data produced by the open source forward Grad-Shafranov solver FreeGSNKE.

1. Installation and environment

1.1 Python environment

GSFit can be run on Python 3.11, 3.12, 3.13, and 3.14.

uv is both an environment and package manager and is recommended. There are several other Python virtual environment providers which should work, but we have not tested against them.

# Install the `uv` environment and package manager
python -m pip install uv

# Creating and activating a virtual environment, called `venv_gsfit`
uv venv --python=3.13
source .venv/bin/activate

1.2 Installing from PyPI

GSFit is available on the PyPI package registry as a pre-compiled binary. The binary is compiled for Linux, macOS, and Windows. For Linux the "manylinux2014" build system is used, which typically can be run on any Linux machine newer than 2014.

All of the packages GSFit depends on are listed in the pyproject.toml. These are divided into essential packages which are always required for any run and optional packages which can be installed for different purposes. An example of optional packages are machine-specific database readers.

# Install GSFit from the PyPI package registry, with only the essential packages
uv pip install gsfit
# or install GSFit from the PyPI package registry, with the "developer" packages
uv pip install gsfit[dev]
# or install GSFit with reading/writing to/from ST40's experimental database
uv pip install gsfit[with_st40_mdsplus]  # (this will only work within Tokamak Energy's network)
# or any combination
uv pip install gsfit[dev,with_st40_mdsplus]

1.3 Compiling and installing from source code on Linux

# Install the Rust compiler (only needs to be done once)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone a copy of GSFit from GitHub
git clone git@github.com:tokamak-energy/gsfit.git
cd gsfit

# Install GSFit
uv pip install --reinstall --editable .
# or install with the "developer" packages, such as `pytest` and `mypy`
uv pip install --reinstall --editable .[dev]

1.4 Compiling and installing from source code on macOS

# Install the Rust compiler (only needs to be done once)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone a copy of GSFit from GitHub
git clone git@github.com:tokamak-energy/gsfit.git
cd gsfit

# Install GSFit
uv pip install --reinstall --editable .
# or install with the "developer" packages, such as `pytest` and `mypy`
uv pip install --reinstall --editable .[dev]

1.5 Compiling and installing from source code on Windows

# Download and install Rust compiler
# run rustup-init.exe from https://www.rust-lang.org/tools/install

# Clone a copy of GSFit from GitHub
git clone git@github.com:tokamak-energy/gsfit.git
cd gsfit

# Install GSFit
uv pip install --reinstall --editable .
# or install with the "developer" packages, such as `pytest` and `mypy`
uv pip install --reinstall --editable .[dev]

1.6 IDE

VS Code is the recommended IDE for GSFit.

A particularly useful extension is rust-analyzer, which "is a part of a larger rls-2.0 effort to create excellent IDE support for Rust."

The PyO3 crate requires Python>=3.7. On machines where the python3 command links to an unsupported Python version, you can change the following file: ~/.vscode-server/data/Machine/settings.json to point to your desired Python's "standard library files", which will be similar to:

{
    "rust-analyzer.server.extraEnv": {
        "PYO3_CROSS_LIB_DIR": "/home/<user.name>/.local/share/uv/python/cpython-3.13.2-linux-x86_64-gnu/lib"
    }
}

and Python's "standard library files" directory can be found by:

python -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"

2. GSFit program layout and flow

2.1 Initialisation

GSFit's solver and numerics are programmed in Rust, with the initialisation done within Python.

The communication between Python and Rust is handled by the PyO3 crate. From the Python side the integration is seamless, and a general user would not know if a function / class is written in Python or Rust. In a similar way, a user interacting with numpy does not know if they are calling Python, C or Fortran.

GSFit has the following implementations (which are similar to classes):

  • coils for the PF and TF coils. This object contains the geometry; measured values; and reconstructed values
  • passives for the toroidally conducting structures, such as the vacuum vessel and passive plates. passives also contains the degrees of freedom allowed for the passive conductors
  • plasma contains a $(R, Z)$ grid and the reconstructed equilibrium
  • bp_probes contains the Mirnov coils: geometry; measured values; which sensors to use in the reconstruction and their weights; and the reconstructed values
  • flux_loops the toroidal flux loops. Note the units are in weber.
  • rogowski_coils measuring toroidal currents
  • isoflux contains two time-dependent $(R, Z)$ coordinates which have equal poloidal flux
  • isoflux_boundary contains a time-dependent $(R, Z)$ coordinate which has the same poloidal flux as the plasma boundary. This can be used if we have measurements of where the strike point is, for example if there is an IR camera

All of these implementations are initialised from Python. As a result, all of the database access is contained within Python, and any pre-processing such as filtering or smoothing experimental data can also be done within Python.

Below is a reproduction of examples/example_01_st40_with_experimental_data.py.

# Note, this example will only run inside Tokamak Energy's network

from gsfit import Gsfit

# Construct the GSFit object
gsfit_controller = Gsfit(
    pulseNo=12050,
    run_name="TEST01",
    run_description="Test run",
    write_to_mds=True,
    settings_path="default"
)

# Run (solve the inverse Grad-Shafranov equation, and if requested write to database)
gsfit_controller.run()

To improve reliability and traceability, the number of arguments needed to initialise the gsfit_controller object is deliberately kept to a minimum. The settings_path="default" argument tells GSFit to use the settings (JSON files) from this directory python/gsfit/settings/default/. By storing all the settings needed to run GSFit in JSON files allows changes to be tracked through Git.

2.2 Adding a new experimental device or coupling to a new forward Grad-Shafranov code

The information needed to run GSFit comes from two sources:

  1. python/gsfit/settings/: Contains parameters in JSON files, such as:
    • the maximum number of iterations,
    • which magnetic sensors to use in the reconstruction,
    • the degrees of freedom given to p_prime and ff_prime,
    • and which database_reader to use.
  2. python/gsfit/database_readers/: Connects to machine-specific databases to read experimental results in, such as:
    • geometry and current in poloidal field coils
    • measured signals from magnetic sensors
    • isoflux constraints

These two sources of information are combined to initialise the Rust objects needed to run GSFit (as described in section 2.1).

Writing to the database is done through python/gsfit/database_writers/, in a similar format to database_readers.

Included are the settings and readers for ST40's experimental data, and synthetic data produced by FreeGS and FreeGSNKE simulations. We welcome and are happy to include configurations for other devices.

2.3 Where are the Green's tables stored?

We can classify objects as either "current sources" or "sensors".

  • coils, passives, and plasma are "current sources".
  • bp_probes, flux_loops, rogowski_coils, isoflux, and plasma are "sensors".

Note, plasma is both a current source and a sensor; this is because it contains the plasma current and the 2D (R, Z) grid where we want to take measurements on.

Principles about where data should be:

  • "sensors" contain the Green's tables.
  • "current sources" contain the currents.

The sensors and currents are linked by names; every magnetic probe and PF coil must have a unique name.

2.4 Decision on coils vs PSUs

On many tokamaks, including ST40, several PF coils are connected to a single PSU. For ST40 we have the BVLT and BVLB PF coils, both connected to the BVL PSU.

Several equilibrium reconstruction codes treat the PSU current as a measurement with an associated degree of freedom. To allow for this degree of freedom we would need to tell GSFit which PF coil is connected to which PSU. This is quite burdensome and to keep GSFit simple to initialise, we have decided to only consider "coils". The work-around, if you want to have the PSU currents as a degree of freedom, is to combine all of the PF coils connected to a single power supply into a single coil. On ST40 we could create a PF coil called BVL_combined which contains both BVLT and BVLB.

3. Advanced building

GSFit is intended to be a Python library, where the Rust code is called from Python (Python is not called from within Rust). The advantage of this is that the Rust binary does not need to link agains libpython-dev which is not always installed on all machines.

However, for testing, where the Rust code is run as it's own executable, not from within Python, we must link to Python!

4. Planned future development

  • Interfacing to and from IMAS & OMAS.
  • More kinetic sensors, such as MSE, polarimeters, and interferometers.

5. Citing GSFit

We intend on publishing a paper on GSFit. While GSFit is unpublished, please cite it as "P. F. Buxton, GSFit, https://github.com/tokamak-energy/gsfit, 2025"

Please use the GSFit nomenclature, not GS-Fit, GSFIT, or g/s fit.

Metadata

Release files for gsfit 0.0.8

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

Source distribution (sdist)

Source distribution for gsfit 0.0.8
File Size Uploaded
gsfit-0.0.8.tar.gz 1.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for gsfit 0.0.8
File
gsfit-0.0.8-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
gsfit-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
gsfit-0.0.8-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details
gsfit-0.0.8-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
gsfit-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
gsfit-0.0.8-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
gsfit-0.0.8-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
gsfit-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
gsfit-0.0.8-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
gsfit-0.0.8-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
gsfit-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
gsfit-0.0.8-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
gsfit-0.0.8-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gsfit-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
gsfit-0.0.8-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 33.8 MB

Release files / gsfit-0.0.8.tar.gz

Download URL gsfit-0.0.8.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
91fd655900454c79c5c3f9fe6f7f4a9db8ea4aac1c4cab8e45cec537cd8e0ce4
BLAKE2b-256 checksum
How to use checksums
06e5a515a85ba41d5c0ca3e00c4e532c25aed054c0fb59422e5fbf0f390a8d8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp315-cp315-win_amd64.whl

Download URL gsfit-0.0.8-cp315-cp315-win_amd64.whl
Size 2.3 MB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
f45b076324de709f9ceb8ffc1f361193292b81d9b3012c277ccc555dc778831c
BLAKE2b-256 checksum
How to use checksums
6f432c3e756cd3c4b5d2ce58dd1ad1c780e7ae53d97a6c3da171f79493525314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gsfit-0.0.8-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d62d07f31f6994b39df0909c4d827bc314012001e612aa93d3b52c22d3c36944
BLAKE2b-256 checksum
How to use checksums
4310d25095dac8e001df2cd0cb2059b813672aa42cedc084456dc78a2bfb4ecc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp315-cp315-macosx_11_0_arm64.whl

Download URL gsfit-0.0.8-cp315-cp315-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
28a41865b43ee0556b678a1307d606f46f6ebe2c0710986cc83107eacfed5c0d
BLAKE2b-256 checksum
How to use checksums
27e9c54233d263691554109c4eb372af12a670ded5430f4440645bc858611716
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp314-cp314-win_amd64.whl

Download URL gsfit-0.0.8-cp314-cp314-win_amd64.whl
Size 2.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ef98b3c2873171cbd505fde83088664d6d45dea2a19ec4ee72772a0325fc2214
BLAKE2b-256 checksum
How to use checksums
d793ff9745c5e517107774a369afcc0037e9e87344d371838c2fa3082673db4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gsfit-0.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1eb891719006e6acdf2e1f5613cc235cc9a9a0dac07691e8d6a6723ae2bba16b
BLAKE2b-256 checksum
How to use checksums
3b43a189ecd9b69400c715c7ff43207be938d2127de12c1d145a5b64063ad740
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp314-cp314-macosx_11_0_arm64.whl

Download URL gsfit-0.0.8-cp314-cp314-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
75b11cc82597f5ff1f8e476aa057d8ea21dbef53523a0d708fca508a0a204ab1
BLAKE2b-256 checksum
How to use checksums
596ffb893e4c7d40cbf43b9a1e5a635edc0631bd5e425c77060342a41f9a6666
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp313-cp313-win_amd64.whl

Download URL gsfit-0.0.8-cp313-cp313-win_amd64.whl
Size 2.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
468fab5ea2b397afc359094b3b14ea482acefbdb51ce81698f5aa59ddf84c80e
BLAKE2b-256 checksum
How to use checksums
092514a5d65ba4221ef554aa0886b224ff4405f26e9db806805acedf22206e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gsfit-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
799acffb0e88e022db7949193185927973c314dcdd4bf13a04c953cad65f03f3
BLAKE2b-256 checksum
How to use checksums
4d1f38cfae98c51d01c55580aac336b1c9b9b56a4b95d04b371af6c06202ba59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp313-cp313-macosx_11_0_arm64.whl

Download URL gsfit-0.0.8-cp313-cp313-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fa9b18905be39ca45346a71c508f46c283d1e66665521d9fd6edd0caf294305
BLAKE2b-256 checksum
How to use checksums
d7c2f1b1935c1ca5d4125e2b805b64e2fd56cc610bfbc30dfd8cd6c0d15b600a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp312-cp312-win_amd64.whl

Download URL gsfit-0.0.8-cp312-cp312-win_amd64.whl
Size 2.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2ca80f8e256237174edc5e7d6e637d06583f6507852542cb7da85c49d67213e3
BLAKE2b-256 checksum
How to use checksums
ca83b3fd8e1027b1bfbc7b5af7fcf9e8553b0c89d1a023396e6418af5f504988
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gsfit-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c0180d0bc34c4c997acb0498be1842c8fe113e145e4c23f8466fe101004120b0
BLAKE2b-256 checksum
How to use checksums
91d98afcff28e09b20206a2047bf08a46c6ad40234b75aeedbcedf1bb4a98c55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp312-cp312-macosx_11_0_arm64.whl

Download URL gsfit-0.0.8-cp312-cp312-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d7775b47834b9071e034e781f856095520c3558712a383ea76dd53dd2c36214a
BLAKE2b-256 checksum
How to use checksums
7ed84353b325c0ca02f904ca59e984006afe2b7b7f77adb125cc6dead96c7ac7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp311-cp311-win_amd64.whl

Download URL gsfit-0.0.8-cp311-cp311-win_amd64.whl
Size 2.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
586f29ad10e86bc68dc9bf2331927754eb465386aa8bbeba0e605f47d3d98638
BLAKE2b-256 checksum
How to use checksums
7beff39391d537c72754f2f084c977e145b10ba0fcca11f9defabb0857e954ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gsfit-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f05387444044e8b8d182291309dac4f065db189c6e792b9c8b912f71cb6b8296
BLAKE2b-256 checksum
How to use checksums
28321a9a03bc9ff047da3a97bdc79dae2ed86fbf0aa218ca1ae025a4ad688159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release files / gsfit-0.0.8-cp311-cp311-macosx_11_0_arm64.whl

Download URL gsfit-0.0.8-cp311-cp311-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4fc9adbb603366ed1a532c17e3585e556bdd42090af07ab7849944391a7aadaf
BLAKE2b-256 checksum
How to use checksums
c415a331e5775a7fe2abde4795e3d690ca87c6484235ed11f5e5446aa49bda66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.14.1

Release history Release notifications | RSS feed

This release

0.0.8 This release

16 release files

0.0.4

10 release files

0.0.3

10 release files

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