# @dreamlake/dreamdb 中文文档

规范地址：https://npmcn.com/package/%40dreamlake/dreamdb/

版本：0\.5\.10
npm 元数据更新时间：2026-11-13T05:26:46.316Z
中文译文更新时间：2026-11-13T05:26:54.760Z
软件包许可：MIT OR Apache-2\.0

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

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

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

- 包体积（解压后）：20.8 MB，28 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-05-25T02:32:03.809Z
- 最新版本发布：2026-11-13T05:26:46.142Z
- 近 30 天下载量：4038（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 19 个）

## 中文简介

DreamDB SDK — 异形( 浏览器+节点) 读取并写入, 从 Rust 核心编译

## 安装

```sh
npm install @dreamlake/dreamdb
```

也可以使用：`pnpm add @dreamlake/dreamdb`、`yarn add @dreamlake/dreamdb`、`bun add @dreamlake/dreamdb`

## README

# @dreamlake/梦想b

这栋0.5.10建筑包括只读 `SqlSession.open(refName, backend)`,同步 `query` 和同步 `explain`见 [SQL 适配器指南](https://github.com/dreamlake-ai/dreamdb-core/blob/main/dreamdb-sql/ADAPTERS.md)。 。 。 . 浏览器SQL文物首开后加载;节点直接包括. 这个 添加不是以前发布的npm版本支持SQL的说法.

软件包范围:npm0.5.10更新共享核心. 一个JavaScript API 由于0.5.8是 `Space.readEmbeddingColumn`,首次发表于0.5.9: 精确读取 整个嵌入式列 拒绝而不是 返回部分列。 其余是共用核心写作和阅读成本 减少和修正。 从0.5.8到0.5.6到SQL,以及 每份出版物的SDK/构建诊断和延后收缩承诺固定 从0.5.5保留。 现有实体键、几何、结构阵列和 仍然保留了查询本地排序控制。 Rust操作员 API 不是自动 JS 出口. 见 [发布注释](https://github.com/dreamlake-ai/dreamdb-core/blob/main/docs/releases/python-0.0.17-npm-0.5.10.md), (中文(简体) ), [特性指南](https://dreamdb.dreamlake.ai/main-features) 财务报告和审定财务报表 [SDK 参考](https://dreamdb.dreamlake.ai/typescript-sdk-api)。 。 。 .

DreamDB SDK — 在浏览器和服务器上读取和写入, 编译到 Web Assembly from the same Rust core 使用CLI和Python SDK的同一种Rust Centre 的网络大会.

没有单独的 JavaScript 执行协议,这就是 点。 手写端口必须复制 BLAKE3, 犬形 CBOR, 空间键 编码、桶头和索引布局 _位数_永远 前一个 TypeScript 端口没有,而且它的测试都是绿色的,因为都是 自己的读者阅读自己的作家.

```bash
npm install @dreamlake/dreamdb
```

## 阅读

```js
import { Space } from '@dreamlake/dreamdb'

const space = await Space.fromUri('https://bucket.s3.amazonaws.com/refs/my-dataset', null)
const hits = await space.queryVector('visual', queryVec, 24, 8)
```

通过 `null` 用于后端直接 `fetch` 对抗URI的基地—— 足够做一个公共桶。 其它的,请提供后端.

## 写入

```js
import { Writer, PresignedBackend } from '@dreamlake/dreamdb'

const backend = new PresignedBackend({
  readBase: 'https://bucket.s3.amazonaws.com',
  mintPut: async (paths) => (await postJson('/api/dreamdb/sign', { paths })).urls,
  commitRef: async (path, opts, bytes) =>
    await postJson('/api/dreamdb/ref', {
      path,
      bytesBase64: base64(bytes),
      ifMatch: opts.ifMatch,
      ifNoneMatchStar: opts.ifNoneMatchStar,
    }),
})

const w = await Writer.open('https://bucket.s3.amazonaws.com/refs/my-dataset', backend)
await w.appendMany([
  {
    anchor: 1735689600000000000n,          // nanoseconds — pass a bigint
    visual: { kind: 'embedding', algorithm: 'dreamdb.lsh-cosine', vector: vec },
    caption: { kind: 'categorical', value: 'a red car' },
  },
])
const manifest = await w.commit()
```

证书从不输入浏览器: 您的服务器在短命的预签名 PUT URL,并进行裁判的比较和抽取本身.

### 锚是纳秒,你应该通过 `bigint`

A 类 `number` 只在下文中被接受 `Number.MAX_SAFE_INTEGER`上; 上层 sDK投出而不是绕来绕去 这不是私奔。 前一个 TypeScript SDK 写入了主锚 **微秒** 专门保留在 2^53,以及它制作的每张记录在任何符合要求的读者中都读作1970年.

## 服务器侧作者

`Authoring` 添加数据集创建,分层,合并,收缩和历史. 没错 **只有节点** ——浏览器构建导出一个以一个 解释.

```js
import { Authoring } from '@dreamlake/dreamdb'   // resolves to the Node build

const a = await Authoring.create(
  'my-dataset',
  [
    { name: 'visual', kind: 'embedding', dim: 768, algorithm: 'dreamdb.lsh-cosine' },
    { name: 'caption', kind: 'scalar', valueType: 'categorical', required: false },
  ],
  'https://bucket.s3.amazonaws.com',
  backend,
)
await a.writer().appendMany(samples)
await a.compact(null, 1, 0)
```

分出是一个有机制的大小边界. `create` 编辑 嵌入层构建器 `SpatialDispatcher`,这是一个enum——所以 一个可达到的建筑制造 _每个_ 索引家族的构建代码可达 (IVF, IMI, LSH, Vamana, AdaIVF, 外加密码本训练). 测量: 484 KB gzipped for the 浏览器的构建与包含作者的607 KB相对.

嵌入字段声明 `dreamdb.ivf-cosine` 或者说 `dreamdb.imi-cosine` 无法 完全在这里创建:这些指数家庭需要培训数据而不需要 在创建时存在。 用默认创建 `dreamdb.lsh-cosine` 并附上 被训练的索引为一层,或者用CLI来构建.

## 入境点

| 导入 | 决定 | 页:1 |
| --- | --- | --- |
| `@dreamlake/dreamdb` 在捆绑器中 | `--target bundler` | 需求 `vite-plugin-wasm` 下维特 |
| `@dreamlake/dreamdb` 在节点 | `--target nodejs` | (b) 无害环境管理和共同司法支助系统的工作 `Authoring` |
| `@dreamlake/dreamdb/web` | `--target web` | 不需要捆绑插件; `await ready()` 第一个 |

```html
<script type="module">
  import ready, { Space } from 'https://esm.sh/@dreamlake/dreamdb/web'
  await ready()                 // fetches and instantiates the wasm
</script>
```

## 执行后端

仅 `get` 需要;a `get`\- 只有后端是只读的 v1 形状和 仍然为阅读工作。 执行 `getStream` 以保留全部对象 当 DreamDB 必须扫描一个历史超大小的内行音轨时。 写入点 检查 `put` 正面拒绝,并留言 命名缺失的东西.

```ts
interface Backend {
  // `range` is half-open: start is included, end is excluded.
  get(path: string, range?: { start: number; end: number })
    : Promise<Uint8Array | { bytes: Uint8Array; etag?: string; totalLength?: number }>
  getStream?(path: string)
    : Promise<ReadableStream<Uint8Array> | {
        stream: ReadableStream<Uint8Array>
        etag?: string
        totalLength?: number
      }>
  head?(path: string): Promise<{ exists?: boolean; etag?: string; size?: number }>
  put?(path: string, bytes: Uint8Array,
       opts?: { ifMatch?: string; ifNoneMatchStar?: boolean })
    : Promise<{ status: 'created' | 'exists' | 'casFailed'; etag?: string }>
  delete?(path: string): Promise<void>
  list?(prefix: string): Promise<string[]>
}
```

`getStream` 块本身必须被绑定;返回一个对象大小 `Uint8Array` 功能上有效,但没有提供边框模型 简介。 SDK将每个块都散开,并显示没有解码结果,直到 完整回复符合其内容地址。 现有后端无 `getStream` 继续通过 `get` 并被故意归类为 未绑定的相容性描述文件 .

### 有两样东西会咬你

**你的桶的 CORS 规则必须包括 `ExposeHeaders: ["ETag"]`。 。 。 .**

通过比较和抽查获得参考进展。 SDK发送 `If-Match: <etag>` 当它 知道裁判的当前版本 `If-None-Match: *` 当它没有。 无 `ExposeHeaders`,浏览器可以读取响应正文而不是ETag头, 因此,SDK从不学习当前版本,倒回只创建 **第二届** 承诺任何裁判失败,而第一个裁判成功。 这不对称是 是什么使得它很难识别.

```json
{
  "AllowedOrigins": ["https://your.app"],
  "AllowedMethods": ["GET", "HEAD", "PUT"],
  "AllowedHeaders": ["*"],
  "ExposeHeaders": ["ETag", "Content-Range", "Content-Length"]
}
```

**你放在水桶前的任何HTTP层都必须遵守 `Range`。 。 。 .**

DreamDB读取精确矢量由字节偏移. 一个忽略的服务器 `Range` 财务报告和审定财务报表 返回 200,整个对象使每个范围读取的返回相抵 0,以及 搜索后返回可视结果, 余弦分数为 0. 0 0 - 与真正腐败的指数是分不开的`python3 -m http.server` 完全这样。 )

## 遵约

`dreamdb-conformance/vectors/` 拥有85个语言不可知JSON向量。 这个 软件包将48张地图运行到表面的纯函数——Canonic CBOR, BLAKE3 相位键、空间键、时间锚和桶、地址回路、, 模式解析、HTTP范围翻译——按名称和 而不是默默地忽略它们.

```bash
node test/conformance.mjs
```

该套件的首次运行在这个包的 HTTP 范围内发现了一个真正的错误 翻译,这大概就是重点.

## 许可证

麻省理工学院或阿帕奇2.0

# 出版者身份

作家/授权出版物记录 `@dreamlake/dreamdb` 实际数字 现有《宣言》中的版本 `writer` 标签。 使用 `writer.setApplication(name, revision)` (或 `authoring.writer().setApplication`(中文(简体) ) 关于以后出版物的可选应用元数据 `Space.history()` 检查它。 应用程序组件为 1–128 UTF-8 字节,没有控制 字符键。 现有有效载荷不归于其最新出版商; 来源是诊断,而不是执行证明或兼容性检查.

## 常见问题

### @dreamlake/dreamdb 是什么？

DreamDB SDK — 异形\( 浏览器\+节点\) 读取并写入, 从 Rust 核心编译

### 如何安装 @dreamlake/dreamdb？

在项目目录运行 npm install @dreamlake/dreamdb，或使用 pnpm add / yarn add / bun add。

### @dreamlake/dreamdb 支持 TypeScript 吗？

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

### @dreamlake/dreamdb 支持 ESM 还是 CommonJS？

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

### @dreamlake/dreamdb 可以商用吗？

@dreamlake/dreamdb 使用 MIT OR Apache-2\.0 许可。可在 MIT、Apache-2\.0 中任选其一遵守。选择 MIT 时，宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dreamlake/dreamdb 的下载量有多少？

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

### @dreamlake/dreamdb 还在维护吗？

最新版本 0\.5\.10 发布于 2026/11/13（今天）；至今共发布 19 个版本，其中过去 12 个月发布了 19 个；首次发布于 2026/05/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

