Skip to main content

PyOpenMagnetics - Python Wrapper for OpenMagnetics

Python License: MIT

🤖 For AI Assistants: If you're an AI assistant helping with this library, please read AGENTS.md FIRST before continuing with this README. It contains essential information about:

  • Correct import procedures (this package requires special handling)
  • ⚠️ Using API methods instead of manual calculations (CRITICAL)
  • Required field specifications for converter topologies
  • Troubleshooting common API errors
  • Complete working examples

⚠️ AVOID MANUAL MODE: Always use process_flyback(), calculate_advised_magnetics(), and other API methods rather than doing manual calculations. The MKF engine handles complex magnetic effects that manual calculations cannot.

PyOpenMagnetics is a Python wrapper for MKF (Magnetics Knowledge Foundation), the simulation engine of OpenMagnetics, providing a comprehensive toolkit for designing and analyzing magnetic components such as transformers and inductors.

Features

  • 🧲 Core Database: Access to extensive database of core shapes, materials, and manufacturers
  • 🔌 Winding Design: Automatic winding calculations with support for various wire types (round, litz, rectangular, planar)
  • 📊 Loss Calculations: Core losses (Steinmetz), winding losses (DC, skin effect, proximity effect)
  • 🎯 Design Adviser: Automated recommendations for optimal magnetic designs
  • 📈 Signal Processing: Harmonic analysis, waveform processing
  • 🖼️ Visualization: SVG plotting of cores, windings, magnetic fields
  • 🔧 SPICE Export: Export magnetic components as SPICE subcircuits

Installation

From PyPI (recommended)

pip install PyOpenMagnetics

From Source

git clone https://github.com/OpenMagnetics/PyOpenMagnetics.git
cd PyOpenMagnetics
pip install .

Build provenance

The build compiles MKF by globbing its .cpp files directly into the extension, tracking MKF/MAS main, and builds the Kirchhoff converter-model library (libKirchhoffApi.so) as an ExternalProject. The exact engine commits a wheel was compiled from are baked into the package:

import PyOpenMagnetics
print(PyOpenMagnetics.__mkf_commit__)  # MKF SHA this wheel was built from
print(PyOpenMagnetics.__mas_commit__)  # MAS SHA this wheel was built from

A clean rebuild:

rm -rf build && pip install . --no-deps -v

Importing and error handling

import PyOpenMagnetics works like any other package. Since v1.7.0 every engine failure raises PyOpenMagnetics.EngineError (a RuntimeError subclass) — functions never return error strings or {"data": "<error>"} objects:

import PyOpenMagnetics

PyOpenMagnetics.load_databases({})
print(f"✓ Loaded {len(PyOpenMagnetics.get_core_materials())} materials")
print(f"✓ Loaded {len(PyOpenMagnetics.get_core_shapes())} shapes")

try:
    PyOpenMagnetics.find_core_shape_by_name("No Such Shape")
except PyOpenMagnetics.EngineError as e:
    print(f"Engine error: {e}")

The only exception is the plotting family, which returns a discriminated union {"success": bool, "error": str, ...} that callers branch on.

See AGENTS.md for more usage guidance.

Quick Start

Basic Example: Creating a Core

import PyOpenMagnetics

# Find a core shape by name
shape = PyOpenMagnetics.find_core_shape_by_name("E 42/21/15")

# Find a core material by name
material = PyOpenMagnetics.find_core_material_by_name("3C95")

# Create a core with gapping. "type" is mandatory; shape/material accept
# either the objects fetched above or plain name strings.
core_data = {
    "functionalDescription": {
        "type": "two-piece set",
        "shape": shape,
        "material": material,
        "gapping": [{"type": "subtractive", "length": 0.001}],  # 1mm gap
        "numberStacks": 1
    }
}

# Calculate complete core data
core = PyOpenMagnetics.calculate_core_data(core_data, False)
print(f"Effective area: {core['processedDescription']['effectiveParameters']['effectiveArea']} m²")

Design Adviser: Get Magnetic Recommendations

import PyOpenMagnetics

# Define design requirements
inputs = {
    "designRequirements": {
        "magnetizingInductance": {
            "minimum": 100e-6,  # 100 µH minimum
            "nominal": 110e-6   # 110 µH nominal
        },
        "turnsRatios": [{"nominal": 5.0}]  # 5:1 turns ratio
    },
    "operatingPoints": [
        {
            "name": "Nominal",
            "conditions": {"ambientTemperature": 25},
            "excitationsPerWinding": [
                {
                    "name": "Primary",
                    "frequency": 100000,  # 100 kHz
                    "current": {
                        "waveform": {
                            "data": [0, 1.0, 0],
                            "time": [0, 5e-6, 10e-6]
                        }
                    },
                    "voltage": {
                        "waveform": {
                            "data": [50, 50, -50, -50],
                            "time": [0, 5e-6, 5e-6, 10e-6]
                        }
                    }
                }
            ]
        }
    ]
}

# Process inputs (adds harmonics and validation)
processed_inputs = PyOpenMagnetics.process_inputs(inputs)

# Get magnetic recommendations
# core_mode: "available cores" (stock cores) or "standard cores" (all standard shapes)
result = PyOpenMagnetics.calculate_advised_magnetics(processed_inputs, 5, "standard cores")

# Result format: {"data": [{"mas": {...}, "scoring": float, "scoringPerFilter": {...}}, ...]}
for i, item in enumerate(result["data"]):
    mag = item["mas"]["magnetic"]
    core = mag["core"]["functionalDescription"]
    print(f"{i+1}. {core['shape']['name']} - {core['material']['name']} (score: {item['scoring']:.3f})")

Calculate Core Losses

import PyOpenMagnetics

# A complete core (see "Creating a Core" above)
core = PyOpenMagnetics.calculate_core_data({
    "functionalDescription": {
        "type": "two-piece set",
        "shape": "E 42/21/15",
        "material": "3C95",
        "gapping": [{"type": "subtractive", "length": 0.0005}],
        "numberStacks": 1
    }
}, True)

# A wound coil on that core
bobbin = PyOpenMagnetics.create_basic_bobbin(core, True)
coil = PyOpenMagnetics.wind({
    "bobbin": bobbin,
    "functionalDescription": [{
        "name": "Primary",
        "numberTurns": 20,
        "numberParallels": 1,
        "isolationSide": "primary",
        "wire": "Round 0.5 - Grade 1"
    }]
}, 1, [1.0], [0], [])

# Inputs with the excitation waveforms (see the Design Adviser example)
inputs = PyOpenMagnetics.process_inputs({
    "designRequirements": {
        "magnetizingInductance": {"nominal": 100e-6},
        "turnsRatios": []
    },
    "operatingPoints": [{
        "name": "Nominal",
        "conditions": {"ambientTemperature": 25},
        "excitationsPerWinding": [{
            "name": "Primary",
            "frequency": 100000,
            "current": {"waveform": {"data": [-1, 1, -1], "time": [0, 5e-6, 10e-6]}},
            "voltage": {"waveform": {"data": [50, 50, -50, -50], "time": [0, 5e-6, 5e-6, 10e-6]}}
        }]
    }]
})

models = {"coreLosses": "IGSE", "reluctance": "ZHANG"}
losses = PyOpenMagnetics.calculate_core_losses(core, coil, inputs, models)
print(f"Core losses: {losses['coreLosses']} W")

Winding a Coil

import PyOpenMagnetics

# core from calculate_core_data(...) as above
bobbin = PyOpenMagnetics.create_basic_bobbin(core, True)

coil_spec = {
    "bobbin": bobbin,
    "functionalDescription": [
        {
            "name": "Primary",
            "numberTurns": 50,
            "numberParallels": 1,
            "isolationSide": "primary",
            "wire": "Round 0.5 - Grade 1"
        },
        {
            "name": "Secondary",
            "numberTurns": 10,
            "numberParallels": 3,
            "isolationSide": "secondary",
            "wire": "Round 1.00 - Grade 1"
        }
    ]
}

# wind(coil, repetitions, proportion_per_winding, pattern, margin_pairs)
coil = PyOpenMagnetics.wind(coil_spec, 1, [0.5, 0.5], [0, 1], [])
print(f"Wound {len(coil['turnsDescription'])} turns")

Converter-Based Design

The converter surface builds complete MAS Inputs straight from converter specifications (the Kirchhoff topology designer sizes inductance, turns ratios and waveforms). See examples/converter_design_example.py for the full flow:

import PyOpenMagnetics

flyback_specs = {
    "inputVoltage": {"minimum": 185, "maximum": 265},
    "desiredInductance": 800e-6,      # optional pin; omit to let Kirchhoff size it
    "desiredTurnsRatios": [13.5],     # optional pin
    "efficiency": 0.88,
    "operatingPoints": [{
        "outputVoltages": [12.0],
        "outputCurrents": [2.0],
        "switchingFrequency": 100000,
        "ambientTemperature": 40
    }]
}

inputs = PyOpenMagnetics.process_converter("flyback", flyback_specs)
processed = PyOpenMagnetics.process_inputs(inputs)
result = PyOpenMagnetics.calculate_advised_magnetics(processed, 5, "standard cores")
for item in result["data"]:
    print(item["mas"]["magnetic"]["manufacturerInfo"]["reference"], item["scoring"])

A TAS-shaped spec (an object with designRequirements / operatingPoints[].outputs) is also accepted and passed to Kirchhoff untouched.

API Reference

Database Access

Function Description
get_core_materials() Get all available core materials
get_core_shapes() Get all available core shapes
get_wires() Get all available wires
get_bobbins() Get all available bobbins
find_core_material_by_name(name) Find core material by name
find_core_shape_by_name(name) Find core shape by name
find_wire_by_name(name) Find wire by name

Core Calculations

Function Description
calculate_core_data(core, process) Calculate complete core data
calculate_core_gapping(core, gapping) Calculate gapping configuration
calculate_inductance_from_number_turns_and_gapping(...) Calculate inductance
calculate_core_losses(core, coil, inputs, models) Calculate core losses

Winding Functions

Function Description
wind(coil, repetitions, proportions, pattern, margins) Wind coils on a core
calculate_winding_losses(...) Calculate total winding losses
calculate_ohmic_losses(...) Calculate DC losses
calculate_skin_effect_losses(...) Calculate skin effect losses
calculate_proximity_effect_losses(...) Calculate proximity effect losses

Design Adviser

Function Description
calculate_advised_cores(inputs, max_results) Get recommended cores
calculate_advised_magnetics(inputs, max, mode) Get complete designs
process_inputs(inputs) Process and validate inputs

Visualization

Function Description
plot_core(core, ...) Generate SVG of core
plot_sections(magnetic, ...) Plot winding sections
plot_layers(magnetic, ...) Plot winding layers
plot_turns(magnetic, ...) Plot individual turns
plot_field(magnetic, ...) Plot magnetic field

Settings

Function Description
get_settings() Get current settings
set_settings(settings) Configure settings
reset_settings() Reset to defaults

SPICE Export

Function Description
export_magnetic_as_subcircuit(magnetic, ...) Export as SPICE model

Converter Topologies

All 24 power topologies are exposed with a uniform API. Use the generic process_converter("<topology>", converter, use_ngspice) (also accepts "advanced_<topology>"), or the per-topology functions below. The converter spec is either the legacy flat shape shown in "Converter-Based Design" above (inputVoltage, optional desiredInductance/desiredTurnsRatios/efficiency/ currentRippleRatio, and operatingPoints[] with outputVoltages[]/ outputCurrents[]/switchingFrequency/ambientTemperature) or a TAS-shaped spec, which is passed through untouched. Failures raise PyOpenMagnetics.EngineError.

Function family Description
process_converter(name, json, use_ngspice=True) Universal dispatch for every topology
design_magnetics_from_converter(name, json, max_results, core_mode, ...) Converter → advised magnetic designs (single call)
calculate_<t>_inputs(json) Build MAS inputs (basic mode) for topology <t>
calculate_advanced_<t>_inputs(json) Build MAS inputs (advanced mode)
simulate_<t>_ideal_waveforms(json) ngspice ideal-waveform simulation
generate_<t>_ngspice_circuit(json, input_voltage_index=0, operating_point_index=0) Generate ngspice netlist

<t>flyback, buck, boost, single_switch_forward, two_switch_forward, active_clamp_forward, push_pull, isolated_buck, isolated_buck_boost, cuk, sepic, zeta, four_switch_buck_boost, weinberg, llc, cllc, clllc, src, dab, psfb, pshb, ahb, vienna. PFC is basic-only (calculate_pfc_inputs, generate_pfc_ngspice_circuit(json, dc_resistance=0.1, simulation_time=0.02, time_step=1e-8)); common-/differential-mode chokes use the cmc / dmc families. See AGENTS.md §11 for the full per-topology parity matrix.

Core Materials

PyOpenMagnetics includes materials from major manufacturers:

  • TDK/EPCOS: N27, N49, N87, N95, N97, etc.
  • Ferroxcube: 3C90, 3C94, 3C95, 3F3, 3F4, etc.
  • Fair-Rite: Various ferrite materials
  • Magnetics Inc.: Powder cores (MPP, High Flux, Kool Mu)
  • Micrometals: Iron powder cores

Core Shapes

Supported shape families include:

  • E cores: E, EI, EFD, EQ, ER
  • ETD/EC cores: ETD, EC
  • PQ/PM cores: PQ, PM
  • RM cores: RM, RM/ILP
  • Toroidal: Various sizes
  • Pot cores: P, PT
  • U/UI cores: U, UI, UR
  • Planar: E-LP, EQ-LP, etc.

Wire Types

  • Round enamelled wire: Various AWG and IEC sizes
  • Litz wire: Multiple strand configurations
  • Rectangular wire: For high-current applications
  • Foil: For planar magnetics
  • Planar PCB: For integrated designs

Configuration

Use set_settings() to configure:

settings = PyOpenMagnetics.get_settings()
settings["coilAllowMarginTape"] = True
settings["coilWindEvenIfNotFit"] = False
settings["painterNumberPointsX"] = 50
PyOpenMagnetics.set_settings(settings)

Contributing

Contributions are welcome! Please see the OpenMagnetics organization for contribution guidelines.

Documentation

Quick Start

  • llms.txt - Comprehensive API reference optimized for AI assistants and quick lookup
  • examples/ - Practical example scripts for common design workflows
  • PyOpenMagnetics.pyi - Type stubs for IDE autocompletion

Tutorials

Reference

Validation

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Projects

References

  • Maniktala, S. "Switching Power Supplies A-Z", 2nd Edition
  • Basso, C. "Switch-Mode Power Supplies", 2nd Edition
  • McLyman, C. "Transformer and Inductor Design Handbook"

Support

For questions and support:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyopenmagnetics-1.7.11.tar.gz (689.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyopenmagnetics-1.7.11-cp314-cp314-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pyopenmagnetics-1.7.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (14.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyopenmagnetics-1.7.11-cp313-cp313-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pyopenmagnetics-1.7.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (14.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyopenmagnetics-1.7.11-cp312-cp312-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pyopenmagnetics-1.7.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (14.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyopenmagnetics-1.7.11-cp311-cp311-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pyopenmagnetics-1.7.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyopenmagnetics-1.7.11-cp310-cp310-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pyopenmagnetics-1.7.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pyopenmagnetics-1.7.11.tar.gz.

File metadata

  • Download URL: pyopenmagnetics-1.7.11.tar.gz
  • Upload date:
  • Size: 689.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyopenmagnetics-1.7.11.tar.gz
Algorithm Hash digest
SHA256 f612555dd2868ebf7f2a49fabdc8a6b5df4d2e145f3cd01991c214cb19d9f048
MD5 adc36cebbe67f8f5e565ef88faa2701e
BLAKE2b-256 cbe652e967ff8277bdbc26f7cd93c57b7f91e55cb6d99ca2481955e29257e471

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 097967bc1d8a5053dcb12cfce77b3ad88509206e9d24a79b5b1389a3b572630f
MD5 d05510a245dcb51816f471797da28b64
BLAKE2b-256 acf65c9e0af660762973bf98c1632ec8f7101836880a731949277af6cf7f445e

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce7f9a07fa3f35bb790f16635168a86f5990835b0bfcfd1b4b0beb711d87967f
MD5 96ae7cd24ba554d8f2bac87fb696c9da
BLAKE2b-256 0b21fcb338b78c8aa92bfab22cc3791efa6af7c1a6066cbe2a80f5f888298250

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e729ead629475e7db90ae37a947fee7c5c3b8a35e7c950a8f984a25cf9aced1c
MD5 675444f7c3a815259f87d202d95fc08e
BLAKE2b-256 1a6a6e0e27c29f85dbd803b8c3826e57ef1c8b8b346ba68ef967f1c8cf0ef9d7

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee56f4969cea533924cabba46e150fb368fe1c410a656090f15e89570249bac2
MD5 00fc4742dac10725404b11aff5c8aa73
BLAKE2b-256 84034ce94fbaa5dd7a5dcc5cfd7e8b0910c9e0b15ea5ad95c00b7ce47570502c

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 712e3fd6c511b59d865b35dcf37e43e875346b55a962549b581f554881914086
MD5 cfe9c3371266cf6eb7a691ffa94f5b5b
BLAKE2b-256 05d35068f593395e1cd53cd93d82bfd5f19de7b3f4ccbd13b6c996a80a3371a9

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a197c83d1bf37593dfe6c90f62187562e6cf8f876bfc15468e2302bfe4a28f38
MD5 b2dc4cc3a5ff2e8b94a14f4aea337eec
BLAKE2b-256 cdc884795aed5c15fc7bdfaa8e24095aa5f7666f2b9c129ab6c509837983a5f5

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fdf09056c317a824a510bd6e9cd604cc4827057c7055b2adc9c580430f4e6dee
MD5 f1f112bbee63af53467fd324242c4d43
BLAKE2b-256 2886d28f661502743293c7b96df47eeac1faf4750d93a24e6c79186c75cfc5c8

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d290b82165156645fee023835a35ed4bb5423a4307e72981db8d66d8a83231c8
MD5 22aafb80e5262c35c99181b0b3cc4ac0
BLAKE2b-256 1f7af9e8d20f51c17927c4b893a2c2da8c3d1bf60ad7ab54ec7d12435cf64e68

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 62397c2328930ddc60eaf6273aa041b9dafd152c0695b118032a31cf9e232638
MD5 ec844dd73e370fe4f159c089861ec0c4
BLAKE2b-256 45852d55dafa0e7fe291f55588a9dcbd367ba44e7ef88ac95a8b9638436d822a

See more details on using hashes here.

File details

Details for the file pyopenmagnetics-1.7.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenmagnetics-1.7.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d8bcd69c1794a1edb75ffe761e302cf15a3b3a8ee59351277f1173d95b3568f
MD5 0e408d96e3557447bf4783456c160ac1
BLAKE2b-256 cc4fbf5e6cccb8943b48cb24b2dcae076b480559074d73dc421ac391a4237c57

See more details on using hashes here.

Release history Release notifications | RSS feed

1.7.15

11 files

1.7.14

1 file

1.7.13

11 files

1.7.12

11 files

This release

1.7.11 This release

11 files

1.7.10

11 files

1.7.9

6 files

1.7.8

11 files

1.7.7

11 files

1.7.6

11 files

1.7.5

11 files

1.7.4

9 files

1.7.3

9 files

1.7.2

9 files

1.7.1

9 files

1.7.0

9 files

1.6.6

9 files

1.6.5

9 files

1.6.4

9 files

1.6.3

9 files

1.6.2

9 files

1.6.1

9 files

1.6.0

5 files

1.5.1

5 files

1.5.0

5 files

1.4.6

9 files

1.4.5

9 files

1.4.4

9 files

1.4.3

9 files

1.4.2

9 files

1.4.1

9 files

1.4.0

11 files

1.3.13

9 files

1.3.12

9 files

1.3.10

5 files

1.3.9

5 files

1.3.8

8 files

1.3.6

13 files

1.3.5

5 files

1.3.4

5 files

1.3.3

5 files

1.3.2

5 files

1.3.1

5 files

1.3.0

13 files

1.2.2

13 files

1.2.1

13 files

1.2.0

13 files

1.1.5

13 files

1.1.4

13 files

1.1.3

13 files

1.1.2

13 files

1.1.0

13 files

1.0.2

12 files

1.0.1

12 files

1.0.0

5 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