# Using Pyodide Pyodide may be used in any context where you want to run Python inside a web browser or a backend JavaScript environment. ## Web browsers To use Pyodide on a web page you need to load `pyodide.js` and initialize Pyodide with {any}`loadPyodide` specifying a index URL for packages: ```html-pyodide
``` See the {ref}`quickstart` for a walk through tutorial as well as {ref}`loading_packages` and {ref}`type-translations` for a more in depth discussion about existing capabilities. You can also use the [Pyodide NPM package](https://www.npmjs.com/package/pyodide) to integrate Pyodide into your application. ```{note} To avoid confusion, note that: - `cdn.jsdelivr.net/pyodide/` distributes Python packages built with Pyodide as well as `pyodide.js` - `cdn.jsdelivr.net/npm/pyodide@0.18.0/` is a mirror of the Pyodide NPM package, which includes none of the WASM files ``` ### Supported browsers Pyodide works in any modern web browser with WebAssembly support. **Tier 1** browsers are tested as part of the test suite with continuous integration, | Browser | Minimal supported version | Release date | | ------- | ------------------------- | --------------- | | Firefox | 70.0 | 22 October 2019 | | Chrome | 71.0 | 4 December 2018 | ```{note} Latest browser versions generally provide more reliable WebAssembly support and will run Pyodide faster, so their use is recommended. ``` **Tier 2** browsers are known to work but they are not systematically tested in Pyodide, | Browser | Minimal supported version | Release date | | ------- | ------------------------- | ----------------- | | Safari | 13.1 | 19 September 2019 | | Edge | 80 | 26 Feb 2020 | Other browsers with WebAssembly support might also work however they are not officially supported. ## Web Workers By default, WebAssembly runs in the main browser thread, and it can make UI non responsive for long running computations. To avoid this situation, one solution is to run {ref}`Pyodide in a WebWorker