Skip to content

Singular/Singular-in-browser

Repository files navigation

Singular in Browser

This repository contains the browser/WebAssembly build support and web interface for running Singular in a user's browser sandbox. Try here:

https://singular-in-browser.pages.dev

The code builds on PR #1360 (and preserves the respective commits).

Repo

Tracked:

  • Emscripten build scripts
  • browser frontend sources in web-workbench/public
  • worker sources, deployment examples, and documentation
  • placeholders such as web-workbench/public/engine/README.md.

Not tracked:

  • Singular.js
  • Singular.wasm
  • Singular.data
  • generated engine manifests
  • release zip and dist/
  • local Singular checkouts and dependency build trees.

The CI stores build output as workflow artifacts (generated on pull requests or manual builds). Published releases attach the zip, manifest, and signature as GitHub Release assets.

Building In CI

Implemented in .github/workflows/build.yml:

  1. checks out this repository
  2. checks out Singular/Singular at the selected ref, default is spielwiese
  3. overlays this repo into Singular/emscripten
  4. builds the WebAssembly engine
  5. packages the static web app
  6. uploads the package as a workflow artifact.

For GitHub Releases, the workflow signs the release manifest and attaches the zip plus manifest files to the GitHub Release. The repository secrets have to be configured before publishing signed releases:

SINGULAR_WASM_RELEASE_PRIVATE_KEY_PEM
SINGULAR_WASM_RELEASE_PUBLIC_KEY_PEM

Pull-request builds do not need signing secrets and should remain read-only.

Local Serving for Tests

After web-workbench/public/engine/ and web-workbench/public/vendor/ are populated:

bash run-web-workbench.sh

open

http://127.0.0.1:9999/

The local server sends the COOP/COEP headers required for SharedArrayBuffer.

Deployment

The Singular webserver should serve immutable release directories, for example:

https://www.singular.uni-kl.de/wasm/releases/2026-06-04/

Manual deployment is:

  1. download the release zip from the GitHub Release
  2. unpack it into a new release directory on the Singular webserver
  3. make sure the webserver sends the headers from web-workbench/deploy/nginx.conf
  4. keep old release directories immutable
  5. optionally update a latest redirect after verification.

Detailed signing and deployment instructions are in web-workbench/docs/DEPLOYMENT.md.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors