# @delali/narsil 中文文档

规范地址：https://npmcn.com/package/%40delali/narsil/

版本：0\.4\.0
npm 元数据更新时间：2026-11-13T18:49:26.547Z
中文译文更新时间：2026-11-13T18:52:25.532Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40delali/narsil
原文对照：https://npmcn.com/package/%40delali/narsil/?lang=original
项目主页：https://narsil.sondelali.com/
源码仓库：https://github.com/assetcorp/narsil

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

- 包体积（解压后）：13.5 MB，482 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：1 个
- peer 依赖：etcd3 1\.1\.2，react \>=19\.2\.0，@grpc/grpc-js 1\.14\.4，uWebSockets\.js \>=20\.0\.0，@aws-sdk/client-s3 ^3\.1159\.0，@google-cloud/storage ^8\.4\.0
- 首次发布：2026-03-16T13:32:00.258Z
- 最新版本发布：2026-11-13T18:49:26.103Z
- 近 30 天下载量：11554（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：133（近 12 个月 133 个）

## 中文简介

分布式搜索引擎全文，矢量，混合，和地理搜索。一个引擎，嵌入或在服务器上，具有跨语言。nrsl格式。

## 安装

```sh
npm install @delali/narsil
```

也可以使用：`pnpm add @delali/narsil`、`yarn add @delali/narsil`、`bun add @delali/narsil`

## README

![Narsil, an open source search engine](https://raw.githubusercontent.com/assetcorp/narsil/main/assets/banner.png)

# 纳西尔

[![CI](https://github.com/assetcorp/narsil/actions/workflows/ci.yml/badge.svg)](https://github.com/assetcorp/narsil/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/@delali/narsil)](https://www.npmjs.com/package/@delali/narsil) [![downloads](https://img.shields.io/npm/dw/@delali/narsil)](https://www.npmjs.com/package/@delali/narsil) [![types](https://img.shields.io/badge/types-TypeScript-blue)](https://www.npmjs.com/package/@delali/narsil) [![license](https://img.shields.io/npm/l/@delali/narsil)](https://github.com/assetcorp/narsil/blob/main/LICENSE)

用您的数据缩放的搜索引擎 .

Narsil是一个开源搜索引擎,在一个打入的索引上带有全文,矢量,杂交,和地心搜索. 您可以将 Narsil 嵌入到您的应用程序中, 即引擎在没有网络跳动的情况下进行搜索, 或者将它作为独立的搜索服务器, 配有 REST API, 写头日志, 以及批量 NDJSON 摄入 。 两种形式都包含同样的引擎,它以一种跨语言二进制格式存储索引(`.nrsl`),这样你就可以将一个索引从一个形式加载到另一个形式.

引擎分出跨工人的大指数,将分出的结果合并成一个排行榜. 此 TypeScript 软件包是该软件的参考执行 `.nrsl` 格式,以及 [一个粗箱和一个去模块](https://npmcn.com/package/%40delali/narsil/#readme-other-languages) 用这些语言为程序设置相同的引擎.

在BEIR SciFact上,纳西尔的BM25排名得分为0.681分nDCG@10分,在0.679的安塞里尼参考数的0.002分以内. 弹性搜索分数为0.679分,OpenSearch分数为0.679分,查询相同. 在"SciFact"上,Narsil回答4200个关键词的查询,在它的高峰时为一秒,而"OpenSearch"则以3,027. 在DBpedia实体1M上,每个引擎被扣在0.99 record上,Narsil在其峰值时回答670个向量查询一秒,而OpenSearch则以869来领先. 随着每台引擎在同一集的推荐出产设置,纳西尔在峰值时回答1,154个向量查询一秒,而OpenSearch则跟随1,111. Narsil在20个关键词中的16个中拥有最高的吞吐量,矢量,以及最新收录的运行中的混合比分:每台引擎在等同的设置下为8个,每台引擎推荐的生产设置下为8个. 在2026-09-28年的运行中 `20260928T002255Z`GCP c3标准8硬件在我们的中央1-a,我们东1-b,我们西1-a主持发动机. 你会发现每个数据集,每个引擎的设置, 和全方法在 [`BENCHMARKS.md`](https://github.com/assetcorp/narsil/blob/main/BENCHMARKS.md)。 。 。 .

在浏览器中尝试 [narsil.sondelali.com/demo 互联网档案馆的存檔,存档日期2013-12-02](https://narsil.sondelali.com/demo)。在 [narsil.sondelali.com/docs (中文(简体) )](https://narsil.sondelali.com/docs)。 。 。 .

> _纳西尔_ 是托尔基安的魔戒之王埃伦迪尔之剑 被打碎后被重塑 名称符合设计,因为引擎将您的数据分割成一个分区,并持续一个分区,然后将结果合并为每个查询的排名列表.

## 目录

-   [安装](https://npmcn.com/package/%40delali/narsil/#readme-install)
-   [用编码代理添加 Narsil](https://npmcn.com/package/%40delali/narsil/#readme-add-narsil-with-a-coding-agent)
-   [快开始](https://npmcn.com/package/%40delali/narsil/#readme-quick-start)
-   [特征](https://npmcn.com/package/%40delali/narsil/#readme-features)
-   [文档](https://npmcn.com/package/%40delali/narsil/#readme-documentation)
-   [实例](https://npmcn.com/package/%40delali/narsil/#readme-examples)
-   [分发](https://npmcn.com/package/%40delali/narsil/#readme-distribution)
-   [搜索质量](https://npmcn.com/package/%40delali/narsil/#readme-search-quality)
-   [运行时间支持](https://npmcn.com/package/%40delali/narsil/#readme-runtime-support)
-   [其他语文](https://npmcn.com/package/%40delali/narsil/#readme-other-languages)
-   [许可证](https://npmcn.com/package/%40delali/narsil/#readme-license)

## 安装

```bash
pnpm add @delali/narsil
```

Narsil在Node.js 22或更新,而Bun,Deno,以及浏览器中工作. 这个 [运行时间支持](https://npmcn.com/package/%40delali/narsil/#readme-runtime-support) 表格覆盖每次运行的时间.

在macOS,Linux,或Windows下的arm64或x64机上,包管理器还将Narsil的原生搜索核心安装在C中作为可选的依赖,因此引擎通过它来分析文本并解答关键词和向量搜索. 如果您省略了可选的依赖性, Narsil 通过 Web Assembly 和 TypeScript 来完成,结果与浏览器中总是一样.

## 用编码代理添加 Narsil

这个 [纳尔西尔技能](https://github.com/assetcorp/narsil/tree/main/skills/narsil) 告诉编码代理是嵌入Narsil还是服务它,哪个包可以同时安装,哪个服务器设置可以保证公共地址的安全. 用 CLI 技术将技能安装到机器上的编码代理 :

```bash
npx skills add assetcorp/narsil
```

该技能使代理读取了您项目安装的"纳尔西尔"版本,并将代理发送到该版本的类型和文档. 打开 [代理页面](https://narsil.sondelali.com/agents),您可以复制一个设置编码代理的提示,用于执行六个搜索任务中的一个.

## 快开始

```ts
import { createNarsil } from '@delali/narsil'

const narsil = await createNarsil()

await narsil.createIndex('products', {
  schema: {
    title: 'string',
    description: 'string',
    price: 'number',
    inStock: 'boolean',
    category: 'enum',
    tags: 'string[]',
  },
  language: 'english',
})

await narsil.insert('products', {
  title: 'Mechanical Keyboard',
  description: 'Cherry MX Brown switches with PBT keycaps and USB-C connection',
  price: 129.99,
  inStock: true,
  category: 'electronics',
  tags: ['peripherals', 'typing', 'mechanical'],
})

const results = await narsil.query('products', {
  term: 'mechanical keyboard',
  filters: {
    fields: {
      inStock: { eq: true },
      price: { lte: 200 },
    },
  },
  boost: { title: 2.0 },
  limit: 10,
})
```

每一次命中都持有文件,其ID,和其BM25分. 除了点击, `results.count` 持有匹配文件的总数, `results.elapsed` 以毫秒计的查询时间,以及 `results.coverage` 计算答案后面的分区,这样您就可以分辨一个集群何时从其部分数据中解答.

## 特征

**寻取.** 对于 [全文搜索](https://github.com/assetcorp/narsil/blob/main/docs/full-text-search.md),引擎使用 BM25 的分数,并且支持场增分,模糊相匹配通过有界限的Levenshtein 相距,通过上字前缀相匹配进行搜索,以及术语覆盖和分数阈值. 您可以将查询与 [过滤器、侧面、排序、分组、光标页和粘接结果](https://github.com/assetcorp/narsil/blob/main/docs/filters-facets-and-pagination.md)在您声明的字段上 [模式搜索](https://github.com/assetcorp/narsil/blob/main/docs/filters-facets-and-pagination.md#pattern-tests)中,过滤器可以在任何值内找到文本 `contains`,对照通配符模式测试整个值,寻找正则表达式的匹配值,并接受一个或两个在一个 `eq` 测试。 与 [部分词搜索](https://github.com/assetcorp/narsil/blob/main/docs/full-text-search.md#matching-inside-words)中,查询单词在较长的单词中也匹配,因此搜索 `proof` 发现 `waterproof`。 。 。 .

**向量和混合检索.** 对于 [向量搜索](https://github.com/assetcorp/narsil/blob/main/docs/vector-search.md),引擎通过同位素相似性,点出产物,或欧几利得距离来比较向量. 它精确地扫描一个字段,直到字段持有1,024个向量,一个您可以改变的计数,之后它会构建一个HNSW图,默认时使用最优化的分量. 在浏览器外,在 macOS 、 Linux 或 Windows 下的 arm64 或 x64 机器上,通过一个图像搜索引擎 [c中的原生核](https://github.com/assetcorp/narsil/blob/main/docs/vector-search.md#native-search-core),它返回与其WebAssembly搜索相同的结果。 对于 [混合搜索](https://github.com/assetcorp/narsil/blob/main/docs/hybrid-search.md),发动机通过对等级聚变或线性混合来导出BM25和矢量排名. [嵌入适配器](https://github.com/assetcorp/narsil/blob/main/docs/embedding-adapters.md) 在插入和查询时将文本转换为向量,通过OpenAI,本地变换器。 js 模型,或您写的适配器. 查询可以 [重新排序](https://github.com/assetcorp/narsil/blob/main/docs/reranking.md) 它的顶部点击器是交叉编码器,通过Cohere兼容的再排序服务,本地变形器.js模型,或您所写的适配器.

**地理学报.** [地理过滤器](https://github.com/assetcorp/narsil/blob/main/docs/geosearch.md) 以半径匹配文档, 使用 Haversine 或 Vincenty 距离, 或多边形封装 。 您可以将地理过滤器与所有其他查询功能结合起来.

**存储.** [持久性适配器](https://github.com/assetcorp/narsil/blob/main/docs/persistence-and-durability.md) 在文件系统、索引数据库、内存或后端存储索引。 随着耐久性的提高,发动机保留有有定期检查站的写头日志,并会在坠机后自动恢复. 您可以将整个索引流入一个可移植快照档案, 或者导出其文档为 JSON Lines , 将索引移动到各个版本 。 与 [设备同步](https://github.com/assetcorp/narsil/blob/main/docs/device-sync.md),手机,笔记本电脑,或浏览器标签从服务器上保存一个索引的副本,在服务器下线时进行搜索并写入.

**规模.** 引擎将每个文档引导到 a [分区](https://github.com/assetcorp/narsil/blob/main/docs/partitions-and-workers.md) 由决定的散去。 当你打电话 `rebalance()`,引擎在网络上重塑分区,并缓冲收到的写入以写出头列. 一旦一个索引持有了1000个文档,该引擎就服务于工人复制品在工人线程上的一半的关键字查询,而HTTP服务器则接收持有这些线程上的请求.

**行动.** 这个 [HTTP 服务器](https://github.com/assetcorp/narsil/blob/main/docs/http-server.md) 子路径用健康探测器将一个引擎包裹在REST API中,散装NDJSON导入,快照并恢复端点,以及基于任务的长期操作. 这个 [客户端](https://github.com/assetcorp/narsil/blob/main/docs/client.md) 子路径从一个浏览器或从节点调用其中的每一条路由,以引擎自己的方法名. 这个 [反应](https://github.com/assetcorp/narsil/blob/main/docs/react.md) 子路径将读取的方法转换为钩子,可以调用同一页面中的客户端或引擎. 对于观察,你有 [事件、插件和内存报告](https://github.com/assetcorp/narsil/blob/main/docs/observability.md)。 。 。 . [语言模块](https://github.com/assetcorp/narsil/blob/main/docs/language-support.md) 包括指南所列语言,包括斯瓦希里语、约鲁巴语、豪萨语和其他非洲语言,每个模块都是单独的切入点.

## 文档

| 指南 | 它包含什么 |
| --- | --- |
| [配置](https://github.com/assetcorp/narsil/blob/main/docs/configuration.md) | 每个 `createNarsil` 选项、 工人调制、 分析重建、 以及示意器缓存 |
| [索引和文件](https://github.com/assetcorp/narsil/blob/main/docs/indexes-and-documents.md) | Schemas,索引管理,插入,读取,更新,去除和分批操作 |
| [全文搜索](https://github.com/assetcorp/narsil/blob/main/docs/full-text-search.md) | 术语查询、模糊匹配、前缀补全、阈值、突出显示、评分模式和建议 |
| [过滤器、相片和相片](https://github.com/assetcorp/narsil/blob/main/docs/filters-facets-and-pagination.md) | 字段、阵列、存在和地理过滤器、平面计数、排序、分组、光标和定点 |
| [矢量搜索](https://github.com/assetcorp/narsil/blob/main/docs/vector-search.md) | 矢量场、距离测量、HNSW推广、量化、本土搜索核心和图维护 |
| [混合搜索](https://github.com/assetcorp/narsil/blob/main/docs/hybrid-search.md) | 文本和向量排列的对等分级组合和线性混合 |
| [地理搜索](https://github.com/assetcorp/narsil/blob/main/docs/geosearch.md) | 半径和多边形过滤器,以及两个相距公式 |
| [嵌入适配器](https://github.com/assetcorp/narsil/blob/main/docs/embedding-adapters.md) | 自动嵌入插入和查询、 命名适配器、 捆绑的和自定义的 |
| [重新排队](https://github.com/assetcorp/narsil/blob/main/docs/reranking.md) | 用交叉编码器、捆绑的调整适配器和自定义适配器重排上下接键 |
| [持久性和持久性](https://github.com/assetcorp/narsil/blob/main/docs/persistence-and-durability.md) | 存储后端、写头日志、检查站、恢复、快照、文件出口和早期发布的索引 |
| [分区和工人](https://github.com/assetcorp/narsil/blob/main/docs/partitions-and-workers.md) | 分区路线,在线再平衡,工人副本,多站无效 |
| [语文支助](https://github.com/assetcorp/narsil/blob/main/docs/language-support.md) | 每个语言模块,分析修改和重建, 并命名标语器和停止单词 |
| [HTTP 服务器](https://github.com/assetcorp/narsil/blob/main/docs/http-server.md) | 将引擎包入 REST API, 它所服务的每一条路由, 以及长期任务 |
| [集群模式](https://github.com/assetcorp/narsil/blob/main/docs/cluster.md) | 多节点索引:节点和角色、复制、路由书写、分布式搜索和阅读,以及集群中失败的呼叫 |
| [客户端](https://github.com/assetcorp/narsil/blob/main/docs/client.md) | 从浏览器或节点访问服务器, 执行任务, 以及它提出的代码 |
| [Python 客户端](https://github.com/assetcorp/narsil/blob/main/docs/python-client.md) | 从 Python 到达服务器或集群, 以阻塞和同步形式, 以及故障规则 |
| [去客户端](https://github.com/assetcorp/narsil/blob/main/docs/go-client.md) | 从 Go 到达服务器或集群, 流出快照, 以及故障规则 |
| [原生反应](https://github.com/assetcorp/narsil/blob/main/docs/react-native.md) | IOS 或 Android app内部的引擎, 索引所生活的地方、快照、内存和出错 |
| [设备同步](https://github.com/assetcorp/narsil/blob/main/docs/device-sync.md) | 搜索和写离线设备、同步路线、冲突以及快照上的索引副本 |
| [更改抓取](https://github.com/assetcorp/narsil/blob/main/docs/change-capture.md) | 在后端服务的索引上,每个插入、更新和去除后端服务的种子、过滤器和再链接 |
| [大众查询建议](https://github.com/assetcorp/narsil/blob/main/docs/query-suggestions.md) | 整个搜索,人们运行和点击, 计算每个人, 构建一个建议指数, 隐私权衡 |
| [反应](https://github.com/assetcorp/narsil/blob/main/docs/react.md) | 钩在页面中的客户端或引擎上,每个键一个共享请求,从组件装入一个元件 |
| [观察性](https://github.com/assetcorp/narsil/blob/main/docs/observability.md) | 插件钩子、引擎事件和内存报告 |
| [错误](https://github.com/assetcorp/narsil/blob/main/docs/errors.md) | 你最常处理的密码 还有三套 `NarsilError.code` 覆盖 |

这个 [规格](https://github.com/assetcorp/narsil/tree/main/packages/spec) 定义 `.nrsl` 格式、分析程序以及每个执行必须坚持的复制变量.

## 实例

| 示例 | 显示什么 |
| --- | --- |
| [HTTP 服务器](https://github.com/assetcorp/narsil/blob/main/packages/ts/examples/http-server/README.md) | 发射装置作为REST服务服务,具有耐久性,API-key auth,和多克包装等功能,而每个设置都来自环境. |
| [浏览器](https://github.com/assetcorp/narsil/blob/main/packages/ts/examples/browser/README.md) | 该应用程序将引擎嵌入到一个有索引DB持久性和Web Worker搜索的浏览器中. |
| [服务器应用程序](https://github.com/assetcorp/narsil/blob/main/packages/ts/examples/server-app/README.md) | 该应用程序通过客户端SDK和React hooks将HTTP服务器称为装入corpora作为导入任务. 在其"问"观点中,你可以问关于那些蝎子的问题. |

## 分发

`@delali/narsil/distribution` 持有 Narsil 的多节点集群模式:节点和角色,复制,等同测试和进程内测试的可协调适配器,TCP和gRPC的传输与相互的TLS,以及分布式查询路由. 集群节点可以创建,放出,清除,写入,更新,搜索,列表,计数,并跨出每个分区提出建议,它可以改变一个索引的复制因子和分区计数. 一个有耐用目录的节点将它的ID保存在那里,跨越重启,而等效协调器通过TLS连接上一个用户和一个密码. HTTP服务器前方的节点报告集群的健康状况和节点的"Prometheus"度量衡. 这个 [集群仪表板实例](https://github.com/assetcorp/narsil/tree/main/packages/ts/examples/cluster-dashboard) 启动三个对等的节点,并在剪切网络链接时显示每个分区的状态。 这个 [分组指南](https://github.com/assetcorp/narsil/blob/main/docs/cluster.md) 覆盖API,包括等协奏器和gRPC运输每个需要的软件包. 将每项执行必须维护的合同改为: [`packages/spec/distribution`](https://github.com/assetcorp/narsil/tree/main/packages/spec/distribution)。 。 。 .

## 搜索质量

我们测量排名质量 [比利时](https://github.com/beir-cellar/beir) 《犯罪事实调查》,载有5 183份文件和300起与人有关的判决。 我们把纳西尔和奥拉玛和米尼塞克 在一个过程中进行比较 所有三个词都使用相同的33个Lucene English stop words和默认的BM25参数,虽然每个词的出自英语不同. Narsil拥有3个中最高的nDCG@10.

**这些衡量标准的含义是:**

-   **nDCG@10 (中文(简体) )** 衡量最相关的文件是否出现在结果的顶端。 得分1.0意味着完美的排名,而0.0则意味着前十名中没有相关文档出现.
-   **页:1** 是十大相关结果中的一小部分.
-   **地图** 跟踪显示相关文档的每个级别上的精确度。 一个更高的MAP表示相关文档集群接近排名的顶端.
-   **母 权** 衡量第一个相关结果何时出现。 较高的MRR意味着第一个相关文档出现在更接近顶部.

连续集成执行一个单独的 [SciFact 回归测试](https://github.com/assetcorp/narsil/blob/main/packages/ts/src/__tests__/relevance/scifact.test.ts) 在同一个机构。 当质量低于校准阈值时,该测试失败了构建.

以 `pnpm --filter benchmarks bench -- --tiers relevance`。 。 。 . [银行](https://github.com/assetcorp/narsil/blob/main/BENCHMARKS.md) 拥有所有三个引擎的全部质量,吞吐量和耐用表.

纳西尔还充当了搜索服务器. 在BEIR数据集上,我们将服务器与Elasticsearch,OpenSearch,Qdrant,Weaviaate,Tortyense,和Meilisearch进行对比,跨越关键词,矢量和混合检索. 见 [全部基准](https://github.com/assetcorp/narsil/blob/main/BENCHMARKS.md) 为这些结果.

## 运行时间支持

| 运行时间 | 货币 | 持久性 | 无效 |
| --- | --- | --- | --- |
| 节点.js | `worker_threads` | 文件系统 | 基于适应器 |
| 阿宝 | `worker_threads` | 文件系统 | 基于适应器 |
| 德诺 | 网络工人 | 文件系统 | 广播频道 |
| 浏览器 | 网络工人 | 索引数据库 | 广播频道 |

这个 [浏览器示例](https://github.com/assetcorp/narsil/blob/main/packages/ts/examples/browser/README.md) 显示带有索引DB持久性的嵌入式引擎,而 [服务器应用程序示例](https://github.com/assetcorp/narsil/blob/main/packages/ts/examples/server-app/README.md) 在客户端SDK和反应钩上显示相同的接口.

## 其他语文

| 软件包 | 它会做什么 |
| --- | --- |
| [`delali-narsil`](https://github.com/assetcorp/narsil/tree/main/packages/rust) | Rust 箱子在 Rust 程序内创建、修改和搜索索引. |
| [`github.com/assetcorp/narsil/packages/go/engine`](https://github.com/assetcorp/narsil/tree/main/packages/go/engine) | Go引擎在Go程序内创建,修改并搜索索引. |
| [`github.com/assetcorp/narsil/packages/go`](https://github.com/assetcorp/narsil/tree/main/packages/go) | Go客户端呼叫了Narsil服务器,或一个集群的每一个节点,来自Go. |
| [`narsil-client`](https://github.com/assetcorp/narsil/tree/main/packages/python) | Python客户端呼叫一个Narsil服务器,或者一个集群的每一个节点,来自Python. |
| [`@delali/narsil-react-native`](https://github.com/assetcorp/narsil/tree/main/packages/react-native) | 司机将引擎放入iOS或Android应用程序. |

Rust 箱子和 Go 引擎保存每个文件的布局与这个包相同,因此这个包可以打开一个任何一个保存的索引,而任何一个都可以打开这个包保存的索引. 只有这个包持有HTTP服务器和集群模式.

## 许可证

阿帕奇 - 2.0

## 常见问题

### @delali/narsil 是什么？

分布式搜索引擎全文，矢量，混合，和地理搜索。一个引擎，嵌入或在服务器上，具有跨语言。nrsl格式。

### 如何安装 @delali/narsil？

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

### @delali/narsil 支持 TypeScript 吗？

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

### @delali/narsil 支持 ESM 还是 CommonJS？

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

### @delali/narsil 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @delali/narsil 可以商用吗？

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

### @delali/narsil 的下载量有多少？

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

### @delali/narsil 还在维护吗？

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

