# dashu
<img src="guide/src/assets/dashu-banner.png" alt="dashu">
[](https://crates.io/crates/dashu)
[](https://docs.rs/dashu)
[](https://github.com/cmpute/dashu/actions)
[](#dashu)
[](#license)
[](https://zyxin.xyz/dashu/)
A library set of arbitrary precision numbers (aka. big numbers) implemented in Rust. It's intended to be a Rust native alternative to GNU GMP + MPFR (+ MPC in future). It features:
- Pure rust, full `no_std` support.
- Focus on ergonomics & readability, and then efficiency.
- Optimized speed and memory usage.
- Current MSRV is 1.68.
## Sub-crates
- [`dashu-base`](./base): Common trait definitions
- [`dashu-int`](./integer): Arbitrary precision integers
- [`dashu-float`](./float): Arbitrary precision floating point numbers
- [`dashu-ratio`](./rational): Arbitrary precision rational numbers
- [`dashu-cmplx`](./complex): Arbitrary precision complex numbers
- [`dashu-macros`](./macros): Macros for creating big numbers
`dashu` is a meta crate that re-exports all the types from these sub-crates. Please see the README.md in each subdirectory for crate-specific introduction.
## Python package
[`dashu-python`](./python) is a user-friendly test field for the core dashu
functionalities: through the [`dashu-rs`](https://pypi.org/project/dashu-rs/)
package on PyPI, users can try dashu's arbitrary-precision integers, rationals,
floats, and complex numbers from Python to get an idea of what dashu is capable
of — no Rust toolchain needed. Beyond exploring dashu, it also stands on its own
as a standalone arbitrary-precision number package for the Python ecosystem.
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](../LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](../LICENSE-MIT) or https://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.