Skip to main content

SciCore

https://img.shields.io/badge/powered%20by-rsnumpy-blue.svg https://img.shields.io/pypi/v/scirs https://img.shields.io/badge/python-3.12%2B-blue https://img.shields.io/badge/built%20with-Rust-orange

SciCore is a port of SciPy onto rsnumpy — a Rust-backed, NumPy-compatible array library. It keeps SciPy’s algorithms and API, migrates compiled kernels to Rust incrementally, and swaps the array backend from NumPy to rsnumpy.

The import name stays scicore, so it is a drop-in replacement:

pip install scirs
python -c "import scicore.linalg"

Quick Start

Install from PyPI:

pip install scirs

Use any SciCore module the same way you would use its SciPy counterpart:

import scicore.linalg as la
import scicore.optimize as opt
import scicore.signal as sig
import scicore.stats as stats

Modules

SciCore mirrors SciPy’s module structure:

  • scicore.linalg — linear algebra (BLAS/LAPACK)

  • scicore.optimize — optimization and root finding

  • scicore.signal — signal processing

  • scicore.stats — statistics

  • scicore.integrate — integration and ODEs

  • scicore.interpolate — interpolation

  • scicore.fft / scicore.fftpack — Fourier transforms

  • scicore.sparse — sparse matrices

  • scicore.spatial — spatial structures and distances

  • scicore.special — special functions

  • scicore.ndimage — n-dimensional image processing

  • scicore.cluster — clustering

  • scicore.io — I/O utilities

  • scicore.datasets — sample datasets

  • scicore.constants — physical constants

  • scicore.differentiate — differentiation

Why

SciCore’s compiled kernels are C, C++, Cython and Fortran. SciCore keeps the algorithms, migrates compiled kernels to Rust incrementally, and swaps the array backend from NumPy to rsnumpy. Until that migration is complete, some native extensions still use the upstream implementations. Two consequences worth knowing up front:

  • No Python NumPy dependency at runtime. Arrays are rsnumpy arrays. NumPy remains a build-time dependency for the C/Cython extensions that have not yet been ported.

  • Native-kernel migration is ongoing. A growing list of kernels now run in Rust — signal filtering (lfilter, sosfilt, upfirdn, N-D correlate, convolve2d/correlate2d, remez FIR design, spline filtering, 2-D median filtering), FFTPACK packed-spectrum convolution, cluster VQ assignment, graph ordering (reverse Cuthill-McKee), least-squares Givens elimination, connected-component labeling, Hausdorff distance search, Boyett/Patefield contingency-table sampling, and more. Other C, C++, Cython, and Fortran production extensions are still being replaced.

  • Recomputation over incremental update. Where upstream keeps a factorisation up to date with Givens rotations (scicore.linalg.qr_update and friends), this port recomputes the factorisation. The results match, but the complexity is O(m n²) rather than O(m n). Each affected function says so in its docstring.

Status

This is a work in progress. Native kernels are still being migrated to Rust; until that is complete, some native extensions still use the upstream implementations. Treat the API as experimental and pin the version if you depend on it.

Building from source

The build is driven by maturin: it compiles the pyo3 crate in rust/ into the scicore._scicore_rs extension and packages the python/ tree into a wheel.

There is a helper that does the whole thing and installs the result into .venv:

./build_wheel.sh

Useful flags:

./build_wheel.sh --debug        # debug build instead of release
./build_wheel.sh --out-dir dist # where to put the wheel
./build_wheel.sh --python /path/to/python

To do it by hand:

pip install maturin
maturin build --release -i python -o dist
pip install dist/*.whl

build_wheel.sh also runs cargo fmt --check and cargo clippy before building, so a failing lint stops the build rather than shipping a wheel.

Requirements: a Rust toolchain, Python >= 3.12.

Development

Clone the repository:

git clone --recursive https://github.com/YJ-Niu/scicore.git

The --recursive flag initializes the doc submodule (scipy-mathjax for formula rendering in the docs).

Run the Rust unit tests from the workspace root:

cd rust
cargo test --workspace

The repository’s SciCore-owned Python tests live in test/ and tools/. pytest.ini limits python -m pytest to those tests so the vendored upstream SciCore test corpus is not run as if it were a SciCore suite. The Python tests cover the rsnumpy migration and Rust-backed Python adapters; the Rust workspace tests cover each migrated kernel.

License

BSD 3-Clause, matching upstream SciCore. See LICENSE.txt.

Metadata

Release files for scirs 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for scirs 0.1.5
File
scirs-0.1.5-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
scirs-0.1.5-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp315-cp315-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.15 CPython 3.15 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
scirs-0.1.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
scirs-0.1.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
scirs-0.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
scirs-0.1.5-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.14 CPython 3.14 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
scirs-0.1.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
scirs-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
scirs-0.1.5-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.13 CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
scirs-0.1.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
scirs-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
scirs-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
scirs-0.1.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 86.2 MB

Release files / scirs-0.1.5-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a2461148f1c8bcba0b4561f8e90521bd416f4911095f40420aca8540e25ab585
BLAKE2b-256 checksum
How to use checksums
cddebaba15861b9fa79a35c158685d2600e133801d55e19560b107c5d3b0c6d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp315-cp315-win_amd64.whl

Download URL scirs-0.1.5-cp315-cp315-win_amd64.whl
Size 4.6 MB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
4c827fad7c4d2764d1c2ba93b04b1ec9d0021fafaac42f9561ede3cb8acac48b
BLAKE2b-256 checksum
How to use checksums
d0a1e86420344170cb91ead046b5b443ec68eea45046a994819b2cb6cb2b1c2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b3fb902cb15fc8cecf5a6d2d8913f3141071a8dd4a9aea84e913154639623919
BLAKE2b-256 checksum
How to use checksums
5906a106d2dc966580f832c51db91af7a9aa62beb229d19d8c6f8fb83558bd27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp315-cp315-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL scirs-0.1.5-cp315-cp315-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 5.2 MB
Tags CPython 3.15 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7092f6dd814a7a0d27bc9fdda6b244c97df58f28e289d99f1f22e1a3174983c0
BLAKE2b-256 checksum
How to use checksums
363a0130c816abeb44030eabfe6e094ee5badb336701431815d5182a7ee41535
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
510f2b57a9c25ab88d75b578c38c820c870c4754cfd3ccfe5de5a5e2b8232fce
BLAKE2b-256 checksum
How to use checksums
ddb0f2e62afec9ce3c33674527da3ede9d5be365d8f550e37831bcd8b9f73d3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL scirs-0.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f0e08f601b2b68edc84672ecf7510b0095165f8e240c41416ec8ead900fec934
BLAKE2b-256 checksum
How to use checksums
14380fc8ef13371d98eb615fabef6292c399ae0ba4f06ef4628a10d2258bf46f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314-win_amd64.whl

Download URL scirs-0.1.5-cp314-cp314-win_amd64.whl
Size 4.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
13030cf03a39ddf4f6b6325b111ed9209eefdd7b1d244b734ec7790b8ddba0bd
BLAKE2b-256 checksum
How to use checksums
5e7c7a354f7f6c65eb285ba94d59d511456f23a5f270d61edbfdd931d05e2e97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f49a51f340c33b010a2d3c95449001c40a1cb4fc0f32fbc7ac8d7c962c310fb8
BLAKE2b-256 checksum
How to use checksums
262e7d7ae85c71de2121320ad21007d7fb178571a374ed07beda6ce148e39ea9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL scirs-0.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.7 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8696dc85e1c7753e1302ff9534f03a9099bf1f0e1a179ebd63ca92ab071eb850
BLAKE2b-256 checksum
How to use checksums
8f67342c15e01682c7b0b7fc87522b9f432ba9bb732dbbb30f67ccc2c33d8d9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL scirs-0.1.5-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 5.2 MB
Tags CPython 3.14 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
785815ec5fe864e4dffeb1111cf01996e34e09a6150b083a0a3a3f21e6fb743e
BLAKE2b-256 checksum
How to use checksums
6351a2705ef386d756de0156ee3e5548accd193621606e66de67d5a01f384293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp313-cp313-win_amd64.whl

Download URL scirs-0.1.5-cp313-cp313-win_amd64.whl
Size 4.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ceb7ca640979db83a3aa49dae53a51e55cb602551d3ef497a82e39c9c2febac6
BLAKE2b-256 checksum
How to use checksums
09d5a3a22dd87589d964d5fb423a0df17409367540aa4078a2874285cb941ff9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
91570b4709d796222b7697c5174835cace90ce26a02142cf21ce4393a85fa1e4
BLAKE2b-256 checksum
How to use checksums
645393dc16fa5d94fb00b82236b6c9730d28bab0e760f219220b4279ac3f91e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL scirs-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.7 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
cd332de6e47040f45fce9fae8457dfb58c6de2f8c1a52b65221de0fdf75e0681
BLAKE2b-256 checksum
How to use checksums
59b2171f0bb713f5c3ae1f02b4e9a0b595d7171b66fd48dae28f09f18a20d815
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL scirs-0.1.5-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 5.2 MB
Tags CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e4d233ad732bbfcec8a55ac4ccddf3b03ec8a3eb90e9e032fc42b3b319662201
BLAKE2b-256 checksum
How to use checksums
70e61dbf9a03afebb565793208d81ebf01bd2100f0e3ccee460c1cdd3c9cee0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp312-cp312-win_amd64.whl

Download URL scirs-0.1.5-cp312-cp312-win_amd64.whl
Size 4.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
60266a9dc0a9f7515cd8c33f564e3b2689b3f467db484ed0b1b20c0ba31d47d4
BLAKE2b-256 checksum
How to use checksums
d4a3cdbad945c667f4087fcf437a341e1d1cbc971758c3243e6589b375acb2fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scirs-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
299aff47ab9844f2eeeda9a95ac68825157f7845e6b67187ae49d0bbcc1ebe05
BLAKE2b-256 checksum
How to use checksums
83d1aeeaa72309bc0450ef5ebeef05215d715c3a3267c4608e12cca537897efc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL scirs-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.7 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
34b80b09ac87dfcf742a5a465f42790ef2da7282abc1acb2f46925d919fb8613
BLAKE2b-256 checksum
How to use checksums
5c66c205551881caaae307d473df50de33704a75a2774c5fdcac53cbde892789
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / scirs-0.1.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL scirs-0.1.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 5.2 MB
Tags CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
afe2dd3a578c9e219942359d33e93e7edd1d02622bdb630fe859452d3eae8cd5
BLAKE2b-256 checksum
How to use checksums
6a182d4642dff52534e2804c904df601a11ba0b84ad179924e6156f0a2a010be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for scirs 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page