Skip to main content

Python bindings for rust-ai-core: memory estimation, device detection, and ML utilities

Project description

rust-ai-core

Crates.io PyPI Documentation License: MIT

Foundation layer for the rust-ai ecosystem, providing unified abstractions for device selection, error handling, configuration validation, and CubeCL interop.

rust-ai-core is the shared foundation that enables a future AI framework built on transparency, traceability, performance, ease of use, repeatability, and customization depth.

Design Philosophy

CUDA-first: All operations prefer GPU execution. CPU is a fallback that emits warnings, not a silent alternative. This ensures users are aware when they're not getting optimal performance.

Ecosystem Integration: rust-ai-core serves as the foundation for all rust-ai crates, ensuring consistent behavior, unified error handling, and seamless interoperability across the entire stack.

Features

  • Unified Device Selection: CUDA-first with environment variable overrides
  • Common Error Types: CoreError hierarchy shared across all crates
  • Trait Interfaces: ValidatableConfig, Quantize, Dequantize, GpuDispatchable
  • CubeCL Interop: Candle ↔ CubeCL tensor conversion utilities

Installation

Rust

[dependencies]
rust-ai-core = "0.2"

# With CUDA support
rust-ai-core = { version = "0.2", features = ["cuda"] }

Python

pip install rust-ai-core-bindings

The Python package provides bindings for memory estimation, device detection, and dtype utilities.

Quick Start

Rust

use rust_ai_core::{get_device, DeviceConfig, CoreError, Result};

fn main() -> Result<()> {
    // Get CUDA device with automatic fallback + warning
    let device = get_device(&DeviceConfig::default())?;

    // Or with environment-based configuration
    let config = DeviceConfig::from_env();
    let device = get_device(&config)?;

    Ok(())
}

Python

import rust_ai_core_bindings as rac

# Memory estimation for AI training planning
batch, heads, seq_len, head_dim = 1, 32, 4096, 128
attention_bytes = rac.estimate_attention_memory(batch, heads, seq_len, head_dim, "bf16")
print(f"Attention layer: {attention_bytes / 1024**2:.1f} MB")

# Tensor memory estimation
shape = [1, 512, 4096]
tensor_bytes = rac.estimate_tensor_bytes(shape, "f32")
print(f"Tensor: {tensor_bytes / 1024**2:.1f} MB")

# Memory tracking for GPU budget management
tracker = rac.create_memory_tracker(limit_bytes=8 * 1024**3)  # 8 GB limit
rac.tracker_allocate(tracker, tensor_bytes)
print(f"Current: {rac.tracker_allocated_bytes(tracker)} bytes")
print(f"Peak: {rac.tracker_peak_bytes(tracker)} bytes")

# Device detection
if rac.cuda_available():
    device_info = rac.get_device_info()
    print(f"Device: {device_info['name']}")

# Data type utilities
print(f"f32 size: {rac.bytes_per_dtype('f32')} bytes")
print(f"bf16 is float: {rac.is_floating_point_dtype('bf16')}")
print(f"bf16 accumulator: {rac.accumulator_dtype('bf16')}")

Environment Variables

Variable Description
RUST_AI_FORCE_CPU Set to 1 or true to force CPU execution
RUST_AI_CUDA_DEVICE CUDA device ordinal (default: 0)

Legacy variables from individual crates are also supported:

  • AXOLOTL_FORCE_CPU, AXOLOTL_CUDA_DEVICE
  • VSA_OPTIM_FORCE_CPU, VSA_OPTIM_CUDA_DEVICE

Modules

device

CUDA-first device selection with fallback warnings.

use rust_ai_core::{get_device, DeviceConfig, warn_if_cpu};

// Explicit configuration
let config = DeviceConfig::new()
    .with_cuda_device(0)
    .with_force_cpu(false)
    .with_crate_name("my-crate");

let device = get_device(&config)?;

// In hot paths, warn if on CPU
warn_if_cpu(&device, "my-crate");

error

Common error types shared across the ecosystem.

use rust_ai_core::{CoreError, Result};

fn my_function() -> Result<()> {
    // Use convenient constructors
    if rank == 0 {
        return Err(CoreError::invalid_config("rank must be positive"));
    }
    
    if shape_a != shape_b {
        return Err(CoreError::shape_mismatch(shape_a, shape_b));
    }
    
    Ok(())
}

traits

Common trait interfaces for configuration and GPU dispatch.

use rust_ai_core::{ValidatableConfig, GpuDispatchable, CoreError, Result};

#[derive(Clone)]
struct MyConfig {
    rank: usize,
}

impl ValidatableConfig for MyConfig {
    fn validate(&self) -> Result<()> {
        if self.rank == 0 {
            return Err(CoreError::invalid_config("rank must be > 0"));
        }
        Ok(())
    }
}

cubecl (feature: cuda)

CubeCL ↔ Candle tensor interop.

use rust_ai_core::{has_cubecl_cuda_support, candle_to_cubecl_handle, cubecl_to_candle_tensor};

if has_cubecl_cuda_support() {
    let buffer = candle_to_cubecl_handle(&tensor)?;
    // ... launch CubeCL kernel with buffer.bytes ...
    let output = cubecl_to_candle_tensor(&output_buffer, &device)?;
}

Crate Integration

All rust-ai crates depend on rust-ai-core as their foundation:

rust-ai-core (Foundation Layer)
    │
    ├── trit-vsa          - Ternary Vector Symbolic Architectures
    ├── bitnet-quantize   - 1.58-bit quantization
    ├── peft-rs           - LoRA, DoRA, AdaLoRA adapters
    ├── qlora-rs          - 4-bit quantization + QLoRA
    ├── unsloth-rs        - GPU-optimized transformer kernels
    ├── vsa-optim-rs      - VSA optimizers and operations
    ├── axolotl-rs        - High-level fine-tuning orchestration
    └── tritter-accel     - Ternary GPU acceleration

Each crate uses rust-ai-core's:

  • Device selection: Consistent CUDA-first device logic
  • Error types: Shared CoreError hierarchy with domain-specific extensions
  • Traits: Common interfaces (ValidatableConfig, Quantize, etc.)
  • CubeCL interop: Unified Candle ↔ CubeCL tensor conversion

Public API Reference

Core Types

  • DeviceConfig - Configuration builder for device selection
  • CoreError - Unified error type with domain-specific variants
  • Result<T> - Type alias for std::result::Result<T, CoreError>
  • TensorBuffer - Intermediate representation for Candle ↔ CubeCL conversion

Traits

  • ValidatableConfig - Configuration validation interface

    trait ValidatableConfig: Clone + Send + Sync {
        fn validate(&self) -> Result<()>;
    }
    
  • Quantize<Q> - Tensor quantization (full precision → quantized)

    trait Quantize<Q>: Send + Sync {
        fn quantize(&self, tensor: &Tensor, device: &Device) -> Result<Q>;
    }
    
  • Dequantize<Q> - Tensor dequantization (quantized → full precision)

    trait Dequantize<Q>: Send + Sync {
        fn dequantize(&self, quantized: &Q, device: &Device) -> Result<Tensor>;
    }
    
  • GpuDispatchable - GPU/CPU dispatch pattern for operations with both implementations

    trait GpuDispatchable: Send + Sync {
        type Input;
        type Output;
    
        fn dispatch_gpu(&self, input: &Self::Input, device: &Device) -> Result<Self::Output>;
        fn dispatch_cpu(&self, input: &Self::Input, device: &Device) -> Result<Self::Output>;
        fn dispatch(&self, input: &Self::Input, device: &Device) -> Result<Self::Output>;
        fn gpu_available(&self) -> bool;
    }
    

Device Selection Functions

  • get_device(config: &DeviceConfig) -> Result<Device> - Get device with CUDA-first fallback
  • warn_if_cpu(device: &Device, crate_name: &str) - Emit one-time CPU warning

CubeCL Interop (feature: cuda)

  • has_cubecl_cuda_support() -> bool - Check if CubeCL CUDA runtime is available
  • candle_to_cubecl_handle(tensor: &Tensor) -> Result<TensorBuffer> - Convert Candle tensor to CubeCL buffer
  • cubecl_to_candle_tensor(buffer: &TensorBuffer, device: &Device) -> Result<Tensor> - Convert CubeCL buffer to Candle tensor
  • allocate_output_buffer(shape: &[usize], dtype: DType) -> Result<TensorBuffer> - Pre-allocate CubeCL output buffer

Error Handling Philosophy

rust-ai-core provides a structured error hierarchy that balances specificity with ergonomics:

use rust_ai_core::{CoreError, Result};

fn validate_shapes(a: &[usize], b: &[usize]) -> Result<()> {
    if a.len() != b.len() {
        return Err(CoreError::dim_mismatch(
            format!("expected {} dims, got {}", a.len(), b.len())
        ));
    }
    if a != b {
        return Err(CoreError::shape_mismatch(a, b));
    }
    Ok(())
}

Crates should extend CoreError with domain-specific variants:

#[derive(Error, Debug)]
pub enum PeftError {
    #[error("adapter '{0}' not found")]
    AdapterNotFound(String),

    #[error(transparent)]
    Core(#[from] CoreError),
}

Future Framework Goals

rust-ai-core is designed to enable a future AI framework with these principles:

  1. Transparency - Clear, understandable operations at every level
  2. Traceability - Track what happens at each step with detailed logging
  3. Performance - GPU-accelerated, optimized for production workloads
  4. Ease of use - Simple high-level API with sensible defaults
  5. Repeatability - Deterministic, reproducible results
  6. Customization depth - Users can go as deep as they want, from high-level APIs to custom kernels

See ARCHITECTURE.md for design decisions and extension points.

Python API Reference

The rust-ai-core-bindings package exposes the following functions:

Memory Estimation

# Estimate tensor memory
estimate_tensor_bytes(shape: list[int], dtype: str) -> int

# Estimate attention layer memory (Q, K, V + attention weights + output)
estimate_attention_memory(
    batch_size: int,
    num_heads: int,
    seq_len: int,
    head_dim: int,
    dtype: str
) -> int

Memory Tracking

# Create a memory tracker with optional limit
create_memory_tracker(limit_bytes: int = 0) -> MemoryTracker

# Record allocation (raises if exceeds limit)
tracker_allocate(tracker: MemoryTracker, bytes: int)

# Record deallocation
tracker_deallocate(tracker: MemoryTracker, bytes: int)

# Query tracker state
tracker_allocated_bytes(tracker: MemoryTracker) -> int
tracker_peak_bytes(tracker: MemoryTracker) -> int
tracker_would_fit(tracker: MemoryTracker, bytes: int) -> bool

# Reset tracker to initial state
tracker_reset(tracker: MemoryTracker)

Device Detection

# Check CUDA availability
cuda_available() -> bool

# Get device information (returns dict with type, ordinal, name)
get_device_info(force_cpu: bool = False, cuda_device: int = 0) -> dict

Data Type Utilities

# Get bytes per element for dtype
bytes_per_dtype(dtype: str) -> int

# Check if dtype is floating point
is_floating_point_dtype(dtype: str) -> bool

# Get accumulator dtype for mixed precision
accumulator_dtype(dtype: str) -> str

Supported Data Types

  • "f32" - 32-bit float
  • "f16" - 16-bit float
  • "bf16" - Brain float 16
  • "f64" - 64-bit float
  • "i64" - 64-bit integer
  • "u32" - 32-bit unsigned integer
  • "u8" - 8-bit unsigned integer

Logging

# Initialize logging (call once at startup)
init_logging(level: str = "info")  # debug, info, warn, error

License

MIT License - see LICENSE-MIT

Contributing

Contributions welcome! Please ensure:

  • All public items have documentation
  • Tests pass: cargo test
  • Lints pass: cargo clippy --all-targets --all-features
  • Code is formatted: cargo fmt

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

rust_ai_core_bindings-0.2.6.tar.gz (79.9 kB view details)

Uploaded Source

Built Distributions

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

rust_ai_core_bindings-0.2.6-cp312-cp312-win_amd64.whl (564.3 kB view details)

Uploaded CPython 3.12Windows x86-64

rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (710.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_11_0_arm64.whl (596.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl (616.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rust_ai_core_bindings-0.2.6-cp311-cp311-win_amd64.whl (563.5 kB view details)

Uploaded CPython 3.11Windows x86-64

rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (710.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_11_0_arm64.whl (599.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl (620.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rust_ai_core_bindings-0.2.6-cp310-cp310-win_amd64.whl (563.2 kB view details)

Uploaded CPython 3.10Windows x86-64

rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (709.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_11_0_arm64.whl (599.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_10_12_x86_64.whl (619.7 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

rust_ai_core_bindings-0.2.6-cp39-cp39-win_amd64.whl (563.9 kB view details)

Uploaded CPython 3.9Windows x86-64

rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (710.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_11_0_arm64.whl (600.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_10_12_x86_64.whl (620.2 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file rust_ai_core_bindings-0.2.6.tar.gz.

File metadata

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

File hashes

Hashes for rust_ai_core_bindings-0.2.6.tar.gz
Algorithm Hash digest
SHA256 4e6854a5b8a7d8c6e30c1a0a3428ca29bff59f47270108def84baf12e5d3f4b5
MD5 bab8930482c96613ae53939974dda48b
BLAKE2b-256 ffe4a90f39020888067433c4e7c7f6ea02738eb9db47b00af90613e8ec14a66b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6.tar.gz:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f17fcd10d0dcb57c770ff6a1aefd49c349ff4f96b972e3796272679caf34a563
MD5 2bdb226073ffbc2f4d59701c5256e957
BLAKE2b-256 cf1d02de2012a085dcef952431d6d8e33d50f9fb1b9c1de3aa1bf7b14b35a010

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp312-cp312-win_amd64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 502d363a420257a9ca55e73dea0ccbb8fc171e164bb2d0ecd40089b4fb7a1189
MD5 d3db9f7611cddd989b17668fdf2e6726
BLAKE2b-256 61f5a7e360ace93d9becadeb64ca8c38cc8365524fd0e5fe127586a8176a5266

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8d03db6b1bd457ce571dfde170cddd38222928b43aa8c8e12c944d8f4af4fa4
MD5 5127ec2d50c16fb482a604183184b4fd
BLAKE2b-256 efa21f29342df3ab2d81eb7ea221bf1348d338993b07c8732f217f3d0f904575

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84cc4f432e59219b25e7672a285e70e80bacc6b237b1d42a3711cd469ec83354
MD5 d26d568a60e0a882362b95a47b492f5c
BLAKE2b-256 176e040ded710456147016e863af1e7e54a96441efe01e4ac17854f66824684f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e464c8e7c598ae2929998eb50de67914b12e81c13c729e9fcabe8422b619b67a
MD5 f4b167a46317e54653074d39d14dafe2
BLAKE2b-256 7cd2e34e9948f252a6cf5255abb87cdd3eb4213cd8450cc0b9f490cc7c00ae33

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f7c95c7c218159543768286ab235ad28bf10eafc0d533e3221a10c515bb6c0b0
MD5 f38a6ad3b5678cb264c12a689181f0f4
BLAKE2b-256 d022d05aa2bd3c1f38cfeca8c7688a5720bcdd2891c63655b6be7e7ef075c94b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp311-cp311-win_amd64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0344c7becaf0fcd9aaa9f882e9ae3f62a23319a88ea237666029c57bd6f8c1f4
MD5 383a3937f48274080860463734a8890c
BLAKE2b-256 9a820c667abcc2ea16fc9af479b2a6c0e1aac66696517676b5c69a1b2164ec70

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3424ee8be8d1156e6f368ceb345d3d1c278c6b904c5caa294e2a00467656a58
MD5 8866724c2f5986e322db25468b2efb90
BLAKE2b-256 8ba7a27fbc606124312eca92851f0da6abc90b485051143e4366e1f96f87fb63

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7412d9c74751b444298c524c1b354c3e3d4b0009ab47266ebc70f16f0a990e11
MD5 0fce2fd675bb94c3c1bcdedf61d7b215
BLAKE2b-256 abfa9a9ef239ae21a5fca9fbe5171e6a7791117730f5368b846f04956b353fbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 09d5b438fe56f4ed1b03163442e01bbf3f3544e42b966e3f3062613a426ac048
MD5 639271983ec36624aef21f61202b397e
BLAKE2b-256 f87c958b1e0f86c1abeed0f879046993e9071c6465c109ccf9efa2777503227d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2490132bbff08d33f538eb82ef339af9007554e950612db2776dcd3c2e2308e0
MD5 a1e019f7b4496a8b99b3a104d158587b
BLAKE2b-256 cf049620f5431e9ad51c17d1700aa688650dbb4baf6f278de9309f5c707a0f9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp310-cp310-win_amd64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9be7c930b23a8e4b86e322a7138df03ae556129e8fd8551c6f7548935eb1d11f
MD5 8204c7ac26b5c55f4439dcf2af3bc0e2
BLAKE2b-256 cb7196f12ccb6c9266050dcf3f8c0edb4e1d24e98689d5ab22c6a60d2fb8278a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 978c31e709baa8e30f66690cb4bef197f10345e0b6dcecc66e62ea807e274062
MD5 14e58e591288ea58d22bbc1f999fd95c
BLAKE2b-256 021541952fe1d482a142de581ad50eca92b5f306ee732872c57afce62770f4f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0724a9fbc2bb431b7e433623cc941f71358fde63d15f64172d3c6b28526005dc
MD5 1ba3a6ca31709a1b578e7fed80f02dbe
BLAKE2b-256 06309d49e5b4599c6cbec9584aacc0afc70aff6edd373f82d6fad35b89f1af48

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c3b8de2e0aeb6245bb6213a88001736fbf6efbf2dbe1950279f94aa69770a41b
MD5 795f4d993a22dc2f70c3a4e14fd43f2f
BLAKE2b-256 b6b828cc659bedea0cb16a1c8e4c207e595dc6a3e0f2ee1500dfe2538983982f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 66907c819f1e08f24f3af7ee8d7c11122ab070b64a8cafc95a2d3fcebc764c86
MD5 420da8c033efc581f9fb8150c5d02939
BLAKE2b-256 2185805aefb0d92f61e9b08aeb545bfa32ebe9784e704c73fd13a6531ff04fc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp39-cp39-win_amd64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b133ba3ba540138d88c2f5fb1aec7ad42494a5521e3428644b7e5e10a130b1be
MD5 b58c77c5ccb078b327e434cbca4100d9
BLAKE2b-256 dda8beeae4d99d7fb8931f45a61068f984921b575e85634accd2830034faaa54

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8dc389171e14b8280e72b357c7a0b6a9afc27e895a7f3efcc0913a5d3e5ec7b6
MD5 78a1351c0b6307ea1393b1d6a16e121b
BLAKE2b-256 ebee7b436aae69cf712249b9773eda2833c6d40416e90f5ea6726b6f89779dea

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fa6ad8d76905806f61e79d6dc7e8b1bf7207f3272add1559ae0602e7313dc88
MD5 e063a068f10399fa909ecdb1dde41ccf
BLAKE2b-256 1312dd4623c70b0a322d480cc2f10b8520f9875fedacb41924ea7ad3912ebe3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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

File details

Details for the file rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f962eb176c21b5fb051509f788f15ae850d9e8d1d8a023c97b42e96eea6f91e
MD5 2edd635826b27b0e511416cb24cb39d9
BLAKE2b-256 cf5f1c149b67541c9b1dd16853abd6c10bbd6f6f430e2e4d9499abd1127cc42a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_ai_core_bindings-0.2.6-cp39-cp39-macosx_10_12_x86_64.whl:

Publisher: release.yml on tzervas/rust-ai-core

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