Skip to main content

Ultra-high-performance medical imaging I/O for deep learning

Project description

medrs

High-performance medical imaging I/O and processing library for Rust and Python.

Crates.io PyPI License

Overview

medrs is designed for throughput-critical medical imaging workflows, particularly deep learning pipelines that process large 3D volumes. It provides:

  • Fast NIfTI I/O: Memory-mapped reading, crop-first loading (read sub-volumes without loading entire files)
  • Transform Pipeline: Lazy evaluation with automatic operation fusion and SIMD acceleration
  • Mixed Precision: Native f16/bf16 support for 50% storage savings
  • Random Augmentation: Reproducible, GPU-friendly augmentations for ML training
  • Python Bindings: Zero-copy numpy views, direct PyTorch/JAX tensor creation
  • MONAI Integration: Drop-in replacements for MONAI transforms

Why medrs?

Performance vs MONAI & TorchIO (128³ volume)

Operation medrs MONAI TorchIO vs MONAI
Load 0.13ms 4.55ms 4.71ms 35x
Load Cropped (64³) 0.41ms 4.68ms 9.86ms 11x
Load Resampled 0.40ms 6.88ms 27.65ms 17x
To PyTorch 0.49ms 5.14ms 10.22ms 10x
Load + Normalize 0.60ms 5.36ms 12.26ms 9x

At larger volumes (512³), speedups increase dramatically: up to 38,000x vs MONAI and 6,600x vs TorchIO.

Storage Efficiency (128³ volume, compressed)

Format Size vs f32
float32 8.3 MB 100%
bfloat16 3.4 MB 41%
float16 4.1 MB 50%
int16 1.2 MB 15%

Key Advantages

  1. Crop-First Loading: Load 64³ patch from 512³ volume without reading entire file - 6,600x faster than MONAI
  2. Mixed Precision: Save in bf16/f16 for 40-50% smaller files with minimal precision loss
  3. MONAI Drop-in: Replace MONAI I/O transforms with one import change
  4. Zero-Copy: Direct tensor creation without intermediate numpy allocations
📊 Detailed Benchmarks (click to expand)

Comprehensive Benchmark Results

Benchmark results comparing medrs, MONAI, and TorchIO across multiple volume sizes and operations.

Benchmark Summary

Load Performance (Basic I/O)

Size medrs MONAI TorchIO vs MONAI vs TorchIO
64³ 0.13ms 1.34ms 2.35ms 10x 18x
128³ 0.13ms 4.55ms 4.71ms 35x 36x
256³ 0.14ms 159.11ms 95.18ms 1,136x 680x
512³ 0.13ms 5,006.76ms 866.54ms 38,513x 6,665x

Crop-First Loading (64³ patch)

Source medrs MONAI TorchIO vs MONAI vs TorchIO
64³ 0.27ms 1.75ms 6.00ms 6x 22x
128³ 0.41ms 4.68ms 9.86ms 11x 24x
256³ 0.55ms 154.86ms 104.48ms 282x 190x
512³ 0.76ms 5,041.42ms 1,076.89ms 6,633x 1,417x

Load Resampled (Half resolution)

Source medrs MONAI TorchIO vs MONAI vs TorchIO
64³ → 32³ 0.18ms 1.93ms 5.45ms 11x 30x
128³ → 64³ 0.40ms 6.88ms 27.65ms 17x 69x
256³ → 128³ 2.02ms 178.87ms 363.85ms 89x 180x
512³ → 256³ 6.67ms 5,960.93ms 4,039.05ms 894x 605x

Direct PyTorch Loading

Source medrs MONAI TorchIO vs MONAI vs TorchIO
64³ 0.34ms 1.58ms 5.37ms 5x 16x
128³ 0.49ms 5.14ms 10.22ms 10x 21x
256³ 0.60ms 162.78ms 53.70ms 271x 90x
512³ 0.84ms 5,864.85ms 1,223.24ms 6,982x 1,456x

Load with Z-Normalization

Source medrs MONAI TorchIO vs MONAI vs TorchIO
64³ 0.49ms 2.15ms 7.04ms 4x 14x
128³ 0.60ms 5.36ms 12.26ms 9x 20x
256³ 0.73ms 163.38ms 53.59ms 224x 73x
512³ 1.01ms 3,735.31ms 1,092.25ms 3,698x 1,081x

Benchmarks run on Apple M1 Pro, 20 iterations, 3 warmup. Run your own: python benchmarks/bench_medrs.py

Installation

Python

pip install medrs

Rust

[dependencies]
medrs = "0.1"

Development

git clone https://github.com/liamchalcroft/med-rs.git
cd med-rs
pip install -e ".[dev]"
maturin develop --features python

Quick Start

Python:

import medrs
import torch

# Load a NIfTI image
img = medrs.load("brain.nii.gz")
print(f"Shape: {img.shape}, Spacing: {img.spacing}")

# Method chaining for transforms
processed = img.resample([1.0, 1.0, 1.0]).z_normalize().clamp(-1, 1)
processed.save("output.nii.gz")

# Load directly to PyTorch tensor (most efficient)
tensor = medrs.load_to_torch("brain.nii.gz", dtype=torch.float16, device="cuda")

Rust:

use medrs::nifti;
use medrs::transforms::{resample_to_spacing, Interpolation};

fn main() -> medrs::Result<()> {
    let img = nifti::load("brain.nii.gz")?;
    println!("Shape: {:?}, Spacing: {:?}", img.shape(), img.spacing());

    let resampled = resample_to_spacing(&img, [1.0, 1.0, 1.0], Interpolation::Trilinear)?;
    nifti::save(&resampled, "output.nii.gz")?;
    Ok(())
}

Transform Pipeline

Build composable transform pipelines with lazy evaluation and automatic optimization:

Python:

import medrs

# Create a reusable pipeline
pipeline = medrs.TransformPipeline()
pipeline.z_normalize()
pipeline.clamp(-1.0, 1.0)
pipeline.resample_to_shape([64, 64, 64])

# Apply to multiple images
for path in image_paths:
    img = medrs.load(path)
    processed = pipeline.apply(img)

Rust:

use medrs::pipeline::compose::TransformPipeline;

let pipeline = TransformPipeline::new()
    .z_normalize()
    .clamp(-1.0, 1.0)
    .resample_to_shape([64, 64, 64]);

let processed = pipeline.apply(&img);

Random Augmentation

Reproducible augmentations for ML training with optional seeding:

Python:

import medrs

img = medrs.load("brain.nii.gz")

# Individual augmentations
flipped = medrs.random_flip(img, axes=[0, 1, 2], prob=0.5, seed=42)
noisy = medrs.random_gaussian_noise(img, std=0.1, seed=42)
scaled = medrs.random_intensity_scale(img, scale_range=0.1, seed=42)
shifted = medrs.random_intensity_shift(img, shift_range=0.1, seed=42)
rotated = medrs.random_rotate_90(img, axes=(0, 1), seed=42)
gamma = medrs.random_gamma(img, gamma_range=(0.7, 1.5), seed=42)

# Combined augmentation (flip + noise + scale + shift)
augmented = medrs.random_augment(img, seed=42)

Rust:

use medrs::transforms::{random_flip, random_gaussian_noise, random_augment};

// Individual augmentations
let flipped = random_flip(&img, &[0, 1, 2], Some(0.5), Some(42))?;
let noisy = random_gaussian_noise(&img, Some(0.1), Some(42))?;

// Combined augmentation
let augmented = random_augment(&img, Some(42))?;

Crop-First Loading

Load only the data you need - essential for training pipelines:

import medrs
import torch

# Load a 64^3 patch starting at position (32, 32, 32)
patch = medrs.load_cropped("volume.nii", [32, 32, 32], [64, 64, 64])

# Load with resampling and reorientation in one step
patch = medrs.load_resampled(
    "volume.nii",
    output_shape=[64, 64, 64],
    target_spacing=[1.0, 1.0, 1.0],
    target_orientation="RAS"
)

# Load directly to GPU tensor
tensor = medrs.load_cropped_to_torch(
    "volume.nii",
    output_shape=[64, 64, 64],
    target_spacing=[1.0, 1.0, 1.0],
    dtype=torch.float16,
    device="cuda"
)

Training Data Loader

High-performance patch extraction for training:

import medrs

loader = medrs.TrainingDataLoader(
    volumes=["vol1.nii", "vol2.nii", "vol3.nii"],
    patch_size=[64, 64, 64],
    patches_per_volume=4,
    patch_overlap=[0, 0, 0],
    randomize=True,
    cache_size=1000
)

for patch in loader:
    # Training loop
    tensor = patch.to_torch()

Available Transforms

Intensity Transforms

  • z_normalize() / z_normalization() - Zero mean, unit variance
  • rescale() / rescale_intensity() - Scale to [min, max] range
  • clamp() - Clamp values to range

Spatial Transforms

  • resample() / resample_to_spacing() - Resample to target spacing
  • resample_to_shape() - Resample to target shape
  • reorient() - Reorient to standard orientation (RAS, LPS, etc.)
  • crop_or_pad() - Crop or pad to target shape
  • flip() - Flip along specified axes

Random Augmentation

  • random_flip() - Random axis flipping
  • random_gaussian_noise() - Additive Gaussian noise
  • random_intensity_scale() - Random intensity scaling
  • random_intensity_shift() - Random intensity offset
  • random_rotate_90() - Random 90-degree rotations
  • random_gamma() - Random gamma correction
  • random_augment() - Combined augmentation pipeline

Performance

medrs uses several optimization strategies:

  • SIMD: Trilinear interpolation uses AVX2/SSE for 8-way parallel processing
  • Parallel Processing: Rayon-based parallelism for large volumes
  • Lazy Evaluation: Transform pipelines compose operations before execution
  • Memory Mapping: Large files are memory-mapped to avoid full loads
  • Buffer Pooling: Reusable buffers reduce allocation overhead

Examples

See the examples/ directory for:

  • basic/ - Loading, transforms, and saving
  • integrations/ - PyTorch, MONAI, JAX integration
  • advanced/ - Async pipelines, custom transforms

Testing

# Rust tests
cargo test

# Python tests
pytest tests/

# Benchmarks (requires torch, monai, torchio)
python benchmarks/bench_medrs.py --quick
python benchmarks/bench_monai.py --quick
python benchmarks/bench_torchio.py --quick

# Generate benchmark plots
python benchmarks/plot_results.py

License

medrs is dual-licensed under MIT and Apache-2.0. See LICENSE for details.

Contributing

See CONTRIBUTING.md for guidelines.

Maintainer

Liam Chalcroft (liam.chalcroft.20@ucl.ac.uk)

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

medrs-0.1.2.tar.gz (262.2 kB view details)

Uploaded Source

Built Distributions

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

medrs-0.1.2-cp313-cp313-win_amd64.whl (760.6 kB view details)

Uploaded CPython 3.13Windows x86-64

medrs-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (888.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

medrs-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (791.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

medrs-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (729.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

medrs-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl (834.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

medrs-0.1.2-cp312-cp312-win_amd64.whl (761.1 kB view details)

Uploaded CPython 3.12Windows x86-64

medrs-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (889.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

medrs-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (792.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

medrs-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (729.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

medrs-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl (834.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

medrs-0.1.2-cp311-cp311-win_amd64.whl (765.0 kB view details)

Uploaded CPython 3.11Windows x86-64

medrs-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (892.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

medrs-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (796.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

medrs-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (732.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

medrs-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl (837.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

medrs-0.1.2-cp310-cp310-win_amd64.whl (765.2 kB view details)

Uploaded CPython 3.10Windows x86-64

medrs-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (892.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

medrs-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (796.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

medrs-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (732.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

medrs-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl (837.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file medrs-0.1.2.tar.gz.

File metadata

  • Download URL: medrs-0.1.2.tar.gz
  • Upload date:
  • Size: 262.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for medrs-0.1.2.tar.gz
Algorithm Hash digest
SHA256 22f95c0728735d0109bf55d0b645b4d94c3269e80ba7e3820aa0e689719f8c28
MD5 f33a69f2ebd9955a149cb8da2a421465
BLAKE2b-256 0a3115ee19fdae35e757cb259464ff27e8c6d202a17f5d4d6e90d6dea57b9354

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2.tar.gz:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: medrs-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 760.6 kB
  • 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 medrs-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3c348d6c4d6a6e9f33787d7d15f6898c9e8b240da1b67f3412986a819378db79
MD5 f0ba614f87a5093d4c232d3d105f5d6e
BLAKE2b-256 bb46a4031abb4042c109c57d2cb151f0e08a9a5970e10d2454c621156523e063

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15853fa93ee745928fa3f8aceccbc0d32b52179862cbf2cea4851ef6f0eb814f
MD5 912d1040de10e3117c60e76f06a73fb0
BLAKE2b-256 64238afa5eef68591f18e59f6721fd8aa37d0dab32cc44ba03a215fb05fbdfdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 519f02df36f828901965a0f63ea02ee476f9bbd40e7f97c43f66877e05adb67c
MD5 7ed419ce72f0fe844c6589ce717d690d
BLAKE2b-256 8f0e1220727a4d45dc34fa646f219e4b494f62ebbe74ff7f92c35b03a156a6d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6a8a06079814312dff46b252f5ff39fee8cb1f4b602923841a24ee47f2b200b
MD5 6ac7db7522570d0fffe9d752ef974b8a
BLAKE2b-256 a79bd0ab193b0d6b0d4b009ba6e8adab448f38c357e8dcd95bf5165bb5757428

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 554eb6aa8036b0fa23684bfaf5bf6165735dc96503384dbf81c7905abcf23727
MD5 9616ff68b32093f842f1da7050382624
BLAKE2b-256 fcfd2fcff7084b73aed474b093ad37a6abbb25eead72a67c21cbf57403392146

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: medrs-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 761.1 kB
  • 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 medrs-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d0cc10af6582888ec73811e5375ce7d16d3847ade3bb68b730bad26905345cc
MD5 9409bc4b5315ca4b8ede516c2187b750
BLAKE2b-256 cd0d5bf46496ffc3f404d5c6dccab72d01fbe91545967e2216affc18b9d77883

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85bba37652edb8f4eeeccdea80879dcbcbbd7f1d56a03bb17c30a0216694e33e
MD5 52ed7a31b2f43e1bf93de493772cfbbc
BLAKE2b-256 973222c592d7e423af6e476755e84f5c4b01abbe72b833b81ff6f7cc7bb5f859

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1dc00959ce84ff0b44c2ba14cbea99c98dcef075a70795b59ed66e33e678f7b0
MD5 bacd9f377773a9ac2f8c64f83afb1d3b
BLAKE2b-256 6663f406eb63d7a1ab543adb744e35d2fba5c10a9b61d6652594dfd97a3d16e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5bf5bf2ad3cf053100520b02a2713eeb3351255454b35ebb3d0764a46898b0b5
MD5 2595f42fbd0e6bac121d3f03840c8760
BLAKE2b-256 d92207e8bff33d45f3a9247c1aad56b469aa8aeede170ade47c5c32cd59865cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c79941e50f4c2f7cf003ac267b7ecba697fa8e1736791a102a7b5fcad05fd68c
MD5 3a0c300ebe4bacee51b0f127574e0885
BLAKE2b-256 8a50ba378947049adc60db0d59d2b7251e8719e77cf8620eec8f34025627fd6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: medrs-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 765.0 kB
  • 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 medrs-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69b1ea4325baf7ca08d28a11fdbe7824051c67d61aa0aa26808ab288992faaed
MD5 8bdeab84989985c696d64bc359c39c16
BLAKE2b-256 9c1b5404956850649acd9abac43499461a4d81c7ef78b26adb12553ef687b07a

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d20c38f8e71fb0f908b9f6613635e89fd1f4e5197425155caba70e7584518811
MD5 460da99116fd4d19f659bf12881e0019
BLAKE2b-256 e7bddb7b7eae2115dc6ecef9a421926475a2dd896570a1b7cb6839a00331fc39

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50f018f99b88a184f3dd2461630055b527384eccedc7c71819d6262b900134f3
MD5 a55fd24f93304297d36a5b8659e96591
BLAKE2b-256 b52adf9a5f4e8254d277d2152e9898364087285b27ac4e6256ec3ec766e0e2dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 081d09847cd801bbfbc2d7de305c069870ff5cf48aa38c3b7a3531f51c0cbb38
MD5 ccdedb506068d790dca0802fa0d1888a
BLAKE2b-256 5a9a2e215e27980a213fad547a31816a9123dd74e5ec9da81312cfaea6bfd33b

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2b3e3918a04eaa62159ada710be71942a860a1eade0082d383261739abe84b25
MD5 61318f03d582db3af6cf03e1c80e32c4
BLAKE2b-256 e989df319c8e20f01ba6d93e54346328ed4828a144bf194daf03bca61dc20e48

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: medrs-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 765.2 kB
  • 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 medrs-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 42d4d6cc8b8f094c0a41410a14338cd127bf8d379404ab221071537b86078e11
MD5 feaa6f987ad9f8c4ed4756a1cdf24104
BLAKE2b-256 a28ff964bbcfa37d6c03fb18e54b28ce03f3d11030eb40b953090bc9ed9a9c20

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e9a857a4aec592db68a99bb6a85972d76bc5365258a51eec53cf8408e279fb1
MD5 c1147377e04e22da87fa66f7152909d8
BLAKE2b-256 457e2e18818a0e9587f59a3e6615b5a7482fdb23081e36aa4b80a10955071ef3

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c26e7af41a63a879cd9146de005953446255a7fa7af2af4ed26d7e38cdd1c304
MD5 8579c09f016de13c4cfbc375a01b09b3
BLAKE2b-256 8f2079d60980e73c0001da444a9f740a3dc9773d663c76d230d0c9f6282b763c

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02f19b6de3c2a2c09aa286cd5134a777427470976d3d587bb98f5dfee8d8c598
MD5 2ef76777823e2f5d39df759e92d9033a
BLAKE2b-256 ffa3ea8d61655636a47bb76c75d11ca7ea8daedc76f8d21372a5ec0c8f6b1219

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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

File details

Details for the file medrs-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for medrs-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f8d57e226668e40cc9129d023590eeabdeee40407920020f0c024b2a61f400d
MD5 fe2844358c7dfad53abac2eff954a417
BLAKE2b-256 33e1382170e6cd0a9b3d73335594977208d1c9c075d43d572c6625de9e8f0ecf

See more details on using hashes here.

Provenance

The following attestation bundles were made for medrs-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on liamchalcroft/med-rs

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