bigint-buffer BigInt与Buffer转换库

BigInt 的缓冲区转换,真的是个坑,bigint-buffer就是为这个来的。它专门BigIntBuffer之间的互转,是在 Node 环境下直接用 N-API,速度快还不绕路,不用转成十六进制字符串那一套。浏览器端用的是字符串方式,也还算稳妥。

JS 里Number最大就支持到 2^53 - 1,再大就不准了,像 64、128、256 位的 ID、哈希这些,BigInt就合适。你如果搞区块链、加密、或数据库唯一标识啥的,遇到这类大整数就太常见了,用这个库顺手。

bigint-buffer的接口也挺简单,直接把 BigInt 转成 Buffer,或者反过来。举个例子:

const { toBufferBE, toBigIntBE } = require('bigint-buffer');

const num = 1234567890123456789012345678901234567890n; const buf = toBufferBE(num, 32); // 转成 32 字节的大端 Buffer const back = toBigIntBE(buf); // 再转回来

嗯,就这么简单,代码也清爽。如果你在 Node 里二进制流,或者搞自定义协议的,那它基本是标配了。

不过要注意,浏览器里没法用 N-API,性能不如 Node 高,如果纯前端建议别用太大整数,浏览器内存吃不消。

如果你想了解更底层的东西,可以看看 n-api 的,对这个库怎么跑得快也有点。

zip 文件大小:87.05KB