#nalgebra #ndarray #borrow #convert #image

no-std nshare

Conversion between n-dimensional types in different Rust crates

9 breaking releases

0.10.0 Aug 29, 2024
0.9.0 Feb 3, 2022
0.8.0 Nov 12, 2021
0.7.0 Jun 26, 2021
0.1.1 Apr 4, 2020

#151 in Rust patterns

Download history 254/week @ 2024-06-21 150/week @ 2024-06-28 204/week @ 2024-07-05 266/week @ 2024-07-12 288/week @ 2024-07-19 333/week @ 2024-07-26 313/week @ 2024-08-02 412/week @ 2024-08-09 357/week @ 2024-08-16 485/week @ 2024-08-23 336/week @ 2024-08-30 316/week @ 2024-09-06 422/week @ 2024-09-13 745/week @ 2024-09-20 1093/week @ 2024-09-27 1718/week @ 2024-10-04

4,018 downloads per month
Used in 12 crates (11 directly)

MIT license

29KB
436 lines

nshare

Discord Crates.io MIT/Apache docs.rs LoC ci

Provides traits that allow conversion between n-dimensional types in different Rust crates

NOTE: By default, this crate includes conversions for all supported crates. If you want to limit compilation, use no-default-features = true enable the corresponding feature for each dependency:

  • nalgebra
  • ndarray
  • image

When two crate features are enabled, any available conversions between the two crates are turned on.

Limitations

Right now this crate really only provides conversions to owned and borrowed ndarray types. Some limitations exist with nalgebra, as it only utilizes positive strides, while ndarray supports negative strides as well. The image crate has no concept of strides. Due to this, the ndarray crate is the most flexible, and is ideal for interoperability between these various crates.

nalgebra currently does not offer a solution to directly pass it an owned vector from ndarray, so into conversions do perform a copy. It is recommended to create the owned copy in nalgebra and then borrow a mutable array view of it using ndarray. You can then populate it accordingly without any copies of the data.

Dependencies

~5MB
~104K SLoC