2018-04-25 12:52:00 +02:00
# Stint (Stack-based multiprecision integers)
2018-02-15 13:11:01 +01:00
2018-03-02 11:33:57 +01:00
[](https://opensource.org/licenses/Apache-2.0)
2018-05-08 15:30:58 +02:00
[](https://opensource.org/licenses/MIT)
2018-02-15 13:11:01 +01:00

2021-06-03 01:55:01 +02:00

2018-02-15 13:11:01 +01:00
2018-04-25 12:52:00 +02:00
A fast and portable stack-based multi-precision integer library in pure Nim
2018-02-15 13:11:01 +01:00
Main focus:
2018-04-25 12:52:00 +02:00
- Portability
- 32 and 64 bit arch
- ARM for usage on mobile phones
- Additionally RISC-V and MIPS for open hardware and low power IoT devices.
- Speed, library is carefully tuned to produce the best assembly given the current compilers.
However, the library itself does not resort to assembly for portability.
- No heap/dynamic allocation
- Ethereum applications
- Uint256/Int256 for Ethereum Virtual Machine usage.
- Uint2048 for Ethereum Bloom filters
2018-02-15 13:11:01 +01:00
- Ease of use:
2018-04-25 12:52:00 +02:00
- Use traditional `+` , `-` , `+=` , etc operators like on native types
- Representation of numbers in memory is the exact same as native types and endianness aware.
- In practice that means that interfacing with binary blobs representing numbers from cryptographic libraries can be done with a `cast` if it represents a Uint256, Uint512, Uint1024, Uint2048.
- converting to and from Hex
- converting to and from decimal strings
2018-03-02 11:48:08 +01:00
## License
2018-09-05 12:48:40 -06:00
Licensed and distributed under either of
* MIT license: [LICENSE-MIT ](LICENSE-MIT ) or http://opensource.org/licenses/MIT
2019-01-02 14:57:16 +01:00
or
* Apache License, Version 2.0, ([LICENSE-APACHEv2 ](LICENSE-APACHEv2 ) or http://www.apache.org/licenses/LICENSE-2.0)
2018-03-02 11:48:08 +01:00
2019-01-02 14:57:16 +01:00
at your option. This file may not be copied, modified, or distributed except according to those terms.