Vectora is a library for n-dimensional vector computation with real and complex scalar types. The main library entry point is the Vector
struct. Please see the Gettting Started Guide for a detailed library API overview with examples.
User documentation is available at https://docs.rs/vectora.
This project parameterizes generics by constants and relies on the constant generics feature support stabilized in Rust v1.51.0.
The minimum supported rustc
version is believed to be v1.51.0.
Import the library in the [dependencies]
section of your Cargo.toml
file:
Cargo.toml
[dependencies]
vectora = "0.8.1"
The issue tracker is available on the GitHub repository. Don't be shy. Please report any issues that you identify so that we can address them.
Contributions are welcomed. Submit your changes as a GitHub pull request. Please add new tests for source contributions that our current test suite does not cover.
git clone https://github.com/chrissimpkins/vectora.git
The project is tested with the latest GitHub Actions macOS, Linux (Ubuntu), and Windows environment runners using the stable and beta rustc
toolchains.
Edit the source files, then run the unit and doc test suite locally with the command:
cargo test
cargo test --lib
cargo test --doc
Clippy lints are not executed with the above commands. Use the following to lint Rust source files with clippy:
cargo clippy -- -D warnings
This crate supports cargo fuzz
+ libFuzzer
based fuzzing with the nightly rustc toolchain in supported environments.
Install the rustc
nightly toolchain.
Then, install cargo-fuzz
with:
cargo +nightly install -f cargo-fuzz
Edit the fuzz target source in the fuzz/fuzz_vectora.rs
file and begin fuzzing with the command:
cargo +nightly fuzz run fuzz_vectora
Please see the Fuzzing with cargo-fuzz chapter of the Rust Fuzz book for additional documentation.
The docs.rs documentation is authored in the Rust source files. Edit the text and build a local version of the project documentation for review with the command:
cargo doc
The documentation index.html
page can be found on the following relative path from the repository's root: target/doc/vectora/index.html
.
Submit your doc edits as a GitHub pull request.
Please see CHANGELOG.md.
Vectora is released under the Apache License, v2.0.