stint
Stack-based arbitrary-precision integers - Fast and portable with natural syntax for resource-restricted devices
Summary
| Latest Version | Unknown |
|---|---|
| License | Apache License 2.0 |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:24 |
Tags
Installation
nimble install stint
choosenim install stint
git clone https://github.com/status-im/nim-stint
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| stint | ✓ | ✓ | ✓ | - | - | - | - | - | - | ✓ |
Source
| Repository | https://github.com/status-im/nim-stint |
|---|---|
| Homepage | https://github.com/status-im/nim-stint |
| Documentation | View Documentation |
| Registry Source | nimble_official |
README
Stint (Stack-based arbitrary precision integers)
stint provides efficient and convenient N-bit integers for Nim, for arbitrary
sizes of N decided at compile time with an interface similar to to
int64/uint64.
In addition to basic integer operations, stint also contains primtives for
modular arithmetic, endian conversion, basic I/O, bit twiddling etc.
stint integers, like their intXX/uintXX counterpart in Nim are stack-based
values, meaning that they are naturally allocation-free and have value-based
semantics.
Priorities
- Portability
- 32 and 64 bit
- ARM/x86/x86_64 extensively tested
- 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 require assembly for portability.
- No heap/dynamic allocation
- Ease of use:
- Use traditional
+,-,+=, etc operators like on native types - converting to and from raw byte BigInts (also called octet string in IETF specs)
- converting to and from Hex
- converting to and from decimal strings
Non-priorities include:
- constant-time operation (not suitable for certain kinds of cryptography out of the box)
- runtime precision
See also
- constantine - modular arithmetic and elliptic curve operations focusing on cryptography and constant-time implementation
- N2472 -
_ExtInt(N)- native arbitrary precision integers for C - stew - helpers and utilities for ordinary Nim integers (
endians2,bitops2etc)
License
Licensed and distributed under either of
- MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT
or
- Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0)
at your option. This file may not be copied, modified, or distributed except according to those terms.