nalgebra by the rustsim team is IIUC the "default" solution for linalg types.
Note that mint
is an interopability crate only; it doesn't provide any functionality beyond holding data. You can look at its rdeps to see which crates support it; euclid and cgmath seem to be the main alternatives to nalgebra.
If you'd use other stuff from rustsim (e.g. ncollide, nphysics), then I'd go with nalgebra. If you'd use some other building block that prefers speaking some other linalg types, I'd use that one. If you're just using the linalg bits and building the rest yourself, pick the one with your favorite API.
Or if you're feeling adventurous, use the mint
types and make traits to add functionality to them (and live with the fact you can't implement operator support).
Also, it's worth noting that nalgebra has nalgebra-glm, which is a simplified API to nalgebra for computer graphics inspired by GLM.
One last honorable mention: ultraviolet.
Later edit: I should also mention glam, which is used by bevy. https://github.com/bitshifter/mathbench-rs shows a comparison between the major ecosystem linalg crates.
This is no longer just suggesting a "most widely used" crate, so sorry about that. But the fact is that there isn't one best solution here, so there are going to always be multiple solutions available.