# @daiso-tech/core 中文文档

规范地址：https://npmcn.com/package/%40daiso-tech/core/

版本：0\.57\.0
npm 元数据更新时间：2026-08-03T13:36:44.758Z
中文译文更新时间：2026-11-11T09:06:52.534Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40daiso-tech/core
原文对照：https://npmcn.com/package/%40daiso-tech/core/?lang=original
项目主页：http://daiso-tech.dev/
源码仓库：https://github.com/daiso-tech/daiso-core

弃用说明：@daiso-tech/core will be renamed to eridu-tech

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

- 包体积（解压后）：4.4 MB，2052 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：7 个
- peer 依赖：kysely ^0\.28\.0，ioredis ^5\.0\.0，mongodb ^6\.0\.0
- 首次发布：2024-08-21T22:19:39.601Z
- 最新版本发布：2026-08-02T21:13:49.499Z
- 近 30 天下载量：2867（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：90（近 12 个月 26 个）

## 中文简介

库为现代网络应用提供灵活,框架不可知的解决方案,以适应性组件为基础,与"下J"等通俗框架无缝地融合.

## 安装

```sh
npm install @daiso-tech/core
```

也可以使用：`pnpm add @daiso-tech/core`、`yarn add @daiso-tech/core`、`bun add @daiso-tech/core`

## README

![npm version](https://img.shields.io/npm/v/@daiso-tech/core) ![NPM Downloads](https://img.shields.io/npm/dy/@daiso-tech/core) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=TypeScript&logoColor=white) ![ES Modules](https://img.shields.io/badge/module%20type-ESM-blue) ![License](https://img.shields.io/npm/l/@daiso-tech/core)

# @ daiso- tech/ core

**写商业逻辑一次。 随时更换基础设施.**

TypeScript的适配器-首个后端工具包——17个正式维护组件,拥有4,640+集成和行为测试.

[**探索文档**](https://www.daiso-tech.dev/docs/installation) • 妇女 [**API 文件**](https://daiso-tech.github.io/daiso-core/modules.html) • 妇女 [**GitHub 图像**](https://github.com/daiso-tech/daiso-core) • 妇女 [**国家预防机制**](https://www.npmjs.com/package/@daiso-tech/core)

* * *

## QQ 快速安装

```bash
npm install @daiso-tech/core
```

* * *

## 为什么?

-   **不重写业务逻辑而切换基础设施**:适配器模式使您的代码与供应商脱钩. 今天使用 Redis, 明天使用 Postgres —— 不需要重构 .
-   **测试所有没有Docker的东西**:每个有内置适配器和内置维特辅助器的组件船. 写出快速,孤立的测试,没有外部服务.
-   **带上自己的框架**: 不需要DI容器。 直接插入快递,NestJS,AdonisJS,Next.js,Nuxt,或TanStack Start——它只是工作.
-   **从第一天起型号安全**: Full TypeScript支持有精确的通称,丰富的intellisense,以及自动进口的友好API——在编译时间被捕获出错误,而不是运行时间.
-   **构建于**: 头等舱一体化 [标准Schema](https://standardschema.dev/)启用 [佐德语Name](https://zod.dev/), Valibot, 或 ArkType 执行编译时间和运行时间数据安全 .
-   **无害环境管理本地化。 无普通JS行李.**:由现代JavaScript原始人所建. 与Node.js, Bun, Deno以及现代捆绑生态系统完全相容.

* * *

## 统一结构

一个单一的序列化引擎,一个单一的执行上下文,以及可堆放的中间软件——每个组件都共享相同的架构.

### (笑声) 塞尔德——按顺序排列任何东西。 复还一切相.

塞尔德组件提供统一的序列化和去串行化引擎,并配有完全的型式安全计划. 它支持任意类型的自定义序列器,并包括一个内置的SuperJSON适配器,处理出框中的日期,映射,设定和 BigInt. Serde在内部跨越了LockFactory,Cache,EventBus等组件.

-   [x] 整个Daiso使用的共享序列化引擎
-   [x] Powers LockFactory,缓存,事件Bus等
-   [x] 内建的 SuperJSON 适配器 — 日期、 地图、 设置和 BigInt 从框出
-   [x] 自行类型的自定义序列器

### QQ 执行 Context —— 跨亚星边界的推进上下文.

执行Context组件将任何类型的同步上下文传播到执行边界。 大多数组件都用它来成为隐含的执行-文本-意识,允许它们自动分享相同的交易和其他上下文状态.

-   [x] 类型安全上下文符号
-   [x] Async 上下文传播
-   [x] 没有手动通过参数

### 🔗-中相-AOP型中相相. 作曲行为. 保持逻辑清洁.

Middleware组件提供可堆肥的AOP型中件管,并配有前/后接接钩,出错处理和上下文传播等. 它支持用 `use()`,用 `enhance()`,并将可重复使用的中间软件包装成插件 `withPlugin()`. 所建中件包括复试,超时,倒置等.

-   [x] 在任何函数上勾起前/后勾起的 AOP
-   [x] 内置的重试、超时、倒置的中间器件等
-   [x] 函数以 `use()`,类增强 `enhance()`,插件系统 `withPlugin()`
-   [x] 用于大多数组件和更多组件的内置前缀插件

### Httprouter——定义路线。 保持框架-不可知论.

HttpRouter组件提供了一个框架不可知的HTTP路由层,带有类型安全终点定义,标准-schema验证,以及中间软件支持. 它与任何冬季TC兼容运行时间或适配器相配合,并可以被跨快通,快通,Hono,Next.js,Nuxt,SvelteKit等使用.

-   [x] 具有标准-schema验证的类型安全路由定义
-   [x] 用 Next.js App 路由器、 Nuxt 、 SvelteKit 和任何冬季 tc 兼容运行时间或适配器工作
-   [x] 建在 Hono.js 路由器适配器上
-   [x] 中间软件链和路由组

### QQ Envaccessor — 类型安全环境变量. 任何来源.

Envaccessor组件提供了方便的类型安全访问环境变量. 它支持多个同步和Async源(process.env,秘密管理器),schema验证,以及方便的访问模式.

-   [x] 装满自动读取的字型安全
-   [x] 多个来源——process.env和Aync秘密提供者
-   [x] 可选 Zod 计划验证
-   [x] `get()` 返回缺失字段时无效; `getOr()` 回到默认状态

### QQ 配置——安全阅读配置. 保持类型安全.

CfigAccessor组件提供标准化的类型安全访问域配置变量. 它支持可选的 schema 校验——对每租户设置等动态配置有用.

-   [x] 装满自动读取的字型安全
-   [x] 深至2级的嵌入式物体和阵列
-   [x] 可选 Zod 计划验证
-   [x] `get()` 返回缺失路径时无效; `getOr()` 回到默认状态

## 📊一一相

| 页:1 | 100% | 4,640+ (单位:千美元) | 0 个 |
| --- | --- | --- | --- |
| 官方维护的部件 | 类型脚本 | 整合和行为测试 | 测试需要多克 |

* * *

## \-这是给谁的?

@daiso-tech/core是为后端和全装的TypeScript开发者所建,他们重视灵活性和可测试性.

### 完美为

-   **后端应用程序 :** 构建REST API,背景工人,CLI,以及使用可再用,可堆放组件的后端其他服务.
-   **框架不可知性项目:** 与Express,Fastify,Hono,Next.js,Nuxt,SvelteKit,Cloudflare Workers,Bun,Deno,Node.js合作,以及任何运行时间支持标准冬季tc取取api.
-   **适应者第一架构:** 在 Redis, PostgreSQL, SQLite, MongoDB, S3, 本地存储, 内存执行之间切换, 或者在不改变业务逻辑的情况下, 在自己的适配器之间切换.
-   **分布式系统:** 使用分布式锁,semaphores,共享锁,断路器,限速器,缓存,以及跨多流程和机器工作的事件总线.
-   **模块单体 :** 通过单一的可部署应用程序共享相同的抽象,中间软件,以及适配器. 一些组件或工人可以被用在微服务上,但库主要是为模块化的单体建筑而设计的.
-   **图书馆和框架作者:** 在稳定的接口上建立可重复使用的后端库,而不是与特定的供应商或基础设施相接.
-   **测试和地方发展:** 使用内膜和NoOp适配器进行快速的,决定性的测试,然后交换到只配置的生产基础设施.
-   **便携式后端代码 :** 写基础设施独立代码,可以在云提供者,数据库,存储提供者之间移动,运行时间变化最小.
-   **通过单个组成部分:** 使用特定组件而不被迫采用整个库或一个DI容器——每个组件独立工作.
-   **逐步通过:** 从一个单一的组件开始,随着项目的发展逐渐采用更多的组件.

### \- 不适合这样

-   **微服务:** 库为模块化的单体所设计,组件共享相同的过程和运行时间. 虽然一些组件(如分布式锁,断路器,和事件巴士等)在跨过程工作,但更广泛的适配器模型和共享抽象并没有被优化用于微服务架构.
-   **只有前端应用程序 :** @daiso-tech/core是为后端和服务器侧开发而设计的,而不是浏览器应用程序.
-   **项目与一个供应商紧密结合:** 如果您的应用有意依赖于提供者的特有特征而不是抽象,适配器模型可能不会提供多少好处.
-   **极小的脚本 :** 如果您只需要单一的 Redis 呼叫,文件上传,或缓存操作,抽象层可能是不必要的间接费用.
-   **需要特定提供者能力的应用程序:** 特定数据库独有的特性,缓存,或云服务,可能需要直接使用该提供者的原生SDK,而不需要通用抽象.
-   **纯 JavaScript 工程优先排序为简单 :** 虽然从JavaScript中可以使用,但库是围绕TypeScript的类型系统,通用软件,以及推论设计,以获得最好的开发者经验.

* * *

## 正式维护组件

越来越多的官方维护的部件被收藏. 每艘有多个内置适配器的组件船——互换基础设施而无需改变一行业务逻辑.

### 基金会

-   [**中间软件和 AOP**](https://www.daiso-tech.dev/docs/components/middleware) —— 说 `Near-stable` ——可编译的中件管件有钩前/钩后,出错处理——每个组件插件系统的基础.
-   [**收藏**](https://www.daiso-tech.dev/docs/components/collection) —— 说 `Near-stable` ——有强大的查询,变相,并有活页式原始物的"类型安全"收集工具.
-   [**赛德**](https://www.daiso-tech.dev/docs/components/serde) —— 说 `Experimental` ——用内置的"超级JSON"适配器(Date, Map, Set, BigInt)和自定义的序列器来序列化和去序列化数据——是整个生态系统所有数据交换的骨干.
-   [**代码c**](https://www.daiso-tech.dev/docs/components/codec) —— 说 `Experimental` ——有统一,类型安全接口的编码和解码数据——包括一个内置的 Base64 代码并允许您为任何协议构建自定义代码.
-   [**执行背景**](https://www.daiso-tech.dev/docs/components/execution_context) —— 说 `Near-stable` – 类型安全,可相容的上下文传播请求ID,用户信息,以及跨越ASync边界追踪元数据——没有线程本地黑客.
-   [**输入配置访问**](https://www.daiso-tech.dev/docs/components/config_accessor) —— 说 `Near-stable` ——标准化类型安全访问域配置变量——可选的Schema验证和完整的TypeScript推断.
-   [**输入信封访问**](https://www.daiso-tech.dev/docs/components/env_accessor) —— 说 `Near-stable` – 具有解析,默认和验证功能的多同步/同步源的类型安全环境可变访问——从未读取 `process.env` 又生还了.

### 存储

-   [**缓存**](https://www.daiso-tech.dev/docs/components/cache/cache_usage) —— 说 `Near-stable` ——用可插件商店(内存,Redis等),TTL政策,并盖章保护.
-   [**文件存储**](https://www.daiso-tech.dev/docs/components/file_storage/file_storage_usage) —— 说 `Near-stable` ——抽象文件存储为本地磁盘的适配器,S3相容,以及其他后端——上传,流出,并服务于一个API.

### 复原力

-   [**断路器**](https://www.daiso-tech.dev/docs/components/circuit_breaker/circuit_breaker_usage) —— 说 `Near-stable` ——用可配置的阈值,半开放回收,自定义后退策略来防止连锁故障.
-   [**限制费率**](https://www.daiso-tech.dev/docs/components/rate-limiter/rate_limiter_usage) —— 说 `Near-stable` —— Throttle 请求率带有可配置限制,可滑动窗口,可插接后端——保护您的服务不超载.
-   [**复原力**](https://www.daiso-tech.dev/docs/components/resilience) —— 说 `Near-stable` ——暂停,倒计时,倒计时,重试,有可配置政策和后退.

### 货币

-   [**锁定**](https://www.daiso-tech.dev/docs/components/lock/lock_usage) —— 说 `Near-stable` ——分出有租赁管理,屏蔽和无屏蔽收购,自动放行等功能的锁原始.
-   [**共享锁定**](https://www.daiso-tech.dev/docs/components/shared_lock/shared_lock_usage) —— 说 `Near-stable` ——阅读-写出分布式锁,以配合共享和专用模式同时访问.
-   [**司马发**](https://www.daiso-tech.dev/docs/components/semaphore/semaphore_usage) —— 说 `Near-stable` ——以动态许可分配的方式限制共享资源同时使用费率.

### 通讯

-   [**活动总线**](https://www.daiso-tech.dev/docs/components/event_bus/event_bus_usage) —— 说 `Near-stable` ——Pub/sub事件总线,用于发送和收听带有可插接运输后端的事件——独立于基础技术.

### 网页

-   [**HTTP 路由器**](https://www.daiso-tech.dev/docs/components/http_router/http_router_usage) —— 说 `Near-stable` ——在Hono路由器引擎上所建的框架-不可知HTTP路由器——执行Winter TC取取取标准并有中间软件链和打入路径参数.

[**查看全部组件 docs**](https://www.daiso-tech.dev/docs/components/overview)

* * *

## \* 即将到来的组成部分

目前在设计或开发中的组件——任何版本中都没有.

-   **DI 集装箱** ——用于无紧接接接线的接线应用组件的轻量级,型号安全的依赖性注射容器.
-   **交易背景** ——按照承诺后模式协调各组成部分的数据库交易. 可靠消息的基础——给Outbox、收件箱、调度器和通知机以权力.
-   **CLI 命令** ——用于定义和执行CLI指令并配有运输适配架构的统一API. 通过子进程在本地运行命令,远程在SSH或HTTP上运行,在多克容器内运行,或者通过自定义的运输——都来自相同的命令定义.
-   **结构货币** ——在结构化范围中运行同儿童任务与父母一生挂钩的同源任务——自动取消,错误传播,资源清理.
-   **承诺队列** ——可塑承诺排队控制同时履行承诺的数量并避免资源耗尽.
-   **日志可观察性( O)** 支持可观察性——伐木、计量和追踪——采用可插接适配系统。 预建适配器 [打开几何](https://opentelemetry.io/) 和本地适配器,可以将日志、痕迹和度量衡保存到磁盘.
-   **回顾** ——通过预建的 CLI 命令检查任何组件的实际运行时间状态——查看已注册的处理器,活动任务,队列深度,锁定持有者,以及更多不挖掘日志或度量符.
-   **任务调度器** ——全程灵活安排工作——即时调度,延后执行,再起重复工作. 使用交易背景进行可靠的执行.

[**查看完整的路线图**](https://www.daiso-tech.dev/docs/roadmap)

* * *

## @daiso-tech/core如何比较

### NestJS——内置DI的完整框架与适合您需要的库.

| 代替雀巢JS | 与 @ daiso- tech/ core |
| --- | --- |
| 有自己的设计、装饰和模块的意见框架. | 一个库,而不是一个框架——DI可选,没有装饰,平庸的阶级. |
| 公约批发:DI Central,大多数原始人只在雀巢JS内部工作. | 任何框架中相同的缓存/锁/事件总线——没有锁定. |
| 只有节点JS运行时间. | Winter TC在任何地方运行——节点,邦克,德诺,边缘. |
| 无法嵌入到一个完整的存储框架或主机中作为一个服务器. | 通过适配器模式可边接可适应. |
| 不适应边缘运行时间 . | 嵌入到任何全存储框架中——主机为一服务器. |
| 只有请求范围——没有自定义的瞄准镜. | 范围-不可知——要求,习惯,或没有范围. |
| 包接已存在的 lib —— BullMQ,缓存管理器,类验证器,类转换器等. | 拥有可插接适配器的原始相——用于测试的内膜适配器. |
| 向微服务 和单层. | 为模块化单体所建——互换基础设施而无需重写逻辑. |
| 没有执行上下文贯穿所有组件 . | 执行上下文流经所有组件 . |
| 没有共享序列化引擎跨组件. | 共享序列化引擎(Serde)跨组件. |
| 无内置交易上下文 . | 将会有一个交易的背景. |

### AdonisJS — A电池包含的全存储框架与可堆肥原始.

| 而不是阿多尼斯JS | 与 @ daiso- tech/ core |
| --- | --- |
| Bundles 路由,ORM (Lucid), 认证,会话, 验证. | 没有应用框架,ORM,或认证——只是适配器后面的基础设施. |
| 限定的文件夹结构和公约. | 结合任何应用层——你带来结构. |
| 只有节点JS运行时间. | Winter TC在任何地方运行——节点,邦克,德诺,边缘. |
| 无法嵌入到一个完整的存储框架或主机中作为一个服务器. | 嵌入到任何全存储框架中——主机为一服务器. |
| 不适应边缘运行时间 . | 通过适配器模式可边接可适应. |
| 没有执行上下文贯穿所有组件 . | 执行上下文流经所有组件 . |
| 没有共享序列化引擎跨组件. | 共享序列化引擎(Serde)跨组件. |
| 无内置交易上下文 . | 将会有一个交易的背景. |

### TRPC / ORPC – 端到端键入API对后方的服务器侧基础设施.

| 代替TRPC/ORPC | 与 @ daiso- tech/ core |
| --- | --- |
| 客户端和服务器之间的端到端类型安全. | 不属于RPC框架,也不属于tRPC或ORPC替代. |
| 定义程序一次——从客户端打来全推论,没有代码. | 可插接适配器背后的后端基础设施——缓冲,锁定,速率限制,排程,事件总线. |
| 在客户端和服务器的边界上 对安全型全层API来说非常棒. | 补充性——tRPC程序可以调用由@daiso-tech/core支持的服务. |
| 没有内置电池包括后端基础设施 | 选择 tRPC 用于打入的传输; 添加 @ daiso- tech/ core 用于以下可再使用的服务器侧 . |

### Next.js, Nuxt等——网络的Meta-frameworks vs 框架-不可知后端.

| 取而代之的是Next.js,Nuxt等. | 与 @ daiso- tech/ core |
| --- | --- |
| Excel在客户端渲染,SSR,路由,和丰富的前端生态系统. | 不是网络或前端框架——也不是Next.js或Nuxt的替换. |
| 运送自己的服务器侧API和路由处理器. | 补充它们——路由处理器和服务器动作可以使用缓存,锁,队列,以及调度器. |
| 通常是一个快速传送网络应用程序的最佳起点. | 相同的后端逻辑在元框架和独立的API服务或工人之间移动. |
| 后端逻辑锁入元框. | 添加 @ daiso- tech/ core 用于以下可移植、可测试服务器侧. |
| 没有内置电池包括后端基础设施 |  |

### 编成自有的堆栈——手取的库与相接相接相接,相接相接相接.

| 而不是编织自己的堆栈 | 与 @ daiso- tech/ core |
| --- | --- |
| 最大控制和最小的依赖性——准确选择您想要的库. | 一致地,综合地层——共享模式和通用适配器接口. |
| 更简单,更轻的小型,有重点的使用案例. | 比单一的生化库更重,但舰只的入室适配器在没有多克的情况下进行测试. |
| 当您需要一两个原始的或依赖提供者特有的特性时,更好. | 取舍:抽象地层——原始库为单一的Redis调用或小脚本取胜. |
| 没有共同的公约——你们自己给图书馆打电话. | 没有胶体代码——组件通过共享 serde 和执行上下文进行交互操作. |
| 被锁入你选择的东西中——增加更多意味着更多的胶体代码. | 逐步采用——从一个部分开始,随着项目的发展而增加更多的内容. |

* * *

## 觉得这个库有用吗? 给它一个""

如果你在@daiso-tech/core中看到潜力,在GitHub上主演的回波可以帮助他人发现并激励继续发展. 它需要一击,意义很大.

[GitHub 上的"星"("星")](https://github.com/daiso-tech/daiso-core)

* * *

## 准备好造出伟大的东西了吗?

起来,在几分钟内运行 一个安装.

```bash
npm install @daiso-tech/core
```

[**开始吧**](https://www.daiso-tech.dev/docs/installation) • 妇女 [**在 GitHub 上查看**](https://github.com/daiso-tech/daiso-core)

## 常见问题

### @daiso-tech/core 是什么？

库为现代网络应用提供灵活,框架不可知的解决方案,以适应性组件为基础,与"下J"等通俗框架无缝地融合\.注意：该包已被作者标记为弃用——@daiso-tech/core will be renamed to eridu-tech

### 如何安装 @daiso-tech/core？

在项目目录运行 npm install @daiso-tech/core，或使用 pnpm add / yarn add / bun add。

### @daiso-tech/core 支持 TypeScript 吗？

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

### @daiso-tech/core 支持 ESM 还是 CommonJS？

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

### @daiso-tech/core 可以商用吗？

@daiso-tech/core 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @daiso-tech/core 的下载量有多少？

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

### @daiso-tech/core 还在维护吗？

最新版本 0\.57\.0 发布于 2026/08/03（3 个月前）；至今共发布 90 个版本，其中过去 12 个月发布了 26 个；首次发布于 2024/08/22。作者已将其标记为弃用，新项目建议寻找替代方案。

