Installation and versioning¶
Numerisect 0.5.0 is an experimental, source-distributed pre-release. No
official RPM, DEB, AppImage, macOS package, Windows executable, or other binary
installer is published. The repository includes install.sh as a convenience
for installing a checked-out source revision into a user-owned directory.
Verified and expected hosts¶
The current application, source installer, and complete native test suite have been exercised on Fedora Linux x86-64. The installer contains paths for Debian/Ubuntu (including WSL), Arch Linux, and macOS with Homebrew, but the Numerisect project has not yet completed clean-host verification on those systems. Treat them as expected compatibility, not a tested guarantee.
The application installer accepts Linux/WSL and macOS on x86-64 or ARM64. However, the automated YAFU and Msieve source recipes currently reject ARM64; those two recipes are verified only for x86-64 Linux/WSL. Native Windows outside WSL is unsupported.
Dependency groups¶
Required Python runtime dependencies:
- Python 3.11 or newer;
- FastAPI;
- Uvicorn.
Development and validation dependencies are available through the test and
dev extras: pytest, HTTPX, Ruff, and Build.
System build prerequisites used by the full native setup are Git, Make, a C/C++
compiler, CMake, pkg-config, Autoconf, Automake, Libtool, GMP, MPFR, and FLINT
development files. On macOS, Homebrew's glibtoolize supplies the Libtool
command expected by the source builds.
Optional native engines are YAFU, Msieve, GMP-ECM, CADO-NFS, PARI/GP, primesieve, primecount, and the FLINT-backed Numerisect zeta helper. Most Prime Tools require PARI/GP; 64-bit interval sieving and large exact counting use primesieve and primecount. Zeta Tools require FLINT/Arb and the compiled helper. Factorization backends require their corresponding executable. Missing optional engines do not prevent the browser shell from starting.
Run from a source checkout¶
git clone https://github.com/reza-ghazi/Numerisect.git
cd Numerisect
python3 -m venv .venv
.venv/bin/pip install -e '.[test,dev]'
./run.sh
The browser opens http://127.0.0.1:8765/. The service binds to loopback only.
The browser UI depends on this local FastAPI process and is not a standalone
static site. Calculations, SQLite job state, engine logs, and output/ reports
remain local unless the user deliberately shares them.
Install a versioned user-local copy¶
From the cloned repository:
The script resolves its own directory, so absolute and relative invocations also work when the current directory is elsewhere. It validates the version, operating system, architecture, Python, build commands, and native development libraries. If system packages are missing, it displays the package manager, the exact package list, and whether administrative access is needed, then asks for confirmation.
On Linux and WSL, confirmed dependency installation may execute sudo dnf
install, sudo apt-get update followed by sudo apt-get install, or sudo
pacman -Sy --needed. On macOS it may execute brew install without sudo.
The script never runs a general system upgrade command and does not silently
upgrade pip.
Useful options:
./install.sh --check
./install.sh --no-system-deps
./install.sh --yes
./install.sh --prefix "$HOME/.local/share/numerisect"
./install.sh --force
--check is read-only. --no-system-deps refuses package-manager changes.
--yes noninteractively approves only the exact package transaction displayed
by the script and is intended for deliberate automation. --force preserves
the existing version directory under a timestamped backup before replacement.
A failed application install retains an .install-incomplete marker and never
updates the stable current link or reports success.
The default layout is:
~/.local/share/numerisect/
├── bin/numerisect
├── current -> releases/0.5.0
├── releases/0.5.0/
├── state/
└── output/
Add ~/.local/share/numerisect/bin to PATH if desired, then run
numerisect. The state and output directories remain shared across versioned
application upgrades.
Optional native-engine builds¶
Starting Numerisect never downloads, compiles, or installs an engine. It only reports availability. When engines are missing, the browser displays a review button and names the affected components. Installation begins only after the user accepts a confirmation warning that the operation can require substantial time, CPU, network bandwidth, and disk space.
Approved engine installation clones exact commits into state/tools/src,
verifies those commits, compiles locally, and installs under state/tools.
Pins, upstream URLs, licenses, interaction types, and platform notes are stored
in numerisect/engine_manifest.toml; no mutable latest-release selection is
used. The current implementation uses Git rather than source archives, so no
archive checksum applies. Third-party sources are not committed to this
repository.
The reviewed 0.5.0 manifest pins primesieve 12.15 and primecount 8.5 in
addition to the existing engines. primecount is built against the managed
primesieve development tree so a system executable without development files
cannot produce a mismatched build.
To review a proposed upstream pin without modifying the manifest:
After reviewing the upstream ref and license, rerun with --write, inspect the
manifest diff, update THIRD_PARTY_LICENSES.md, and validate a clean build.
Failures and diagnostics¶
The setup banner reports the component that failed and keeps detailed commands in the local state log. Full installation logs and executable paths are not returned by ordinary API status responses. Resolve the named prerequisite or engine build failure, restart Numerisect, and retry explicitly from the banner.
The System diagnostics workspace (/#diagnostics) creates a sanitized
local readiness report containing engine status, pinned revision prefixes,
licenses, build-command availability, CPU count, reported memory, and CADO
parameter sizes. It deliberately excludes hostnames, usernames, network
addresses, absolute paths, job inputs, and results. The exact
output/diagnostics-<id>.txt path is shown before the user chooses whether to
share it.
See the localhost security model for API authentication and safe command-line access. See third-party licenses before redistributing any built native component.