Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chrissimpkins/vectora
A Rust library for n-dimensional vector computation with real and complex scalar data
https://github.com/chrissimpkins/vectora
2d 3d complex-number data data-analysis floating-point integer math mathematics real-number rust rust-crate rust-lang rust-library scalar vector vector-computations vector-math
Last synced: 24 days ago
JSON representation
A Rust library for n-dimensional vector computation with real and complex scalar data
- Host: GitHub
- URL: https://github.com/chrissimpkins/vectora
- Owner: chrissimpkins
- License: apache-2.0
- Created: 2021-11-19T15:04:26.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-17T00:58:55.000Z (11 months ago)
- Last Synced: 2024-09-30T12:04:32.333Z (about 1 month ago)
- Topics: 2d, 3d, complex-number, data, data-analysis, floating-point, integer, math, mathematics, real-number, rust, rust-crate, rust-lang, rust-library, scalar, vector, vector-computations, vector-math
- Language: Rust
- Homepage: https://docs.rs/crate/vectora/latest
- Size: 290 KB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## A Rust library for vector computation
[![Crates.io](https://img.shields.io/crates/v/vectora)](https://crates.io/crates/vectora)
[![docs.rs](https://img.shields.io/docsrs/vectora)](https://docs.rs/vectora)
[![GitHub](https://img.shields.io/github/license/chrissimpkins/vectora)](LICENSE)## Test Status
[![stable toolchain unit tests](https://github.com/chrissimpkins/vectora/actions/workflows/stable-unittests.yml/badge.svg)](https://github.com/chrissimpkins/vectora/actions/workflows/stable-unittests.yml)
[![beta toolchain unit tests](https://github.com/chrissimpkins/vectora/actions/workflows/beta-unittests.yml/badge.svg)](https://github.com/chrissimpkins/vectora/actions/workflows/beta-unittests.yml)
[![clippy lints](https://github.com/chrissimpkins/vectora/actions/workflows/lints.yml/badge.svg)](https://github.com/chrissimpkins/vectora/actions/workflows/lints.yml)
[![rustfmt check](https://github.com/chrissimpkins/vectora/actions/workflows/fmt.yml/badge.svg)](https://github.com/chrissimpkins/vectora/actions/workflows/fmt.yml)## About
Vectora is a library for n-dimensional vector computation with real and complex scalar types. The main library entry point is the [`Vector`](https://docs.rs/vectora/latest/vectora/types/vector/struct.Vector.html) struct. Please see the [Gettting Started Guide](https://docs.rs/vectora/latest/vectora/#getting-started) 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](https://github.com/rust-lang/rust/pull/79135).
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**
```toml
[dependencies]
vectora = "0.8.1"
```## Developer documentation
### Contributing
#### ![L4 Header](https://via.placeholder.com/12/B01721/000000?text=+) Issues
The [issue tracker](https://github.com/chrissimpkins/vectora/issues) is available on the GitHub repository. Don't be shy. Please report any issues that you identify so that we can address them.
#### ![L4 Header](https://via.placeholder.com/12/B01721/000000?text=+) 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.
#### ![L4 Header](https://via.placeholder.com/12/B01721/000000?text=+) Clone the repository
```txt
git clone https://github.com/chrissimpkins/vectora.git
```#### ![L4 Header](https://via.placeholder.com/12/B01721/000000?text=+) 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:
```txt
cargo test
```##### Unit tests only
```txt
cargo test --lib
```##### Doc tests only
```txt
cargo test --doc
```##### Clippy lints
Clippy lints are not executed with the above commands. Use the following to lint Rust source files with clippy:
```txt
cargo clippy -- -D warnings
```##### Fuzzing
This crate supports [`cargo fuzz`](https://github.com/rust-fuzz/cargo-fuzz) + [`libFuzzer`](https://llvm.org/docs/LibFuzzer.html) based fuzzing with the nightly rustc toolchain in supported environments.
[Install the `rustc` nightly toolchain](https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust).
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](https://rust-fuzz.github.io/book/cargo-fuzz.html) of the Rust Fuzz book for additional documentation.
#### ![L4 Header](https://via.placeholder.com/12/B01721/000000?text=+) 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:
```txt
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](CHANGELOG.md).
## License
Vectora is released under the [Apache License, v2.0](LICENSE).