Skip to main content

SciRS2: A comprehensive scientific computing library in Rust - Python bindings (SciPy alternative) with async support and pandas integration

Project description

SciRS2 - Python Bindings

SciRS2: High-performance scientific computing in Rust with Python bindings. A comprehensive, type-safe alternative to SciPy with exceptional performance for statistical analysis, linear algebra, FFT, signal processing, clustering, and more.

PyPI License Python Version

Overview

scirs2-python provides Python bindings for the entire SciRS2 scientific computing ecosystem using PyO3 and Maturin. It leverages scirs2-numpy — a SciRS2-maintained fork of rust-numpy with native ndarray 0.17 support — for zero-copy NumPy array interoperability.

Key Characteristics

  • Exceptional Statistics Performance: Up to 410x faster than SciPy for higher-order moments (skewness, kurtosis) on small/medium datasets
  • Pure Rust Stack: OxiBLAS for linear algebra, OxiFFT for transforms — no system OpenBLAS or FFTW required
  • Zero-Copy NumPy Interop: Direct memory sharing between Rust and NumPy arrays via scirs2-numpy
  • SciPy-Compatible API: Familiar naming conventions for Python scientists migrating from SciPy
  • Maturin Build System: Single pip install scirs2 — no C/Fortran compiler needed
  • Type Stubs: .pyi files for full IDE autocompletion and type checking
  • Feature-Gated Modules: Enable only the SciRS2 crates you need

Architecture

scirs2-python/
├── src/
│   ├── lib.rs          - PyO3 module registration
│   ├── linalg.rs       - Linear algebra (OxiBLAS-powered)
│   ├── stats.rs        - Statistics and distributions
│   ├── fft.rs          - FFT (OxiFFT-powered)
│   ├── cluster.rs      - Clustering algorithms
│   ├── series.rs       - Time series analysis
│   ├── signal.rs       - Signal processing
│   ├── optimize.rs     - Optimization algorithms
│   ├── spatial.rs      - Spatial algorithms
│   ├── sparse.rs       - Sparse matrix operations
│   ├── ndimage.rs      - N-dimensional image processing
│   ├── graph.rs        - Graph algorithms
│   ├── metrics.rs      - ML evaluation metrics
│   ├── io.rs           - File I/O (CSV, HDF5, Parquet, etc.)
│   ├── datasets.rs     - Dataset loading and generation
│   ├── transform.rs    - Dimensionality reduction
│   ├── text.rs         - NLP and text processing
│   ├── vision.rs       - Computer vision
│   ├── linalg_ext.rs   - Extended linear algebra (v0.3.4+)
│   ├── signal_ext.rs   - Extended signal processing (v0.3.4+)
│   ├── optimize_ext.rs - Extended optimization (v0.3.4+)
│   └── stats/
│       └── mcmc_gp.rs  - MCMC and Gaussian process bindings (v0.3.4+)
├── tests/
│   └── test_module_structure.py
├── scirs2.pyi          - Type stubs
└── pyproject.toml

Installation

pip install scirs2

For development (builds Rust from source):

pip install maturin
git clone https://github.com/cool-japan/scirs
cd scirs/scirs2-python
maturin develop --release

No system BLAS, OpenBLAS, or FFTW installation required — SciRS2 uses pure Rust OxiBLAS and OxiFFT.

Quick Start

Statistics (Fastest Module)

SciRS2 delivers exceptional speed for statistical analysis:

import numpy as np
import scirs2

data = np.random.randn(1000)

# Basic statistics (5-25x faster than NumPy on small-medium data)
mean     = scirs2.mean_py(data)           # 8x faster
std      = scirs2.std_py(data, 0)         # 14x faster
var      = scirs2.var_py(data, 1)
median   = scirs2.median_py(data)
iqr      = scirs2.iqr_py(data)

# Higher-order moments (50-410x faster than SciPy!)
skewness = scirs2.skew_py(data)           # 52x faster
kurtosis = scirs2.kurtosis_py(data)       # 52x faster

# Correlation (17-127x faster)
x = np.random.randn(100)
y = np.random.randn(100)
corr = scirs2.correlation_py(x, y)
cov  = scirs2.covariance_py(x, y, 1)

# Full descriptive summary
summary = scirs2.describe_py(data)
# Returns: {'mean', 'std', 'min', 'max', 'skewness', 'kurtosis', ...}

Linear Algebra

import numpy as np
import scirs2

A = np.array([[4.0, 2.0], [2.0, 3.0]])
b = np.array([1.0, 2.0])

# Basic operations
det   = scirs2.det_py(A)
inv   = scirs2.inv_py(A)
trace = scirs2.trace_py(A)

# Decompositions
lu   = scirs2.lu_py(A)       # {'L', 'U', 'P'}
qr   = scirs2.qr_py(A)       # {'Q', 'R'}
svd  = scirs2.svd_py(A)      # {'U', 'S', 'Vt'}
chol = scirs2.cholesky_py(A)

# Eigenvalues/vectors
eig  = scirs2.eig_py(A)      # {'eigenvalues_real', 'eigenvalues_imag', 'eigenvectors'}
eigh = scirs2.eigh_py(A)     # For symmetric matrices

# Solvers
x     = scirs2.solve_py(A, b)
lstsq = scirs2.lstsq_py(A, b)

# Norms and properties
norm_fro = scirs2.matrix_norm_py(A, "fro")
norm_vec = scirs2.vector_norm_py(b, 2)
cond     = scirs2.cond_py(A)
rank     = scirs2.matrix_rank_py(A)

FFT (OxiFFT Backend)

import numpy as np
import scirs2

data = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0])

# FFT (2-5x faster than NumPy on small data < 2K samples)
fft_result = scirs2.fft_py(data)           # {'real', 'imag'}
real, imag = fft_result['real'], fft_result['imag']

ifft_result = scirs2.ifft_py(
    np.array(real), np.array(imag)
)

rfft  = scirs2.rfft_py(data)
irfft = scirs2.irfft_py(
    np.array(rfft['real']), np.array(rfft['imag']), len(data)
)

# DCT
dct  = scirs2.dct_py(data, 2)             # Type-II DCT
idct = scirs2.idct_py(np.array(dct), 2)

# Helpers
freqs    = scirs2.fftfreq_py(len(data), 1.0)
rfreqs   = scirs2.rfftfreq_py(len(data), 1.0)
shifted  = scirs2.fftshift_py(data)
fast_len = scirs2.next_fast_len_py(100, False)

Clustering

import numpy as np
import scirs2

X = np.vstack([
    np.random.randn(100, 2) + [0, 0],
    np.random.randn(100, 2) + [5, 5],
])

# K-Means
kmeans = scirs2.KMeans(n_clusters=2)
kmeans.fit(X)
labels   = kmeans.labels
inertia  = kmeans.inertia_

# Cluster quality metrics
silhouette = scirs2.silhouette_score_py(X, labels)
db_score   = scirs2.davies_bouldin_score_py(X, labels)
ch_score   = scirs2.calinski_harabasz_score_py(X, labels)

# Preprocessing
X_std  = scirs2.standardize_py(X, True)
X_norm = scirs2.normalize_py(X, "l2")

Time Series

import numpy as np
import scirs2

data = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0])
ts   = scirs2.PyTimeSeries(data, None)

# Transformations
diff1    = scirs2.apply_differencing(ts, 1)
seasonal = scirs2.apply_seasonal_differencing(ts, 4)

# ARIMA modelling
arima = scirs2.PyARIMA(1, 1, 0)
arima.fit(ts)
forecast = arima.forecast(5)
print(arima.summary())

# Box-Cox transform
result      = scirs2.boxcox_transform(ts, None)   # auto lambda
transformed = result['transformed']
lambda_val  = result['lambda']
recovered   = scirs2.boxcox_inverse(np.array(transformed), lambda_val)

# Stationarity test
adf = scirs2.adf_test(ts, None)
print(f"ADF statistic: {adf['statistic']}, p-value: {adf['p_value']}")

# STL decomposition
decomp   = scirs2.stl_decomposition(ts, 4)
trend    = decomp['trend']
seasonal = decomp['seasonal']
residual = decomp['residual']

MCMC and Gaussian Processes (v0.3.4+)

import numpy as np
import scirs2

# Gaussian Process regression
X_train = np.linspace(0, 2 * np.pi, 20).reshape(-1, 1)
y_train = np.sin(X_train.ravel()) + 0.1 * np.random.randn(20)

gp = scirs2.GaussianProcessRegressor(kernel='rbf', length_scale=1.0, noise=0.01)
gp.fit(X_train, y_train)

X_test = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
mean, std = gp.predict(X_test, return_std=True)

# MCMC sampling
sampler = scirs2.MetropolisHastings(log_prob_fn=my_log_prob, step_size=0.1)
samples = sampler.sample(initial=np.zeros(3), n_samples=10000, burnin=1000)

Extended Optimization (v0.3.4+)

import numpy as np
import scirs2

# Gradient-free optimization
result = scirs2.minimize_nelder_mead(
    lambda x: (x[0] - 1)**2 + (x[1] + 2)**2,
    x0=np.array([0.0, 0.0]),
    tol=1e-8
)

# Constrained optimization
result = scirs2.minimize_slsqp(
    fun=objective,
    x0=x0,
    constraints=[{'type': 'eq', 'fun': equality_constraint}],
    bounds=[(0, None), (0, None)]
)

Performance Guide

Where SciRS2 Excels

Operation Data Size Speedup vs SciPy Notes
Skewness 100 410x Higher-order moments
Kurtosis 100 408x Higher-order moments
Pearson correlation 100 127x Small dataset
IQR 100 95x Quartile calculations
Percentile 100 49x Distribution analysis
Skewness 1,000 52x Medium dataset
Std 100 25x Small data variability
Mean 100 11x Small data average
FFT (rfft) 128 5.2x Small signal
Linear solve 10x10 9.4x Small systems

Where NumPy/SciPy May Win

Operation Size Notes
Linear algebra (SVD, QR) 200x200+ SciPy LAPACK highly optimized
FFT 32K+ samples NumPy FFT optimized for large N
Basic stats 100K+ elements NumPy C SIMD optimizations

Recommended Hybrid Approach

import numpy as np
import scirs2

data = np.random.randn(1000)

# Use scirs2 for statistics on small-medium data
skewness = scirs2.skew_py(data)      # 52x faster than SciPy
kurtosis = scirs2.kurtosis_py(data)  # 52x faster than SciPy
mean     = scirs2.mean_py(data)      # 8x faster
std      = scirs2.std_py(data, 0)    # 14x faster

# Use scirs2 for FFT on small signals
signal = np.random.randn(512)
rfft   = scirs2.rfft_py(signal)      # 3x faster than NumPy

# Fall back to NumPy/SciPy for large transforms
large_signal = np.random.randn(65536)
spectrum     = np.fft.rfft(large_signal)  # NumPy wins here

Feature Flags

Enable specific SciRS2 crates in pyproject.toml:

[features]
default = ["linalg", "stats", "fft", "cluster", "series"]
linalg      = ["scirs2-linalg"]
stats       = ["scirs2-stats"]
fft         = ["scirs2-fft"]
cluster     = ["scirs2-cluster"]
series      = ["scirs2-series"]
signal      = ["scirs2-signal"]
optimize    = ["scirs2-optimize"]
spatial     = ["scirs2-spatial"]
sparse      = ["scirs2-sparse"]
ndimage     = ["scirs2-ndimage"]
graph       = ["scirs2-graph"]
metrics     = ["scirs2-metrics"]
io          = ["scirs2-io"]
datasets    = ["scirs2-datasets"]
transform   = ["scirs2-transform"]
text        = ["scirs2-text"]
vision      = ["scirs2-vision"]

Type Hints

import scirs2

# IDE provides full autocompletion from .pyi stubs
result: float    = scirs2.det_py(matrix)
svd_res: dict    = scirs2.svd_py(matrix)
fft_res: dict    = scirs2.fft_py(data)
labels: np.ndarray = scirs2.KMeans(n_clusters=3).fit_predict(X)

Building from Source

# 1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 2. Install maturin
pip install maturin

# 3. Build and install in development mode
cd scirs2-python
maturin develop --release

# 4. Run tests
pip install pytest numpy
pytest tests/

Dependencies

  • PyO3 - Rust/Python FFI
  • scirs2-numpy - SciRS2 fork of rust-numpy with ndarray 0.17 support
  • Maturin - Build system for Python/Rust extensions
  • OxiBLAS - Pure Rust BLAS/LAPACK (no system dependencies)
  • OxiFFT - Pure Rust FFT

Related Projects

  • SciRS2 Core - Rust scientific computing library
  • scirs2-numpy - NumPy/ndarray 0.17 bridge
  • NumPy - Array operations
  • SciPy - Python scientific computing (API inspiration)

License

Licensed under the Apache License 2.0. See LICENSE for details.

Authors

COOLJAPAN OU (Team KitaSan)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scirs2-0.3.4.tar.gz (32.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp314-cp314-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.14Windows x86-64

scirs2-0.3.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp314-cp314-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

scirs2-0.3.4-cp314-cp314-macosx_10_12_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

scirs2-0.3.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp313-cp313-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.13Windows x86-64

scirs2-0.3.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp313-cp313-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

scirs2-0.3.4-cp313-cp313-macosx_10_12_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

scirs2-0.3.4-cp312-cp312-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.12Windows x86-64

scirs2-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp312-cp312-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

scirs2-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

scirs2-0.3.4-cp311-cp311-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.11Windows x86-64

scirs2-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp311-cp311-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

scirs2-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

scirs2-0.3.4-cp310-cp310-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.10Windows x86-64

scirs2-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

scirs2-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

scirs2-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file scirs2-0.3.4.tar.gz.

File metadata

  • Download URL: scirs2-0.3.4.tar.gz
  • Upload date:
  • Size: 32.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4.tar.gz
Algorithm Hash digest
SHA256 da71dcff58d6829d92141c154d9981966ee3bb5c1e9551a8d8eae6c2d3321e45
MD5 a6e15ce8d6dde8c4a2a1203d94389e5d
BLAKE2b-256 d3bf7ea26225043438ed3592444a4c936e30a34c2f93fb199039b73c3a405376

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4.tar.gz:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aea7395e28dc4c202523a42c2194884297430873fb74050456339209d0298b0a
MD5 90d9661782f732127c2d346fde1f0b4e
BLAKE2b-256 f7963f3fbbe3b477f830d9def2dd4f2773e02a2f33d26348c32d1a428a746b35

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d66cb9dd0820c48606692883e5979b54ae84ca2016f9198e8d11c0528d98fada
MD5 d92f1e4dc67efad34bc8abe35c949784
BLAKE2b-256 493f2a6cffab2da3adfa622170ebec6e14902c50d8e6388d6a3d2ab3b87807ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24cb895cc3e125e0ce8633e2fe0474e99c28d36dec1600fa0681035833bbaf4e
MD5 273442504554e38c747ebc6fa84cef9e
BLAKE2b-256 0dc92c1de29bd76d8907a7b2b60e3ee0d7ddd3813c72e9e1e7c5fce2b8764cc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: scirs2-0.3.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7c7561cc4b58c428b2652feb1615432792d707ca8bf4a0f4a246f520253d6a7c
MD5 7169b027977505759b87faf734b865c4
BLAKE2b-256 f49855f07ea94c1d7b0ab0ef7de4407274f4194817ab9283d1a8f438f785282d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 715037bf8656fe3d3f7fd729b232632f8395f8bffc67f878926eb921e432a0dd
MD5 329996ec932cabc1ab01b9000b632eee
BLAKE2b-256 71f28add820a35c815119443ad708a1094b48c3c2ed922376549d67eb4e61451

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bcdcdda385ec16676e3676aea4a3001bf215401b4ccbe6e8aa59de8ef00c0e2e
MD5 b5e2921cb9acc0ae8e0877e937c8b55f
BLAKE2b-256 3693a3219945c72b61d4428e0508a5778d4d5ff4fa9abe8b58e17c9d1bd1d347

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec17d47a709a4d3f865f70232993c6bc05f8da6aba050177a09f9629ddef10f0
MD5 396d0e824f144c3d1c849ca4aa73c006
BLAKE2b-256 7865fb2271c023c9b774669046e308627d6d1cebba2b692f867e0995221cba96

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 10892ac540d24a2dbbe12a0d36e7df24a00fd8ba4b6592797c21fa410d0d4ced
MD5 d481afeb4d272ec0c2c52be70e37ceda
BLAKE2b-256 8c17929428e09dcf687fe1ea6c6392891b5cb6e5c889a92a27efbbd97844e53b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d671d1200bcbca38617fb9caf276ad118e981c4f9e8a46ebfabfd05828deafb8
MD5 127ca995d481e3da6991022ecb05fe6d
BLAKE2b-256 794129e5eb6dc19c2a9b81488b4d4ba970bf6a2f0fc4eda8021a19e0cf443426

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: scirs2-0.3.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6cc3b01f8b782a12f6ceab01442983b7d7da4da6544f66af4b170ff8ebf3084a
MD5 c5abd7ca1ec60128fab87dfc21e183a5
BLAKE2b-256 4b2cf2d933a61172d127ceabfd70b3df23740df46fd336969de391445f511ee5

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09fec73e5bca43f61384557d2de012e8f23ab7ecfce5e57c042930605f64997c
MD5 9cbee659781f751f7e3ef014423ae131
BLAKE2b-256 cf4ade6b6680a6a3c724b3efa7e2a0f66b798b0f148d64214031afe724a0d534

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f261769fc68dae6c9112d94f843a0964b3c4e8111239d261aaedd3bfc7bd28a9
MD5 3ebe5c05cf06e24cadcca1d634fe25d0
BLAKE2b-256 78fdf78dab43f6be3a0e83b225dc15c43b772f28d18651f50816b444ba455614

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b704c2813021164664a3b38f05d28fb6e9ad1b00da750d5c3c49548a6a04a6d
MD5 256bb1c6561cea4e2d4333b0954d070a
BLAKE2b-256 f3375ee29525362e00b024b656f4959f370034d700519d9facef148a995cf73b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 15376caff04a0cf92d71c571ef785465cc70e0df39af7608481d6f0ddd4338fa
MD5 099788c34476b10b673511438154573f
BLAKE2b-256 24ddd43ee59a72848c1187afa95ecc3a96250be30a83a8ffa223b7bb680f96e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: scirs2-0.3.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 711f85baeeb9c60a4964f37f70110858ec6b122dc1be0445c77d6666bfd8e99b
MD5 3e786836c18c1a7438c9626804652acb
BLAKE2b-256 f2aad330fa7f0fe8f85bf22b1a7c710ff3f96b0971dc66d37d44d7f3551b9e53

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp312-cp312-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c5289821155e2147091df66c018a7d07ff6e908179f443ccb712c154a3234854
MD5 eca8916f39a025004a0b476e072cb6d6
BLAKE2b-256 e6976b76c64f83c08af5ee8b1d7f11ea3f096b8db43d6c73fe7f0a5225c296e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 13e99699fffcbef30bf39f03bd172b7aa3addbb73048b49dde850d7c075795a1
MD5 18a1f59ad8a1a7cd50f4f7744ef34756
BLAKE2b-256 13cb88e87216c7e4530eb734c60350c1ddf6552b408d21455b95830d3f4b32a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de7593494bab3ff2c9a594a25fb7574e6036a7d3c6461cd1e6d94beeda94d0c9
MD5 0740c42d5fc0875a4dc4dab0033a6fc6
BLAKE2b-256 3bf242e4a965e22246c996578b142e3c407417996ba7da3b2fcb8dacc8e1ce2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 751285e8cc3bc9c38081d9d49da85cdfa3b2672ef2509a553a087294fdd15f7b
MD5 eae6add1f36bf2cb013d1a6986d32a55
BLAKE2b-256 63348cbd3e8f44540777f4b2c4c68462a6915f18fbace2b4669497aeb2d9284c

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: scirs2-0.3.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ba2ef98dad83b3c53199a5b298c063573b13d2aa448f1efc6e8163135d565056
MD5 1f6831a7e5d96f67e66a522f31c5301a
BLAKE2b-256 02e023ab19892defd12f87dfa9ad154485213bbeb8047fa60074aae07f6a1c77

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp311-cp311-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2113e87ecacc1e35a1ae32e3913e04b8cd7c4b2569caaf3fb18277af994cceec
MD5 c26618b7f4216014fb1406ae061012e2
BLAKE2b-256 e6f5a30de54f4e759ef6e58db61c286d57030d5a4b860b288c3e7cf229a67ffe

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9cf6fbe8e37bac2b30ac8ca3b4ac0f47d133230bd0c6b33f4b7c27b9d2920edd
MD5 079b7bea598b55f5a1dd330d9cb5b601
BLAKE2b-256 5bf41cd296a6a0b391c4564b8d4bee9cd678ade15d382973303994838991acc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00018f6ab0e2430b26b6648964a62aae6b22bcaad2e312ce01e2ab3815466b72
MD5 4a588d1afb4522a9f7db588919318687
BLAKE2b-256 414cbb385cb3e5d89347c9f054323b10bb5e4d306ad1525df97b0ef62cb48400

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9a6e499247f94579c4a8d8d73a93c14132ef982f8e2b4df25327490f33f392c7
MD5 83ca1eda5e83bed16b3eff5d99190524
BLAKE2b-256 21adbd8f3cf61e34e63750be51f86674e28ac5a8c301777c3d5cdb6412d305f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: scirs2-0.3.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scirs2-0.3.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 89262950a30fded82e29bf2f790cf67d9f0a0274cc1019be8774c427063787c0
MD5 6134acf5b0f653738d8739f69bca80e8
BLAKE2b-256 9bd0480ee983233a64aa9659ddce7cdb974217896488e31b6a8c60c6b37b3852

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp310-cp310-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b9bc790959e189f0a1ac9a81d062b2190976a43a65612ba07f6c849fc80aa80
MD5 2e992b192460e577aaf694c364e6fa21
BLAKE2b-256 65d4888875636be49eedbba7dc0adc3c9fed8dcc5ba49a5eea336621ffd1c7f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d7d048202aa183a8b032bed47bf375708cd311c2f13b2128a55a17bd6cc6652b
MD5 7dc01c90afa8a43067761671b2f392ab
BLAKE2b-256 6e9ffac5fe7785d1cea837e93f41ff94d32131108f4b5328b62b12d0f3b95d27

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b36988be60b4d287bcea2e3cae5636be6a0c174e11efecd532d6b00e56ad4bc5
MD5 9c4cad79cabe999d1f0f4119f388edb1
BLAKE2b-256 194acf8bcf66fc6a5627f1ec330f74441e3866ce0818396d11799ae03e8734d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 45fb3354558531760fe33eba587dcb781ea03dae635d946da3423ff04d723095
MD5 62b5ba0f5284aefd5148e48cdeb9a73b
BLAKE2b-256 bb1eec9fb086be5f71e2ec2ff058340eba7a56db11fbbf58429a43a536eaae74

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43f2f8fb902a72e9b35120329acee93f65b690a4b970844787f275a05c9bb83e
MD5 0023a55680124f10c77026b44a9404f4
BLAKE2b-256 c0be0fe32f10c294c82f10a4353a19db63f28e98f6a8268542dc81253415910a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scirs2-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 803e60977bc3a4c4846c027acdd3e13fd943efbde30a00cb3113334aa4e81f37
MD5 3811715aa0d573c7543f816dc5a5d771
BLAKE2b-256 bcab46e0aa1ea34f6c0c6c554ddcc92914a08a181f30b9c5fe867599b0dacfe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/scirs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page