hmmhmmhm / safebase

Tiny 2kb, zero deps, infinite precision: SafeBase for all your big integer + big decimal needs.

Home Page:https://stackblitz.com/edit/safebase-playground

Repository from Github https://github.comhmmhmmhm/safebaseRepository from Github https://github.comhmmhmmhm/safebase

๐Ÿ”ข safebase

Poster Image

Tiny 2kb, zero deps, infinite precision: SafeBase for all your big integer + big decimal needs.

SafeBase is a Lightweight, Zero Dependency JavaScript library for safe and precise arithmetic operations on Big Integer + Big Decimal. It excels at handling both Big Decimal and Big Integer computations with ease. ๐Ÿงฎ

Features ๐ŸŒŸ

  • ๐Ÿ”ข Supports operations on extremely large numbers (Big Number)
  • ๐Ÿ”’ Zero dependencies
  • ๐Ÿชถ Lightweight: Only 2kb in size
  • ๐Ÿ’ป Full TypeScript support
  • ๐ŸŽฏ High precision decimal arithmetic (Big Decimal)
  • ๐Ÿ”€ Seamless handling of both Big Decimal and Big Number operations

Installation ๐Ÿ“ฅ

npm install safebase

Usage ๐Ÿš€

import { add, subtract, multiply, divide } from "safebase";

console.log(add("10000000000000000000000", "0.00000000005"));
// '10000000000000000000000.00000000005'

console.log(subtract("-9999999999999999999999.9", "0.1"));
// '-10000000000000000000000'

console.log(multiply("123456789123456789", "0.000000001"));
// '123456789.123456789'

console.log(divide("1000000000000000000000", "0.1"));
// '10000000000000000000000'

API ๐Ÿ“š

add(left: string, right: string): string

Adds two numbers represented as strings.

subtract(left: string, right: string): string

Subtracts the second number from the first, both represented as strings.

multiply(left: string, right: string): string

Multiplies two numbers represented as strings.

divide(left: string, right: string, precision: number = 20): string

Divides the first number by the second, both represented as strings. The precision parameter determines the number of decimal places in the result (default is 20).

Why SafeBase? ๐Ÿค”

JavaScript's native number type has limitations when dealing with very large numbers or high precision decimals. SafeBase overcomes these limitations by:

  • ๐Ÿ”ข Representing numbers as strings, allowing for arbitrary-length integers
  • ๐ŸŽฏ Providing high-precision decimal arithmetic
  • ๐Ÿ› Avoiding floating-point errors common in JavaScript's native math operations

Performance ๐Ÿš€

SafeBase is optimized for performance while maintaining accuracy. It's suitable for applications requiring precise calculations with large numbers, such as financial systems, scientific computing, or cryptography.

Contributing ๐Ÿค

Contributions are welcome! Please feel free to submit a Pull Request.

License ๐Ÿ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments ๐Ÿ‘

  • Thanks to all contributors who have helped shape SafeBase
  • Inspired by the need for reliable big number arithmetic in JavaScript

About

Tiny 2kb, zero deps, infinite precision: SafeBase for all your big integer + big decimal needs.

https://stackblitz.com/edit/safebase-playground

License:MIT License


Languages

Language:TypeScript 99.4%Language:JavaScript 0.6%