14 releases (7 breaking)
0.8.1 | Jan 14, 2022 |
---|---|
0.7.0 | Dec 30, 2021 |
#555 in Math
35 downloads per month
330KB
5K
SLoC
A Rust library for vector computation
Test Status
About
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
User documentation is available at https://docs.rs/vectora.
Minimum Rust Version Compatibility Policy
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.
Include Vectora in Your Project
Import the library in the [dependencies]
section of your Cargo.toml
file:
Cargo.toml
[dependencies]
vectora = "0.8.1"
Developer documentation
Contributing
Issues
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.
Source contributions
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.
Clone the repository
git clone https://github.com/chrissimpkins/vectora.git
Testing
The project is tested with the latest GitHub Actions macOS, Linux (Ubuntu), and Windows environment runners using the stable and beta rustc
toolchains.
Unit and doc test suite
Edit the source files, then run the unit and doc test suite locally with the command:
cargo test
Unit tests only
cargo test --lib
Doc tests only
cargo test --doc
Clippy lints
Clippy lints are not executed with the above commands. Use the following to lint Rust source files with clippy:
cargo clippy -- -D warnings
Fuzzing
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.
Documentation contributions
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.
Changes
Please see CHANGELOG.md.
License
Vectora is released under the Apache License, v2.0.
Dependencies
~420–770KB
~15K SLoC