Graph Prime Calculator is a cross-platform prime number calculator developed on Tauri to simultaneously allow beautiful graphs, excellent performance, and code-sharing between platforms. The frontend "framework" of choice is Svelte for simplicity's sake.

The web view displays the beautiful SVG graphs generated by frappe and dygraphs while the whole calculation runs on the excellent-performing rust backend. The application is currently available for all desktop platforms and will be available for the web and mobile as soon as Tauri enables those options.
Download the latest build through GitHub releases here: https://github.com/DoodlesEpic/GraphPrime/releases/latest. Version 2 uses manual updates; download and install new releases from that page.
On Linux, use the AppImage, Debian package, or RPM. Make the AppImage executable before opening it. The rebuilt 2.0.0 AppImage fixes an EGL_BAD_PARAMETER startup failure on newer Linux distributions by using the system Wayland libraries alongside the system graphics drivers. It does not require disabling GPU rendering.
Read the Tauri documentation to check how to run the project https://v2.tauri.app/develop/
To start developing, run:
yarn install --immutableand then you can start the Tauri dev server:
yarn run tauri devUse Node.js 24 LTS, Yarn 4.18.0 (pinned in package.json), and Rust 1.98.1 (pinned in rust-toolchain.toml) with the native Tauri prerequisites.
https://v2.tauri.app/start/prerequisites/
Enable the pinned Yarn version through Corepack:
corepack enableThe frontend uses Vite with the official Svelte plugin. yarn dev serves it on
port 5173; yarn build creates dist/, which Tauri embeds. yarn preview previews
the frontend build in a browser; native calculation and clipboard require Tauri.
Svelte handles the TypeScript types directly; no preprocessor is needed.
Run yarn check, yarn lint, yarn build, and yarn test before releasing. yarn test runs the Rust calculation tests and requires the Tauri development prerequisites.
To build Linux distribution packages locally, install squashfs-tools and run yarn build:linux. This builds the packages and runs scripts/fix-appimage.sh to remove the bundled Wayland libraries that conflict with newer host Mesa drivers. When using tauri build directly, run that script on the resulting AppImage before distributing it.
To test the actual Linux package, install WebKitWebDriver (webkit2gtk-driver on Ubuntu) and Python's GTK 3 bindings, then run:
python3 tests/smoke-linux.py "src-tauri/target/release/bundle/appimage/Graph Prime_2.1.0_amd64.AppImage"The test opens the application, checks external and dynamic CSS, computes known prime sequences, exercises both graphs and fullscreen controls, and verifies the native clipboard. Screenshots and logs are saved in test-results/. For headless testing, prefix the command with dbus-run-session -- xvfb-run -a.
Before a new release, update the versions in package.json, src-tauri/Cargo.toml, src-tauri/Cargo.lock, and src-tauri/tauri.conf.json. The Test workflow builds and checks Linux, Windows, macOS ARM64, and macOS Intel packages. Pushing a version tag runs the same checks and uploads all packages and SHA256SUMS to a draft GitHub release only after every build succeeds. Write the release notes in docs/releases/v<version>.md before tagging; the workflow uses that file for the draft. Verify the packaged application on a desktop and publish the draft. No updater keys, update signatures, or external version gist are used.
The application uses Tauri 2 capabilities to permit clipboard writes from its local main window. The legacy isolation iframe has been removed. CSP remains enabled for other resources; local CSS and inline styles are allowed because the chart libraries and CodeMirror generate styles dynamically.
Pull requests are protected by the Dependency Review GitHub Action workflow, and this check should remain enabled and required for protected branches. If dependency review fails due to a vulnerable transitive dependency, first update the direct parent dependency or lockfile to a patched version where possible. If no upstream fix is available yet, document the transitive exposure and open a follow-up issue for tracking rather than broadening policy exceptions.
Performance regression checks and the development branch workflow are documented in docs/performance.md.
This project is licensed under the GNU GPL v3 free software license. Read the LICENSE file for more information.



