#simd #64-byte #vec #automatic #parallel-processing #avx-512 #cache-line #simd-alignment

nightly vec64

High-performance Rust vector type with automatic 64-byte SIMD alignment

7 unstable releases (3 breaking)

Uses new Rust 2024

new 0.4.2 Mar 8, 2026
0.4.1 Mar 8, 2026
0.3.0 Jan 25, 2026
0.2.1 Nov 22, 2025
0.1.0 Oct 18, 2025

#222 in Caching

Download history 6/week @ 2025-11-18 32/week @ 2025-12-02 17/week @ 2025-12-09 1/week @ 2025-12-16 4/week @ 2026-01-13 2/week @ 2026-01-20 5/week @ 2026-01-27 5/week @ 2026-02-03 3/week @ 2026-02-10 47/week @ 2026-02-17 43/week @ 2026-02-24

100 downloads per month
Used in 6 crates (via minarrow)

Apache-2.0

64KB
1.5K SLoC

Vec64

High-performance Rust vector type with automatic 64-byte SIMD alignment.

Summary

Vec64<T> is a drop-in replacement for Vec<T> that ensures the starting pointer is aligned to a 64-byte boundary. This alignment is useful for optimal performance with SIMD instruction extensions like AVX-512, and helps avoid split loads/stores across cache lines.

Benefits will vary based on one's target architecture.

WASM Compatibility

Enable the wasm feature for Web Worker-based parallelism:

vec64 = { version = "0.3", features = ["wasm"] }

Required build configuration (.cargo/config.toml):

[target.wasm32-unknown-unknown]
rustflags = ["-C", "target-feature=+atomics,+bulk-memory"]

[unstable]
build-std = ["panic_abort", "std"]

Build with wasm-pack:

wasm-pack build --target web

Initialise the thread pool from JavaScript before using parallel methods:

import init, { initThreadPool } from './pkg/your_crate.js';
await init();
await initThreadPool(navigator.hardwareConcurrency);

Note: Requires nightly Rust with rust-src component for build-std. The browser needs SharedArrayBuffer support (cross-origin isolation via COOP/COEP headers). See wasm-test/ for a complete working example.


Vec64

High-performance Rust vector type with automatic 64-byte SIMD alignment.

Requires nightly Rust.

Overview

Vec64<T> is a drop-in replacement for Vec<T> that guarantees the starting pointer is aligned to a 64-byte boundary, enabling optimal performance with SIMD instruction extensions like AVX-512.

Vec64 is the foundational buffer type behind Minarrow - a typed, high-performance columnar data library for Rust. If you're building data-intensive applications and want aligned buffers, automatic padding, parallel processing, and Arrow-compatible columnar structures out of the box, Minarrow has it for you.

Quick Start

[dependencies]
vec64 = "0.4"
use vec64::{Vec64, vec64};

let mut v = Vec64::new();
v.push(42);

let v = vec64![1, 2, 3, 4, 5];

let v = Vec64::from_slice(&[1, 2, 3]);

All standard Vec operations work as expected.

License

Apache-2.0

Dependencies

~0–1.8MB
~34K SLoC