2018-04-25 10:52:00 +00:00
|
|
|
# Stint (Stack-based multiprecision integers)
|
2018-02-15 12:11:01 +00:00
|
|
|
|
2018-03-02 10:33:57 +00:00
|
|
|
[![License: Apache](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
|
2018-05-08 13:30:58 +00:00
|
|
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
|
2018-02-15 12:11:01 +00:00
|
|
|
![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)
|
2021-06-02 23:55:01 +00:00
|
|
|
![Github action](https://github.com/status-im/nim-stint/workflows/CI/badge.svg)
|
2018-02-15 12:11:01 +00:00
|
|
|
|
2018-04-25 10:52:00 +00:00
|
|
|
A fast and portable stack-based multi-precision integer library in pure Nim
|
2018-02-15 12:11:01 +00:00
|
|
|
|
|
|
|
Main focus:
|
2018-04-25 10:52:00 +00: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 12:11:01 +00:00
|
|
|
- Ease of use:
|
2018-04-25 10:52:00 +00:00
|
|
|
- Use traditional `+`, `-`, `+=`, etc operators like on native types
|
2022-01-23 21:45:47 +00:00
|
|
|
- converting to and from raw byte BigInts (also called octet string in IETF specs)
|
2018-04-25 10:52:00 +00:00
|
|
|
- converting to and from Hex
|
|
|
|
- converting to and from decimal strings
|
2018-03-02 10:48:08 +00:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2018-09-05 18:48:40 +00:00
|
|
|
Licensed and distributed under either of
|
|
|
|
|
|
|
|
* MIT license: [LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT
|
|
|
|
|
2019-01-02 13:57:16 +00:00
|
|
|
or
|
|
|
|
|
|
|
|
* Apache License, Version 2.0, ([LICENSE-APACHEv2](LICENSE-APACHEv2) or http://www.apache.org/licenses/LICENSE-2.0)
|
2018-03-02 10:48:08 +00:00
|
|
|
|
2019-01-02 13:57:16 +00:00
|
|
|
at your option. This file may not be copied, modified, or distributed except according to those terms.
|