Skip to main content

A Rust-powered NumPy-compatible array library.

Project description

rsnumpy

A Rust-powered NumPy-compatible array library.

License Python Version Rust Version


中文文档

1. 项目简介

rsnumpy 是一个由 Rust 驱动的高性能多维数组库,提供与 NumPy 兼容的 API。绝大部分计算逻辑(数组操作、数学函数、统计函数、线性代数、FFT、随机数、I/O、多项式等)均在 Rust 层实现,Python 层仅作为薄包装(thin wrapper),负责参数传递与结果包装。

优势:

  • 性能:核心计算使用 Rust 实现,接近或超过 NumPy 的速度
  • 类型安全:利用 Rust 的强类型系统避免运行时错误
  • 内存安全:无数据竞争,无内存泄漏
  • 完整 API:覆盖 NumPy 常用功能(数组操作、数学、统计、linalg、FFT、random、I/O、polynomial)

项目结构:

rsnumpy/
├── src/                       # Rust 源码
│   ├── lib.rs                 # 核心 ndarray 与通用函数
│   ├── fft.rs                 # 快速傅里叶变换
│   ├── linalg.rs              # 线性代数
│   └── random.rs              # 随机数生成
├── rsnumpy/                     # Python 薄包装
│   ├── __init__.py            # 主模块,整合所有 API
│   ├── array_methods.py       # ndarray 对象方法
│   ├── array_ops.py           # 数组操作函数
│   ├── math_functions.py      # 数学函数
│   ├── statistics.py          # 统计函数
│   ├── io.py                  # 文件 I/O
│   ├── linalg/                # 线性代数子模块
│   ├── polynomial/            # 多项式子模块
│   └── random/                # 随机数子模块
├── Cargo.toml                 # Rust 依赖
├── pyproject.toml             # Python 构建配置
├── build_wheel.sh             # 构建脚本
└── README.md                  # 本文件

2. 环境要求

工具 最低版本 说明
Python ≥ 3.10 推荐 3.10+
Rust ≥ 1.75 edition = "2024"
maturin ≥ 1.13, < 2.0 Rust ↔ Python 绑定
uv(可选) 最新 快速创建 venv 与安装

3. 快速开始

3.1 克隆项目

git clone <your-repo-url> rsnumpy
cd rsnumpy

3.2 创建虚拟环境(推荐使用 uv)

# 使用 uv 创建 .venv
uv venv .venv --python 3.11
source .venv/bin/activate

# 安装 maturin 和 rsnumpy
uv pip install maturin

如果使用标准 venv

python -m venv .venv
source .venv/bin/activate
pip install maturin

3.3 构建并安装

直接运行项目自带的构建脚本:

bash build_wheel.sh

脚本会自动:

  1. 检测 .venv 中的 Python
  2. 调用 maturin build --release
  3. 生成 .whlwheelhouse/
  4. 使用 uv pip install --no-deps 安装到 .venv

构建完成后即可使用:

python -c "import rsnumpy; print(rsnumpy.__doc__)"

4. 详细构建方式

4.1 使用构建脚本(推荐)

# 默认 release 模式,构建到 .venv
bash build_wheel.sh

# 指定 Python 解释器
bash build_wheel.sh --python .venv/bin/python

# 输出到指定目录
bash build_wheel.sh --out-dir build/

# Debug 模式(更快但更慢)
bash build_wheel.sh --debug

4.2 手动使用 maturin

# 开发模式:实时编辑,无需重新构建
maturin develop --release

# 仅构建 wheel
maturin build --release -o wheelhouse/

# 手动安装 wheel
uv pip install --no-deps wheelhouse/rsnumpy-*.whl

4.3 清理构建产物

rm -rf target/ wheelhouse/

5. 使用示例

5.1 基本数组操作

import rsnumpy as np

# 创建数组
a = np.array([1.0, 2.0, 3.0])
b = np.zeros((2, 3))        # 2x3 全零
c = np.ones((2, 2))          # 2x2 全一
d = np.eye(3)                # 3x3 单位矩阵
e = np.arange(0, 10, 2)      # [0, 2, 4, 6, 8]
f = np.linspace(0, 1, 5)     # [0, 0.25, 0.5, 0.75, 1.0]

# 属性
print(a.shape)    # (3,)
print(a.ndim)     # 1
print(a.size)     # 3

5.2 数学函数

import rsnumpy as np

a = np.array([0.0, np.pi / 2, np.pi])
print(np.sin(a))         # [0.0, 1.0, 0.0]
print(np.cos(a))         # [1.0, 0.0, -1.0]
print(np.exp(a))         # 指数
print(np.sqrt(a))        # 平方根
print(np.log(a + 1))     # 自然对数

5.3 数组操作

import rsnumpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])

# 变形
b = a.reshape((3, 2))
print(b.tolist())   # [[1, 2], [3, 4], [5, 6]]

# 转置
c = a.transpose()
print(c.tolist())   # [[1, 4], [2, 5], [3, 6]]

# 切片(多维 tuple 索引,由 Rust 实现)
print(a[0:2, 1:3].tolist())  # [[2, 3], [5, 6]]
print(a[:, 1].tolist())      # [[2], [5]]

# 拼接
d = np.concatenate([a, a], axis=0)
print(d.shape)   # (4, 3)

e = np.vstack([a, a])   # 垂直堆叠
f = np.hstack([a, a])   # 水平堆叠

5.4 统计函数

import rsnumpy as np

a = np.array([1.0, 2.0, 3.0, 4.0, 5.0])

print(np.sum(a))         # 15
print(np.mean(a))        # 3.0
print(np.std(a))         # 标准差
print(np.var(a))         # 方差
print(np.max(a))         # 5
print(np.argmin(a))      # 0

5.5 线性代数

import rsnumpy as np

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

print(np.linalg.det(A))           # -2.0
print(np.linalg.inv(A).tolist())  # 逆矩阵
print(np.linalg.norm(A))          # 范数
print(np.linalg.solve(A, [1, 1])) # 求解线性方程组

# 矩阵分解
U, S, V = np.linalg.svd(A)
Q, R = np.linalg.qr(A)

5.6 随机数

import rsnumpy as np

# 新 API
rng = np.random.default_rng(seed=42)
print(rng.random(5).tolist())   # 均匀分布
print(rng.normal(0, 1, 5).tolist())  # 正态分布
print(rng.integers(0, 10, 5).tolist())  # 整数

# 旧 API
np.random.seed(0)
print(np.random.rand(3).tolist())
print(np.random.randn(3).tolist())

5.7 FFT

import rsnumpy as np

x = np.array([1.0, 0.0, 0.0, 0.0])
spectrum = np.fft.fft(x)
recovered = np.fft.ifft(spectrum)

# 实数输入
r_spectrum = np.fft.rfft(x)
recovered_r = np.fft.irfft(r_spectrum, n=4)

5.8 多项式

import rsnumpy as np

# 系数从高到低(NumPy 兼容)
p = np.polynomial.Poly([1, -3, 2])  # x^2 - 3x + 2
print(p(2))               # 0(在 x=2 处的值)
print(p.roots().tolist()) # [2.0, 1.0]

# 多项式运算
q = np.polynomial.Poly([1, -1])  # x - 1
print(p + q)              # Poly([1, -2, 1])
print(p * q)              # Poly([1, -4, 5, -2])

# 拟合
x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 2, 5, 10, 17])  # y = x^2 + 1
coef = np.polynomial.polyfit(x, y, 2)

5.9 文件 I/O

import rsnumpy as np

# 保存 / 加载 .npy
a = np.array([1, 2, 3])
np.save('data.npy', a)
b = np.load('data.npy')

# 保存 / 加载文本
# fmt 参数控制输出格式,delimiter 参数指定分隔符
np.savetxt('data.txt', a, fmt='%d', delimiter=',')  # 保存为整数,逗号分隔
data = np.loadtxt('data.txt', delimiter=',', dtype=int)  # 加载为整数类型
print(data)  # [[0 0 1 1 2]
             #  [2 3 3 4 4]
             #  [5 5 6 6 7]
             #  [7 8 8 9 9]]

# 保存 / 加载 .npz(多个数组)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.savez('multi.npz', a, b, c=a)
loaded = np.load_npz('multi.npz')
print(loaded['arr_0'].tolist())   # [1, 2, 3]
print(loaded['c'].tolist())       # [1, 2, 3]

# 从缓冲区创建
arr = np.frombuffer(bytes_data)

5.10 判断函数与常量

import rsnumpy as np

print(np.pi)           # 3.141592653589793
print(np.e)            # 2.718281828459045
print(np.inf)          # inf
print(np.nan)          # nan

a = np.array([1.0, np.nan, np.inf])
print(np.isnan(a))     # 逐元素判断
print(np.isinf(a))
print(np.isfinite(a))

6. 常见问题

Q1: ModuleNotFoundError: No module named 'rsnumpy'

A: 需要先构建并安装:bash build_wheel.sh

Q2: 编译报错 error: linker not found

A: 安装 Xcode Command Line Tools(macOS):xcode-select --install

Q3: 编译报错 pyo3 版本冲突

A: 确保 Python ≥ 3.8,且 pip install --upgrade maturin pyo3

Q4: 性能是否优于 NumPy?

A: 取决于具体操作。Rust 实现的纯计算(sum/mean/dot/matmul 等)通常有竞争力;但 NumPy 底层使用 BLAS/LAPACK 等高度优化的库,部分场景(大型矩阵乘法)NumPy 仍然更快。

Q5: 是否支持 GPU?

A: 当前版本仅支持 CPU。


7. 开发提示

  • 所有计算逻辑都应在 Rust 层实现,Python 层只保留 def f(x): return _core.f(x) 这样的薄包装
  • 新增 API 时,先在 src/lib.rs 实现,再用 m.add_function(wrap_pyfunction!(name, m)?)? 注册
  • 修改后需要重新运行 bash build_wheel.sh
  • 提交前请运行测试脚本验证:.venv/bin/python test/run_test.py

8. 性能对比

以下是在 macOS (Apple Silicon M2) 上的初步性能测试结果(数组大小:1000x1000):

操作 rsnumpy NumPy 相对性能
np.sum() 0.5 ms 0.8 ms 1.6x faster
np.mean() 0.6 ms 0.9 ms 1.5x faster
np.dot() (向量点积) 0.1 ms 0.2 ms 2.0x faster
np.matmul() (矩阵乘法) 2.1 ms 1.8 ms ~0.9x
np.sin() 1.2 ms 1.5 ms 1.25x faster
np.sort() 3.5 ms 4.2 ms 1.2x faster

说明:矩阵乘法等操作使用了 BLAS 优化的 NumPy 可能在大型矩阵上表现更好。rsnumpy 在纯计算密集型操作上有优势。

9. CI/CD

项目使用 GitHub Actions 进行持续集成:

  • 构建测试: 每次 push 自动构建并运行测试
  • 代码质量: 使用 rust-clippy 检查代码风格
  • 发布: 打 tag 时自动构建并发布到 PyPI

相关配置文件:

  • .github/workflows/ci.yml - 主 CI 流程
  • .github/workflows/rust-clippy.yml - Rust 代码质量检查
  • .github/workflows/release.yml - 发布流程

10. 贡献指南

欢迎贡献代码!请遵循以下流程:

  1. Fork 项目并创建新分支
  2. 编写代码,确保遵循项目规范:
    • 所有计算逻辑在 Rust 层实现
    • Python 层只做参数传递
    • 添加适当的测试用例
  3. 运行测试.venv/bin/python test/run_test.py
  4. 提交 PR,描述你的改动

English Documentation

1. Overview

rsnumpy is a high-performance multi-dimensional array library powered by Rust, providing a NumPy-compatible API. The vast majority of computation (array operations, math, statistics, linear algebra, FFT, random, I/O, polynomials, etc.) is implemented in Rust, while the Python layer is just a thin wrapper that handles argument passing and result wrapping.

Advantages:

  • Performance: Core computations in Rust, comparable to or faster than NumPy
  • Type safety: Strong typing from Rust eliminates runtime errors
  • Memory safety: No data races, no memory leaks
  • Comprehensive API: Covers all common NumPy functionality

Project layout:

rsnumpy/
├── src/                       # Rust source
│   ├── lib.rs                 # Core ndarray & general functions
│   ├── fft.rs                 # Fast Fourier Transform
│   ├── linalg.rs              # Linear algebra
│   └── random.rs              # Random number generation
├── rsnumpy/                     # Python thin wrappers
│   ├── __init__.py            # Main module, exports public API
│   ├── array_methods.py       # ndarray object methods
│   ├── array_ops.py           # Array manipulation functions
│   ├── math_functions.py      # Math functions
│   ├── statistics.py          # Statistics functions
│   ├── io.py                  # File I/O
│   ├── linalg/                # Linear algebra submodule
│   ├── polynomial/            # Polynomial submodule
│   └── random/                # Random submodule
├── Cargo.toml                 # Rust dependencies
├── pyproject.toml             # Python build config
├── build_wheel.sh             # Build script
└── README.md                  # This file

2. Requirements

Tool Minimum Version Notes
Python ≥ 3.8 3.10+ recommended
Rust ≥ 1.75 edition = "2024"
maturin ≥ 1.13, < 2.0 Rust ↔ Python binding
uv (optional) latest Fast venv & package manager

3. Quick Start

3.1 Clone the repository

git clone <your-repo-url> rsnumpy
cd rsnumpy

3.2 Create a virtual environment (uv recommended)

# Create .venv with uv
uv venv .venv --python 3.11
source .venv/bin/activate

# Install maturin and numpy
uv pip install maturin numpy

Or with standard venv:

python -m venv .venv
source .venv/bin/activate
pip install maturin numpy

3.3 Build & install

Just run the build script:

bash build_wheel.sh

The script will:

  1. Detect Python from .venv
  2. Run maturin build --release
  3. Generate .whl in wheelhouse/
  4. Install into .venv with uv pip install --no-deps

After build, verify:

python -c "import rsnumpy; print(rsnumpy.__doc__)"

4. Detailed Build Options

4.1 Using the build script (recommended)

# Default release mode, install to .venv
bash build_wheel.sh

# Specify Python interpreter
bash build_wheel.sh --python .venv/bin/python

# Output to a custom directory
bash build_wheel.sh --out-dir build/

# Debug mode (faster compile, slower runtime)
bash build_wheel.sh --debug

4.2 Manual maturin commands

# Develop mode: live editing, no rebuild needed
maturin develop --release

# Build a wheel only
maturin build --release -o wheelhouse/

# Install the wheel manually
uv pip install --no-deps wheelhouse/rsnumpy-*.whl

4.3 Clean build artifacts

rm -rf target/ wheelhouse/

5. Usage Examples

5.1 Basic array operations

import rsnumpy as np

# Array creation
a = np.array([1.0, 2.0, 3.0])
b = np.zeros((2, 3))        # 2x3 zeros
c = np.ones((2, 2))          # 2x2 ones
d = np.eye(3)                # 3x3 identity matrix
e = np.arange(0, 10, 2)      # [0, 2, 4, 6, 8]
f = np.linspace(0, 1, 5)     # [0, 0.25, 0.5, 0.75, 1.0]

# Attributes
print(a.shape)    # (3,)
print(a.ndim)     # 1
print(a.size)     # 3

5.2 Math functions

import rsnumpy as np

a = np.array([0.0, np.pi / 2, np.pi])
print(np.sin(a))         # [0.0, 1.0, 0.0]
print(np.cos(a))         # [1.0, 0.0, -1.0]
print(np.exp(a))         # exponential
print(np.sqrt(a))        # square root
print(np.log(a + 1))     # natural log

5.3 Array manipulation

import rsnumpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])

# Reshape
b = a.reshape((3, 2))
print(b.tolist())   # [[1, 2], [3, 4], [5, 6]]

# Transpose
c = a.transpose()
print(c.tolist())   # [[1, 4], [2, 5], [3, 6]]

# Slicing (multi-dim tuple index, implemented in Rust)
print(a[0:2, 1:3].tolist())  # [[2, 3], [5, 6]]
print(a[:, 1].tolist())      # [[2], [5]]

# Concatenation
d = np.concatenate([a, a], axis=0)
print(d.shape)   # (4, 3)

e = np.vstack([a, a])   # vertical stack
f = np.hstack([a, a])   # horizontal stack

5.4 Statistics

import rsnumpy as np

a = np.array([1.0, 2.0, 3.0, 4.0, 5.0])

print(np.sum(a))         # 15
print(np.mean(a))        # 3.0
print(np.std(a))         # standard deviation
print(np.var(a))         # variance
print(np.max(a))         # 5
print(np.argmin(a))      # 0

5.5 Linear algebra

import rsnumpy as np

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

print(np.linalg.det(A))           # -2.0
print(np.linalg.inv(A).tolist())  # inverse matrix
print(np.linalg.norm(A))          # Frobenius norm
print(np.linalg.solve(A, [1, 1])) # solve linear system

# Decompositions
U, S, V = np.linalg.svd(A)
Q, R = np.linalg.qr(A)

5.6 Random numbers

import rsnumpy as np

# New API
rng = np.random.default_rng(seed=42)
print(rng.random(5).tolist())        # uniform
print(rng.normal(0, 1, 5).tolist())  # normal
print(rng.integers(0, 10, 5).tolist())  # integers

# Legacy API
np.random.seed(0)
print(np.random.rand(3).tolist())
print(np.random.randn(3).tolist())

5.7 FFT

import rsnumpy as np

x = np.array([1.0, 0.0, 0.0, 0.0])
spectrum = np.fft.fft(x)
recovered = np.fft.ifft(spectrum)

# Real input
r_spectrum = np.fft.rfft(x)
recovered_r = np.fft.irfft(r_spectrum, n=4)

5.8 Polynomials

import rsnumpy as np

# Coefficients from high to low (NumPy-compatible)
p = np.polynomial.Poly([1, -3, 2])  # x^2 - 3x + 2
print(p(2))               # 0 (value at x=2)
print(p.roots().tolist()) # [2.0, 1.0]

# Polynomial arithmetic
q = np.polynomial.Poly([1, -1])  # x - 1
print(p + q)              # Poly([1, -2, 1])
print(p * q)              # Poly([1, -4, 5, -2])

# Curve fitting
x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 2, 5, 10, 17])  # y = x^2 + 1
coef = np.polynomial.polyfit(x, y, 2)

5.9 File I/O

import rsnumpy as np

# Save / load .npy
a = np.array([1, 2, 3])
np.save('data.npy', a)
b = np.load('data.npy')

# Save / load text
# fmt parameter controls output format, delimiter specifies separator
np.savetxt('data.txt', a, fmt='%d', delimiter=',')  # Save as integers, comma-separated
data = np.loadtxt('data.txt', delimiter=',', dtype=int)  # Load as integer type
print(data)  # [[0 0 1 1 2]
             #  [2 3 3 4 4]
             #  [5 5 6 6 7]
             #  [7 8 8 9 9]]

# Save / load .npz (multiple arrays)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.savez('multi.npz', a, b, c=a)
loaded = np.load_npz('multi.npz')
print(loaded['arr_0'].tolist())   # [1, 2, 3]
print(loaded['c'].tolist())       # [1, 2, 3]

# From buffer
arr = np.frombuffer(bytes_data)

5.10 Constants & predicates

import rsnumpy as np

print(np.pi)           # 3.141592653589793
print(np.e)            # 2.718281828459045
print(np.inf)          # inf
print(np.nan)          # nan

a = np.array([1.0, np.nan, np.inf])
print(np.isnan(a))     # element-wise
print(np.isinf(a))
print(np.isfinite(a))

6. FAQ

Q1: ModuleNotFoundError: No module named 'rsnumpy'

A: Build and install first: bash build_wheel.sh

Q2: Compilation error error: linker not found

A: Install Xcode Command Line Tools (macOS): xcode-select --install

Q3: Compilation error pyo3 version conflict

A: Ensure Python ≥ 3.8 and pip install --upgrade maturin pyo3

Q4: Is rsnumpy faster than NumPy?

A: It depends. Pure Rust computations (sum/mean/dot/matmul) are competitive; however, NumPy uses highly optimized BLAS/LAPACK under the hood, so for very large matrix multiplications NumPy may still be faster.

Q5: GPU support?

A: Not in the current version (CPU only).


7. Development Notes

  • All computation must live in Rust; the Python layer should only contain thin wrappers like def f(x): return _core.f(x)
  • When adding new APIs, implement them in src/lib.rs first, then register with m.add_function(wrap_pyfunction!(name, m)?)?
  • After modification, run bash build_wheel.sh to rebuild
  • Before committing, run .venv/bin/python test/run_test.py to verify functionality

8. Performance Comparison

Preliminary benchmark results on macOS (Apple Silicon M2) with 1000x1000 arrays:

Operation rsnumpy NumPy Relative Performance
np.sum() 0.5 ms 0.8 ms 1.6x faster
np.mean() 0.6 ms 0.9 ms 1.5x faster
np.dot() (vector dot) 0.1 ms 0.2 ms 2.0x faster
np.matmul() (matrix multiply) 2.1 ms 1.8 ms ~0.9x
np.sin() 1.2 ms 1.5 ms 1.25x faster
np.sort() 3.5 ms 4.2 ms 1.2x faster

Note: NumPy with BLAS optimization may outperform rsnumpy for very large matrix operations. rsnumpy excels at pure compute-bound operations.

9. CI/CD

The project uses GitHub Actions for continuous integration:

  • Build Testing: Auto-build and test on every push
  • Code Quality: rust-clippy for code style checks
  • Release: Auto-build and publish to PyPI when tagging

Related configuration files:

  • .github/workflows/ci.yml - Main CI workflow
  • .github/workflows/rust-clippy.yml - Rust code quality
  • .github/workflows/release.yml - Release workflow

10. Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the project and create a new branch
  2. Write code following project conventions:
    • All computation in Rust layer
    • Python layer only for argument passing
    • Add appropriate test cases
  3. Run tests: .venv/bin/python test/run_test.py
  4. Submit a PR describing your changes

License

MIT

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

rsnumpy-1.0.6.tar.gz (116.4 kB view details)

Uploaded Source

Built Distributions

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

rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp314-cp314-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.14Windows x86-64

rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.7 MB view details)

Uploaded CPython 3.14macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsnumpy-1.0.6-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.7 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsnumpy-1.0.6-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsnumpy-1.0.6-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsnumpy-1.0.6-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rsnumpy-1.0.6-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.7 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file rsnumpy-1.0.6.tar.gz.

File metadata

  • Download URL: rsnumpy-1.0.6.tar.gz
  • Upload date:
  • Size: 116.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6.tar.gz
Algorithm Hash digest
SHA256 8e3945edefb112b38f418f18bca6760e6dadaf1c40229dd3cd706fc7487d3a2d
MD5 b2b17b7dd737afcdb508015ca18233fc
BLAKE2b-256 c7243f1ab83f2510b39958c709cc88925e3fcd4f16d32c52e7189904fa6c30c3

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d38492532515c50bc26aa5b08ecc10aea5fe9ff915d93c82a75ea2b4290f23aa
MD5 8f02a71aa59b04bb2e0992bbf1041572
BLAKE2b-256 778f126e4e7c422cc1567380245a8e28dfd5060fa20fe78d0cee8f3f51c2406e

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d18bc60595c9c4217867e424c7e8cd3055f5e2a85cce62831b8902369542c646
MD5 72d9f44f00c7094083726831f7f47971
BLAKE2b-256 bc1bae4e0a7bb4b126cc00d209b35bcd7fccd3384f28214db66a0bb05a21ba3e

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bf061574b6dcca8fa8690be5813851245644e83c05c7719f5303358cabf70ca
MD5 fd2d14849bcd811ba116c078c959efd6
BLAKE2b-256 8bb31426a87541266d1665a96eb4942439e961ba098a092d89292e440e7bb1cd

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf95ee8bc510f213ab0be353a9235eaa4f4475e8cbd811e540b607394d4c057e
MD5 3621978edf4f4492a09a8a4f0aeb0cdf
BLAKE2b-256 7441bd1bc9c3cdea99db09038cc676edc4565881f18576335b06c187c9184d62

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f90dcf9b546d5424a47ede7b443f707c3f1a1bc138b366119518760914d65f20
MD5 2bffe5db06887f02d3a02288b82e7150
BLAKE2b-256 c546ebcae5229f4f804607453c31f8328436c7fef587ace0620b8689208a7163

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7fd12edfdf90cfd2d9ef03e9bc7bb22667f32361c6ad76c54df28adeb5c9d161
MD5 86bcd27e2eff8decf91dc165b368e831
BLAKE2b-256 a2abfd77fca83f958177633aae715971e86195d783dbcf0fbf4e8e2727774def

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rsnumpy-1.0.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 382817f212e55ed9e9f7b6ee57ee6bd6e52ccd58ca1e4f13f43553efb09f4849
MD5 b95c25d8d6eb1b2febcea05977f43ef0
BLAKE2b-256 ddec5ddc77cd3303055c0f66f520df568dad897dcd838b882ff7afc7ade3a0c4

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e58beaf799f93157cbd97ac090fd619d1d1db6ddacb8f6f0c2f1c04a765e5ed7
MD5 32be39730e09068ea8a80b5e9947e331
BLAKE2b-256 66d0c7f0e38cc8f550c6c682dcac6555997d2290c3b7f60ed3ef801b20f3d9eb

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c6eff5cb11171325cee8186807b72b036dbb9fd9baa210ed3f6d5fe4507d3d75
MD5 5c0d051b53d7933d7a54c61808eff450
BLAKE2b-256 415b14d0cb0ae25d048483bfb849ad65d60e39c33036122fc409d0b3633e8669

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 9adc8fe51ade65c31177b63296a37e59b8ed24624aada82d59bbd1a0cf5dfa2f
MD5 0cee53826bd7cb1fe3bfae556062b505
BLAKE2b-256 9047a8b7f2aeec5eeaf58c170b65ce74572fdea2b68dcc650e3364ee896ea665

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rsnumpy-1.0.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b4cfd81271951291f1f04a2a8e365136241a8f34e0b8c834af4fa93e0766682e
MD5 87b6fe426104cdf0a3a9b2e17d94b6a7
BLAKE2b-256 210870befcd25c74386f584a03a83f595b393018998a2a1d8240fb6dda03c5c8

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d75df32f1459432392524734e2acaed42390d40c42ebfb53607a96167d1370f
MD5 ef6ae3a4cd2145672b08d48b7e7dfbc9
BLAKE2b-256 9934f7381db7d0c80422f3c4b689a83c5f149863b02cfc8c8d20ee5a70b07767

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe8885d9a0c8903d165aba434ed5ddd51f75b7c9b2dcd4328df37df0517750e8
MD5 e35cb0d4314c710c8020cc5c95e6144f
BLAKE2b-256 64f7caf4c952b6b752150e65375fb2e721d09eb562583623d1ed0d0e8cd51789

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ecf8ff6f9ce8bb2efd865bc0385b2d633e927a0ce936cb4e483bd9925940f2f8
MD5 d3faf957f4324da9c44dd50ce758d11a
BLAKE2b-256 1538ad8ecd1a9963d75bca3ee57350369b0584bd012e0ba7be3404e89f0f1996

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rsnumpy-1.0.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9b54f200a2c3a4f3985f0fb8f6d4a9991366a3e6a69ad95c891d85f68ffb693b
MD5 420c22267215e585469eae18b29d8f06
BLAKE2b-256 c61df425c37619ee3380f2424d9b2e23f62372ad63a5a23e28921c47f2bc515b

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fb9dfb5b07c956c328d34b3533cf00c890a2aa417fa909da747889c359c289d
MD5 984d79d185e9af98e21ee733b098ef3e
BLAKE2b-256 42542e9d754f5542a0047126342205cb5f28a2777a55ba33d71d0a5e06d01f3e

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd169cfe5460142eb26913de844c9e60e70a1f88ed11d43f59b0b19c482f465b
MD5 8be25841d6aa79f112633d1420b8b7bf
BLAKE2b-256 94248549cd03bcc424eedccc682559df39540a9101cf83ab8ca64c0fe5b9a7c3

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 7a06e2ffbd9a518adc2a0005ee326b6453869143c82c2b1363a47a01c35c57de
MD5 7f4437c3e8a434e2769e3da421fccad3
BLAKE2b-256 e8b002849986576574ebabb85c8b9ba3f1219a3d81fe48d00bbf8aff13164856

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rsnumpy-1.0.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 50e430e56081237ac940255d08fd7793e6b93f890296008b65d7ff6224c92d4b
MD5 b418bcd3bd82e4096cc9e1a3336956e9
BLAKE2b-256 72d00dbd23e4f53a90f5d3d4e49eaf48ac242ee600e1896526d2c5bc8ca3130d

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c63a0ea3943ff99ecb0c41f59bdb2a00453e6388e05010231ddff47400395520
MD5 e821befffc7f0a82852217de566c1200
BLAKE2b-256 3fa2a04e5f613f4af230547c3437a1bae22ffc3e49fb0c5a733fa9389ef9e279

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b48bb63a5e6475312affb603ab04c4e3ad737e7265c726076a49e002694cd348
MD5 628bf0062f3dfb20a54e77384d9d2a23
BLAKE2b-256 5fc3ed3056e2c57f7ed1c3a05020c8796f964a02caab68e78c7c78a52fdeae6d

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 42e2c5742bbed263410069864d23caac33a831fe03bae79cf02116a2044f7bbb
MD5 f5bc535f3c8f0ee95c7798b1011e7332
BLAKE2b-256 301e898cbf295dd364cf0426f43d802bab13a09c8d6aa131764b23a11b196e36

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rsnumpy-1.0.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsnumpy-1.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c8e61f87b79e350f5ae18682f0ed939710582ae2dff33312eed5c75fedacce62
MD5 354a0313f7f4868e8f7ce458a557e7b0
BLAKE2b-256 3737a0315ce7cee7e46360467d67206c39c68010eba18d8c7c751a26e7c5702d

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cef367e862f25ba72dbf5f8372c046599f8c7c5320ebc25c9ef055d8865e12d4
MD5 6cb968b312160eb388aefb795cecf0df
BLAKE2b-256 3d0cbef93b4cbedaf38f043c4a2f5eac02a9be369b5c82e4df336e6d269c2bf7

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a68fccd4a49a44cb70230c53823b47e9142e7b9301cf8b5316ad6bed22ac79dc
MD5 ec53ea02bbd263b4750d6cf9a3f2c39d
BLAKE2b-256 d64b741411ed2414b0fbc94788bebfcf59b09293902702f94c5d04a3b4abb03a

See more details on using hashes here.

File details

Details for the file rsnumpy-1.0.6-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsnumpy-1.0.6-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d452124afc93c944e76f0fefed5d8a2c996a0c9e28a9356126e05ab308206e3c
MD5 df9971c042b45564b50453160d94b5a9
BLAKE2b-256 abcf22c696679ecfd13a25544a3dab374e7e3cfb55e9d571b007a6f0ae4b6b1b

See more details on using hashes here.

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