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.4.3.tar.gz (36.3 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.4.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

scirs2-0.4.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp314-cp314-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14Windows x86-64

scirs2-0.4.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp314-cp314-macosx_11_0_arm64.whl (4.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

scirs2-0.4.3-cp314-cp314-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

scirs2-0.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp313-cp313-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.13Windows x86-64

scirs2-0.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp313-cp313-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

scirs2-0.4.3-cp313-cp313-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

scirs2-0.4.3-cp312-cp312-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.12Windows x86-64

scirs2-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp312-cp312-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

scirs2-0.4.3-cp312-cp312-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

scirs2-0.4.3-cp311-cp311-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.11Windows x86-64

scirs2-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp311-cp311-macosx_11_0_arm64.whl (4.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

scirs2-0.4.3-cp311-cp311-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

scirs2-0.4.3-cp310-cp310-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.10Windows x86-64

scirs2-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

scirs2-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

scirs2-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for scirs2-0.4.3.tar.gz
Algorithm Hash digest
SHA256 8503b161ace9c4af45c388523cf2878a69770376c1a32102aea9601d91805ac6
MD5 e6b77e4f708df1a8c7ce83e0daaeb916
BLAKE2b-256 49db1bc54c18bae7ef50eb3875f96ca42db164dd781b1c5864118b06d950754a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3.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.4.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f019f2b9ed5e6b7901a2288beebbceae34abbca28c923f3c1a6146b9cdb1aa3b
MD5 6953f33692a683aba548a51174f9c3c8
BLAKE2b-256 ed3c61cf648eb1c1ce5ad10f4435f3d7ee69295b7ee72489e9bc2159a24e0614

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d5ab69b2e37f2f755a1329ac642f269830230667a67399aad640640c818cb40
MD5 6399f144854aedd92da294a9809a1be8
BLAKE2b-256 ac3ffbc867d7ca4125e156b938bb7d64e2c950671a3a83e4ea3bfc26a0b14166

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38dcb6fc4998e431127637978d21ce5c85d117ed04f560719dde982ed99b901a
MD5 aae5619cb3df0cf2f13f5bdf3ccb3a5b
BLAKE2b-256 8ee715e99502d0481c4b81481d98623aab8fd2b597a4911d390d500f4de8a202

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for scirs2-0.4.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1f695db6d5242b26dc55fc7529c91db44377282989246499f09467e99d979b80
MD5 e32935b8738a6e30290e4a6e9a730205
BLAKE2b-256 b176b3e0dbc91321a043f215d11be43a903467efcca2701b4a0da8610af3be8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0a397227d16086a663efb7886ff5a181236e1eee92ad2c9bdc03f5fa7db603f
MD5 7e1437bad71501093d0c81e03fde33e5
BLAKE2b-256 5e03bffbf18a1ed10051cdafad7d8995e0e0dca65085d71b934fb842591b68ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 403c66e632a9b10a5bc6f907783e677580eab4d2be0cce2d272a4316b5821846
MD5 7fb7b84c4aff65cfe16e99a5342478ca
BLAKE2b-256 fc87c14cb5db9643e91274a81ed9be61cc61c6e54d96ae520490742b20236a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0efa069f454367f5092d264e6c919edddfea54805309ac0d677d16e62afafff7
MD5 7d201fb4a9055a5f5b85f034cf0c148a
BLAKE2b-256 09f4cb0ce69489a89ae9e20b49a1a21349c0cf940268d7a651ae1eeeca0c51a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eda21abebd5b6eedf662e45c0666adf5318548fe698b2d95e05f6aa9eb43e42e
MD5 6a348b5c80aa91bea456e94355170bba
BLAKE2b-256 f48a8e9be2c7b7a57fd8eaa8aa6ae63a23861b75babb7aa22642ac0fb2c44e6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 873fed4c1327f6efb83ce84a10c929b9b53869e785cf19721f6dddf8843aa0e7
MD5 fa4e3815b5da879dbb5f9879ac22fc08
BLAKE2b-256 c8a1616839efe1a5e4975770679bf187a0f3ca56f48ccbaa9026d7248a84162b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for scirs2-0.4.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ab2d77cde5de53c735d42fe4dd60b93faca3fc8a6cd69579ca89d86c2996202c
MD5 fd7b778f7d5ed4c2c8583fcbcea9c1a6
BLAKE2b-256 0289c12d24e592fb9fbc556508bb5760154fd1ed2bd016af4f4782b6ceee80bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 387ebed57d16d1d57188ef02ff0ad62cc037381550b78e83fe3f3875885818e3
MD5 b407bd9bd43d16d60decd1dc70af7008
BLAKE2b-256 2591d64d9df1c986c481e2bd802105736c8851ec47331650f148c968a74fb511

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4f50eca2f0edeef3d88790fceeba875bcb5771f12059e9c42da8e8ccc1e98c6
MD5 bcce566761ba8045a72ffd5062ad2ce7
BLAKE2b-256 d3155bcbd99696d64874c87fd54394bc686cd9198247985a9c8171fe97485b8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8b76d121ae745e1526ae8829367c5c400f14efe492de128aa0e2639cf988a70
MD5 ed29b09a02cf511aa2801076377d83a8
BLAKE2b-256 a1af582e7a6356c53b2482b3b355c20672412306fcb4ecfd8b7371f638293641

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5af749c67e2af68cd7a06c0258802a62c0463e46c347bb121d93f04520c54490
MD5 ded0cc1b20dbe7490f7796144c7275ba
BLAKE2b-256 1005674d863b55533ab91a70b0b88d0e45d41c864aab670295819650dc37d417

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for scirs2-0.4.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ff37fec4e5ade90609c112b568b531d5fa9da40ce2324dbfc07dd2c7fe6d1f3b
MD5 3b03980ef1084618c53001abb7501c35
BLAKE2b-256 6697887ace7425f2d806238ba46b62d93ea50c22518c1b7d01cddb7481124bab

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e05a40c3aafa7c33e36b68f228ea0b961fb6204404aebab08878519bb3cdaeb3
MD5 0d602def28ecf2f0e04ab7670b20d225
BLAKE2b-256 d3e464bb96e122009d8609d902a9fa20ab1e69d28db288a0a17c4958f0798f3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52303b9e36818b4020db79b7bafdd0a2f3966b614fd1b85deb24537ae0f109c8
MD5 f50510637991f99d619448d01a8789fc
BLAKE2b-256 56f26c57611ea3e122be2b98a0e8a9b59ae1aa15ba26ef3498be5f442cde3d49

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9ef52e14d16d69678557ac928cbd4dbc02d4a871ad356bb25d8ef89afc60a6d
MD5 5a43c067c5764b9d995babefa97e0cca
BLAKE2b-256 e6e2564374df6843c6fb78a23f0e4865106a30e2e1ba09f47b3e8fe8035da747

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2058c8252f5c776fe5a000a7105455981ea7fc3346484170ab754b12a9f7c6a
MD5 495f210c41e91fa990644d8c4fb2b91b
BLAKE2b-256 fe80ab6fa6c073e89204c3cd2b4455cb3782541251c6bb4c13f6f78d02499f0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for scirs2-0.4.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 45b19b890eb1c7d344b70aced219470747d4d03e1b8d3e71fb3b6bfa1af9f261
MD5 26557faa8cae17b207ea873ae0aca3d2
BLAKE2b-256 bd34e2f94b4d74aeafc8908708904b8c769a6caa8a91396de9ec0922a035a0ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6b36bc46cac2ed5f63d7612074e085e95e6c8764881a849cd506d486bad7795
MD5 593f296ff5e092d2d63722f34bde2fec
BLAKE2b-256 78bd27cb90326d817b34826bc0c75749f6de4256d30c0a241a2d572bcf2e82f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ecc280613047f6e733666a05296e0986766bf05aab3531973306926e04612097
MD5 ecb379d877fac11c3a1483eb48a75257
BLAKE2b-256 224a0a0e59435034f8d155a3855fb6f29a71f2953145e9a0f1dd4d25652df02e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e357884675f130343af20b1aa2070009b9eef979d0812f51fe0879a2e00e549e
MD5 dc678a99c8f31dadd94d378a49bf3277
BLAKE2b-256 cc6b3790a28bf8a07f8a011be94bd55d4db0b415eb6f3139a85faa87ef18f941

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 03e4f75d47d27202fca6fbf30c1e78b686a41538dad00063754bda426e46fcb3
MD5 abd83b2aaabcf9a48ba436d6d66ed874
BLAKE2b-256 5ed400ed58fd9d6e603929f4c3b0fb7781748e6fd133d8e82214c35dbb244a02

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for scirs2-0.4.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ff3dfacb56d4cff2573799fa30f5da03129a053fcff860a2a19daa3aadaa34c0
MD5 da34cb8dcbcd854b282885dc926e314a
BLAKE2b-256 58c1a85baf71073155640fda2cd11b4966cd8b92dcb4aec287f46453eb73e8fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c4f8bc293a1ba3882a4af2b059d3900be7734b09df56f677ad8e7640d0487b9
MD5 5acfa8d16ab2c1fdb5e1011ddeb487e7
BLAKE2b-256 155e33f652e599e69c1880dd7af9acd529da73b89ba6cbb136be24c70e563058

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 900d73621853d118c1903c7fca26b4f1c4c2ef92f4a4674da6fa2dbcbdc4b830
MD5 1a61df6e5f72d87436fd0cb936fd8da5
BLAKE2b-256 be5791d82d1d5ee8b6ea4da07452a8071738927c99acff5264c35434f878e0ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 905db0e2c085e56e30debeebb2ce93aed3117b3c23c6945c88c0b467dfd35d2e
MD5 5b9b2477ad5b685f44a20c023c7b8d29
BLAKE2b-256 0783783f1bc6d838dfc9c9bda31adba4a71b6ff52f0932c8c922fc0ca808ff3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f5d5c2f9b6f8114a93b0c9413b72015c69b9eec2575661c39d8380b27a58ec84
MD5 e16a9a5768583ae5670bfa847655670f
BLAKE2b-256 f10ac7701680a33933f8bb1c073b6b00799009dd7fb47952b75f9cba70fff171

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ad88828645fc05d6ba3685542d5576fb8f78200f0af5f1a00ea2f734d5d52492
MD5 ccd9731d41f9c469c9cd70ff93581329
BLAKE2b-256 04d00b682a8e8a3953e9b909ea097c4bbe495f97bccbdc2ec3ef763342c34a9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scirs2-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 63d53be66ea6f822b1b81c662f9c82f91f6ec0e8656d5d6044140e6493149a0e
MD5 df921a20496be951bd373f37e0f0b6aa
BLAKE2b-256 8ef60cdc14491b81640b0de5d8dcb86eb01bd3d709eadd92ec4d43c8d1ea1210

See more details on using hashes here.

Provenance

The following attestation bundles were made for scirs2-0.4.3-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