# @adraffy/cid 中文文档

规范地址：https://npmcn.com/package/%40adraffy/cid/

版本：0\.0\.6
npm 元数据更新时间：2024-01-29T07:00:55.504Z
中文译文更新时间：2026-11-06T12:50:04.767Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adraffy/cid
原文对照：https://npmcn.com/package/%40adraffy/cid/?lang=original
项目主页：https://github.com/adraffy/cid.js#readme
源码仓库：https://github.com/adraffy/cid.js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：47.7 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-01-10T05:39:09.289Z
- 最新版本发布：2024-01-29T07:00:55.334Z
- 近 30 天下载量：3189（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 0 个）

## 中文简介

多格式编辑器

## 安装

```sh
npm install @adraffy/cid
```

也可以使用：`pnpm add @adraffy/cid`、`yarn add @adraffy/cid`、`bun add @adraffy/cid`

## README

# cid.js (中文(简体) )

0 - 依赖性 [多格式编辑器](https://github.com/multiformats/cid/blob/master/README.md) 与相关的基地和编码器.

-   [`7KB`](https://npmcn.com/package/%40adraffy/cid/dist/index.min.js) **默认** ——完整的图书馆
-   [`1KB`](https://npmcn.com/package/%40adraffy/cid/dist/uvarint.min.js) - 刚刚 [乌瓦林特.js](https://npmcn.com/package/%40adraffy/cid/src/uvarint.js)

[**演示**](https://adraffy.github.io/cid.js/test/demo.html) ⭐

```js
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" 
```

可用 [基础](https://npmcn.com/package/%40adraffy/cid/src/bases.js#L69)数字 :

```js
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,     
// ]
```

可用的编码器 :

```js
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
```

任意精确度 [乌瓦林特](https://npmcn.com/package/%40adraffy/cid/src/uvarint.js)数字 :

```js
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` ——创建 [盘点/盘点](https://npmcn.com/package/%40adraffy/cid/dist/)

## 常见问题

### @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 和提交记录判断。

