@dunx/infra

中文文档
3.10.6发布于 2026/10/30MITTypeScriptES Module构建来源已验证近 30 天下载 3660

数据库, Redis, 队列, AMQP, 调度, 存储, 图像和 Dunx 的日志基础设施 。 细雨过包子:sqlite和Bun.SQL,牛克过Bun. Redisclient,兔子MQ的客户端,外加Bun.file,Bun.Glob,Bun.S3Client, Bun. 图像和 @ arkv/ logger

中文使用文档
文档目录6 节
  1. 安装
  2. 子路径
  3. 使用量
  4. 两项公约
  5. 反对
  6. 许可证

翻译:

基础设施 双关:数据库, Redis/Valkey,缓存,队列,消息经纪人,文件存储,图像,调度, 电子邮件、页码和记录 11个区域 一个包裹.

Bun船的原生地 原生地是运行的地方: Bun.SQL, (中文(简体) ), bun:sqlite, (中文(简体) ), Bun.RedisClient, (中文(简体) ), Bun.file, (中文(简体) ), Bun.Glob, (中文(简体) ), Bun.S3Client, (中文(简体) ), Bun.Image, (中文(简体) ), Bun.cron。无 pg,没有 better-sqlite3,没有 ioredis,没有 @aws-sdk,没有 glob,没有 sharp。 。 。 .

五个领域整合了一个成熟的图书馆,而不是手卷: /db 结束 drizzle-orm, (中文(简体) ), /queue 结束 bullmq, (中文(简体) ), /amqp 结束 rabbitmq-client, (中文(简体) ), /logger 结束 @arkv/logger,以及 /email 以任何给养者的名称命名.

前三个是 可选同伴依赖关系因此,应用程序只使用 /files 没有安装它们. @arkv/logger 属于一党和完全依赖。 前两个驾驶一个 Bun API 在下面; rabbitmq-client 说电线协议 Bun船没有客户端,完毕 node:net, (中文(简体) ), bun是当地执行的.

安装

bun add @dunx/infra @dunx/core
# plus what the areas you use need
bun add drizzle-orm     # /db
bun add bullmq          # /queue
bun add rabbitmq-client # /amqp
bun add resend          # /email/resend
bun add nodemailer      # /email/smtp
bun add react @react-email/render # /email/react

子路径

向导为每行有条可循;本表为索引.

子路径这是什么指南
@dunx/infra/db细雨 结束 bun:sqlite 财务报告和审定财务报表 Bun.SQL、交易、种子、命名和租户数据源、查询时间数据库
@dunx/infra/redisBun.RedisClient,命名连接, pub/sub数据库
@dunx/infra/cacheCache 在记忆中, Redis 或双层 CacheStore, (中文(简体) ), CacheMetrics缓存
@dunx/infra/queue公牛数量 结束 Bun.RedisClient: 处理者、出版者、工人队列
@dunx/infra/amqp兔子客户端数字 : @AmqpHandler,出版社,耗尽的消费者信件经纪人
@dunx/infra/scheduleBun.cron 和计时器 : @Cron, (中文(简体) ), @Interval, (中文(简体) ), @OnceOnBoot时间安排
@dunx/infra/files一个 Storage 合同终止 Bun.file 财务报告和审定财务报表 Bun.S3Client文件与图像
@dunx/infra/email一个 EmailTransport 合同、干跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑 bunx dunx-email preview电子邮件
@dunx/infra/email/resend重新发送电子邮件
@dunx/infra/email/smtp节点邮件电子邮件
@dunx/infra/email/react反应电子邮件,作为一个 TemplateRenderer 其它问题电子邮件
@dunx/infra/images一条无法改变的管道 Bun.Image文件与图像
@dunx/infra/logger@arkv/logger 与核心相连 Logger 合同日志
@dunx/infra/pagination密钥集页码:光标编码器、选项解析器、细雨查询数据库
@dunx/infra/pagination/cursor同样的解码器和解析器没有细雨查询,所以没有安装细雨就能解析数据库

使用量

import { Module } from '@dunx/core';
import { DbModule, SqliteOptions } from '@dunx/infra/db';
import { RedisModule } from '@dunx/infra/redis';
import * as schema from './schema.js';

@Module({
  imports: [
    DbModule.forRoot(new SqliteOptions({ schema, filename: './app.db' })),
    // No url: Bun resolves $VALKEY_URL, then $REDIS_URL, then localhost.
    RedisModule.forRoot({ maxRetries: 0 }),
  ],
})
export class InfraModule {}

与 OtelModule 从 @dunx/core/otel 进口, /db, (中文(简体) ), /redis, (中文(简体) ), /queue 财务报告和审定财务报表 /amqp 打开 OpenTelection 跨度; 见 追踪。 。 。 .

每个地区都有 forRootAsync,这是 forRoot 前面有个工厂 说吧 它存在于一个零参数函数不能做的一件事: 注射,所以 url 或文件名可以关闭 ConfigService。 。 。 .

两项公约

任何可以由构造参数注入的都是运行时类,从不 接口,因为一个接口会擦去并留下什么 @dunx/transform 以记录.

当 dunx 定义合同时, 符是抽象类(Storage, (中文(简体) ), DbConnection, (中文(简体) ), ImagesOptions) (中文(简体) ). 否则,这是图书馆自己的课 (单位:千美元)BunSQLiteDatabase, (中文(简体) ), ContextStore) (中文(简体) ). 三个出口是: token()相反, 因为没有课适合他们: redisConnection(name), (中文(简体) ), redisMetrics(name) 财务报告和审定财务报表 LoggerSettings。 。 。 .

如果一个区域完全在根管里,那么全部都是. /db, (中文(简体) ), /queue, (中文(简体) ), /amqp 财务报告和审定财务报表 /email 四个桶不再出口: 通过静态导入可选对等端, 因此导出它们会使 drizzle-orm, (中文(简体) ), ioredis, (中文(简体) ), rabbitmq-client 或者说 resend 硬性要求 import '@dunx/infra'联系他们的子路.

内部 /email 拆分会更进一步 每一个供应商进口都位于 子路径,需要它,没有其它地方: resend 内 /email/resend, (中文(简体) ), nodemailer 内 /email/smtp, (中文(简体) ), react 财务报告和审定财务报表 @react-email/render 内 /email/react。 。 。 .

这么说吧 @dunx/infra/email 装入没有安装的4个,您可以使用它 日志和内存传输。 这个 dunx-email bin 装入渲染器 import() 只有在它需要的时候.

@dunx/infra测试哪个文件可以导入每个销售商, 测试底部 子路径不导入其中任何一种,而且所有四种都是可选择的.

时机不对 除非有要求. { metrics: true } 是最后一个参数 DbModule, (中文(简体) ), CacheModule, (中文(简体) ), RedisModule 财务报告和审定财务报表 QueueModule,绑定 a QueryMetrics, (中文(简体) ), CacheMetrics, (中文(简体) ), RedisMetrics 或者说 QueueMetrics。 。 。 .

每一措施:

子路径时间
/db每问. Dunx将它创造的驱动器包起来 因为细雨 logger 选项不报告持续时间
/cache在配置上击出并丢失 CacheStore,包括一个直接注入。 一个连在一起的 wrap 数为一
/redis每个命令
/queuepublish(),处理器在此过程中运行。 A 类 background 处理器运行于一个加固的进程中, 没有定时

见 计量。 。 。 .

反对

Bun 1.4.2,细细细雨0.45.2,公牛mq 6.0.5,兔子mq-客户 5.0.8,再版 6.2.8, 节点邮件器 10.0.9 和 @ react-email/render 2.1.0. 邦顿的 文档不完整 所以行为是衡量而不是解读的 这个 证据在 文献/档案 财务报告和审定财务报表 文档/bun-apis.md。 。 。 .

许可证

麻省理工学院

版本与发布记录

@dunx/infra 共发布 83 个版本,首次发布于 2026/08/02;过去 12 个月发布了 83 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.10.6latest2026/10/3014 天前
3.10.52026/10/2222 天前
3.10.42026/10/2024 天前
3.10.32026/10/1430 天前
3.10.22026/10/081 个月前
3.10.12026/09/261 个月前

关于 @dunx/infra 的常见问题

@dunx/infra 是什么?

数据库, Redis, 队列, AMQP, 调度, 存储, 图像和 Dunx 的日志基础设施 。 细雨过包子:sqlite和Bun.SQL,牛克过Bun. Redisclient,兔子MQ的客户端,外加Bun.file,Bun.Glob,Bun.S3Client, Bun. 图像和 @ arkv/ logger

如何安装 @dunx/infra?

在项目目录运行 npm install @dunx/infra,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@dunx/core(^3.10.6)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 dunx-email,可以用 npx dunx-email 直接运行。

@dunx/infra 支持 TypeScript 吗?

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

@dunx/infra 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dunx/infra 可以商用吗?

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

@dunx/infra 的下载量有多少?

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

@dunx/infra 还在维护吗?

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