GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - eddmpython/pyproc: Real Python runtime in the browser tab: processes and multicore parallelism, checkpoint/time-travel, portable .pymachine images, uv-grade instant environments, a Python server on a real URL. No server, no build step.

BranchesTags
Open more actions menu

Latest commit

 

History

843 Commits
843 Commits

Folders and files

NameName
Last commit message
Last commit date
.githooks
.githooks
 
 
.github
.github
 
 
apps/webComputer
apps/webComputer
 
 
assets
assets
 
 
examples
examples
 
 
pythonSdk
pythonSdk
 
 
scripts
scripts
 
 
skills
skills
 
 
src
src
 
 
standards/webMachine
standards/webMachine
 
 
tests
tests
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.ko.md
CONTRIBUTING.ko.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.ko.md
README.ko.md
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
_headers
_headers
 
 
coiServiceWorker.js
coiServiceWorker.js
 
 
index.d.ts
index.d.ts
 
 
index.js
index.js
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 

Repository files navigation

pyproc

pyproc is a browser computer built around an owned, worker-hosted CPython 3.14 WASI kernel. The npm package includes the verified engine and standard library, so the default runtime does not require a separate engine download or a remote execution service.

Install

npm install pyproc

Serve the installed package from the same origin as your application.

Setup

The supported production browser boundary is current Chromium and Edge with SharedArrayBuffer and cross-origin isolation enabled.

Serve every page that boots pyproc with these headers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

Vite (vite.config.js):

export default {
  server: {
    headers: {
      "Cross-Origin-Opener-Policy": "same-origin",
      "Cross-Origin-Embedder-Policy": "require-corp",
    },
  },
  preview: {
    headers: {
      "Cross-Origin-Opener-Policy": "same-origin",
      "Cross-Origin-Embedder-Policy": "require-corp",
    },
  },
};

Next.js (next.config.js):

module.exports = {
  async headers() {
    return [{
      source: "/:path*",
      headers: [
        { key: "Cross-Origin-Opener-Policy", value: "same-origin" },
        { key: "Cross-Origin-Embedder-Policy", value: "require-corp" },
      ],
    }];
  },
};

Confirm the installed package and headers on this machine:

npx pyproc-playground

checkEnvironment() reports the same Setup requirements when the page is missing a header or JSPI.

Run Python

import { boot } from "pyproc";

const machine = await boot();
const receipt = await machine.run.python("print(sum(range(100)))");

console.log(receipt.output); // 4950
await machine.close();

Every execution returns a structured receipt. Python exceptions produce a stable PyProcError with code === "PYPROC_KERNEL_EXECUTION_ERROR".

Packages

Install with the same commands a Python session already uses:

await machine.run.python(`
%pip install pyproc-native-host==1.0.0
import pyproc_native_host
print(pyproc_native_host.ABI_VERSION)
`);

python -m pip install ... is the same door. import is ordinary CPython import. subprocess pip and arbitrary native wheels are outside this engine: there is no OS process, and WASI cannot load those ABIs. The package environment is the host contract behind those Python commands.

Next

Keep work after close

import { boot, open } from "pyproc";

const machine = await boot({ deterministic: true });
await machine.run.python("counter = 41");
const image = await machine.history.export();
await machine.close();

const restored = await open(image);
console.log(await restored.run.get("counter")); // 41
await restored.close();

A Machine image carries a verified engine reference and content-addressed checkpoint objects. It does not duplicate the engine binary.

Rewind history

Checkpoint, restore, and export live on machine.history.

Native Linux Python

Default boot() stays the owned WASI kernel (CPython 3.14.6). When createWebComputer({ linux }) has a linuxOs guest, the same computer also exposes native Linux CPython over that guest's serial console:

import { createWebComputer } from "pyproc";

const computer = createWebComputer({ linux: { V86, manifest } });
await computer.bootAll();
if (computer.linuxPython.available) {
  await computer.linuxPython.run("print(40 + 2)");
  await computer.linuxPython.pip(["install", "demo==1.0.0"]);
}

This door does not replace boot(). The guest interpreter is CPython 3.12.13, not the WASI 3.14.6 kernel. The slim Buildroot linux image stays without CPython. The catalog asset buildroot-pyproc-python-i686.bin is the image that contains python3 and pip 25.2.

linuxPython.pip sends python3 -m pip over serial. The receipt stdout is that serial transcript. Network indexes and arbitrary wheels are outside the tested door. WASI %pip stays on the owned catalog and is a different path.

Control

Machine Entrance starts the installed pyproc-control and MCP path. The API reference and platform requirements cover the remaining doors.

License

Mozilla Public License 2.0. Copyright 2026 eddmpython.

About

Real Python runtime in the browser tab: processes and multicore parallelism, checkpoint/time-travel, portable .pymachine images, uv-grade instant environments, a Python server on a real URL. No server, no build step.

eddmpython.github.io/pyproc/

Topics

asgibrowsercheckpoint-restoreclient-sidecpythonmultiprocessingopfsparallel-computingpyodidepythonpython-in-browserreactivereplruntimeserverlesstime-travelwasmweb-workerwebassembly

Resources

Readme
MPL-2.0 license

Contributing

Contributing

Security policy

Security policy
Activity

Stars

3 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Sponsor this project

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.