@adraffy/cid

中文文档
0.0.6发布于 2024/01/29MITTypeScriptESM + CJS零依赖近 30 天下载 3189

多格式编辑器

中文使用文档

cid.js (中文(简体) )

0 - 依赖性 多格式编辑器 与相关的基地和编码器.

演示 ⭐

import {CID} from '@adraffy/cid'; // or require()
// npm i @adraffy/cid
// browser: https://cdn.jsdelivr.net/npm/@adraffy/cid@latest/dist/index.min.js

let cid = CID.from('QmQ7D7QqcAhFdrFfquiz7B5RWZiJ6e9Ast1LzpXZEdZWF5');
// CID {
//   version: number,
//   codec: number,
//   hash: Multihash { ... },
//   base?: Multibase { ... }
// }
cid.version; // 0
cid.codec;   // 0x70 (since version = 0)
cid.base;    // remembers source base if possible
cid.hash;
// Multihash {
//   codec: number,
//   data: Uint8Array() [ ... ]
// }
cid.bytes; // encoded bytes => Uint8Array(34) [ ... ]
cid.toString();
// "QmQ7D7QqcAhFdrFfquiz7B5RWZiJ6e9Ast1LzpXZEdZWF5"

let cid1 = cid.upgrade(); // copy with version >= 1
cid1.toString(); // default base is "k" => base36
// "k2jmtxs0omsxbtzexbx41py6k7akdtllisuuumrorlmyo2tixbx59rj8"
cid1.toString('z'); // use different base, by prefix (base58btc)
// "zdj7WXCTUquTeArWZZbaegbyYuz8mujpBZJkCQsfcvE458QR1" 
cid1.toString(Multibase.for('b')); // provide Multibase, by prefix (base32)
// "bafybeia2ixqr5fda7cw5vem65xtirm6puhde3vrehkv4zqxxicwc6gbmuq" 
cid2.toString(Multibase.for('base32upper')); // by name
// "BAFYBEIA2IXQR5FDA7CW5VEM65XTIRM6PUHDE3VREHKV4ZQXXICWC6GBMUQ" 

可用 基础数字 :

import {Multibase} from '@adraffy/cid';

// auto-registers during Multibase() constructor
[...Multibase].map(x => `${x.prefix}:${name}`); // Iterable<Multibase>
// [
//   0:base2,             7:base8,             9:base10,           
//   f:base16,            F:base16upper,       v:base32hex,        
//   V:base32hexupper,    t:base32hexpad,      T:base32hexpadupper,
//   b:base32,            B:base32upper,       c:base32pad,        
//   C:base32padupper,    h:base32z,           k:base36,           
//   K:base36upper,       z:base58btc,         Z:base58flickr,     
//   m:base64,            M:base64pad,         u:base64url,        
//   U:base64urlpad,     
// ]

可用的编码器 :

import {
  Base2, Base8, Base16, Base32, Base32Hex, Base32Z, Base64, Base64URL, // RFC4648
  Base10, Base36, Base58BTC, Base58Flickr, // Prefix0
  Bech32,
} from '@adraffy/cid';

Base2.encode([128+1]);    // "10000001"
Base2.decode('10000001'); // 129

Base58BTC.encode([1, 2, 255]); // "LiA"
Base58BTC.decode('LiA');       // [1, 2, 255]

let bech = Bech32.decode('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');
bech.hrp;  // string, human-readable part, eg. "bc"
bech.type; // number: 1, Bech32.M, etc. (note: this is the checksum)
bech.v32;  // array of base32 numbers

任意精确度 乌瓦林特数字 :

import {uvarint} from '@adraffy/cid'; // also: dist/uvarint.min.js

let v = []; // output buffer (Array or Uint8Array)
let p = 0;  // write position
p = uvarint.write(v, 69, p);       // Number
p = uvarint.write(v, '0x420', p);  // HexString
p = uvarint.write(v, 1337n, p);    // BigInt
let u;
[u, p] = uvarint.readHex(v, 0);    // "0x45" => 69
[u, p] = uvarint.readBigInt(v, p); //  1056n => 0x420
[u, p] = uvarint.read(v, p);       //  1337
let [u0, u1, u2] = uvarint.read(v, 0, 3); // at position 0, read 3x
// [69, 1056, 1337]

构建

  • git clone 那么,这个雷波 npm install
  • npm run test
  • npm run build ——创建 盘点/盘点

版本与发布记录

@adraffy/cid 共发布 6 个版本,首次发布于 2024/01/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.6latest2024/01/292 年前
0.0.52024/01/242 年前
0.0.42024/01/192 年前
0.0.32024/01/182 年前
0.0.22024/01/122 年前
0.0.12024/01/102 年前

关于 @adraffy/cid 的常见问题

@adraffy/cid 是什么?

多格式编辑器

如何安装 @adraffy/cid?

在项目目录运行 npm install @adraffy/cid,或使用 pnpm add / yarn add / bun add。

@adraffy/cid 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adraffy/cid 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@adraffy/cid 可以商用吗?

@adraffy/cid 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adraffy/cid 的下载量有多少?

根据 npm 官方下载统计,@adraffy/cid 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,189 次,日均约 106 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adraffy/cid 还在维护吗?

最新版本 0.0.6 发布于 2024/01/29(2 年前);至今共发布 6 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/01/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。