/stdsimd

Experiments with adding SIMD support to Rust's standard library.

Primary LanguageRustApache License 2.0Apache-2.0

stdsimd - Rust's standard library SIMD components

Travis-CI Status Appveyor Status Latest Version docs

Usage

stdsimd is now shipped with Rust's std library - its is part of libcore and libstd.

The easiest way to use it is just to import it via use std::arch.

The std::arch component for x86 is available in stable Rust. The std::arch components for other architectures and the std::simd component require nightly Rust.

Using stdsimd master branch is not recommended. It requires nightly Rust, it only works with particular Rust nightly versions, and it can (and does) break often. If you need to use stdsimd master branch, you can add it to your Cargo.toml as follows:

#[dependencies]
stdsimd = { git = "https://github.com/rust-lang-nursery/stdsimd.git" }

Documentation

Approach

The main goal is to expose APIs defined by vendors with the least amount of abstraction possible. On x86, for example, the API should correspond to that provided by emmintrin.h.

License

stdsimd is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.