Skip to content

术语表 ​

这页不是用来通读的,是用来跳转的:正文里任何一个术语链接,都会落到本页的某个锚点上。你用它做两件事:

  • 按六组(语言 / 内存 / 抽象 / 并发 / 工程 / LLM)查到术语的中英对照与一句话定义;
  • 多数词条附有章节号,顺着它跳到把这个词讲透的那一章。

锚点规则(全书链接都依赖它)

每条标题就是锚点:小写英文、词间连字符,例如 所有权、借用检查器。英文版在 /en/glossary,与本页同结构、同锚点。三个带符号的词条按同一规则落锚:no_std、crates.io、Cargo.lock 的锚点分别是 #no-std、#crates-io、#cargo-lock——下划线与点都转连字符。

Language Core ​

A · 语言核心 — 读代码的第一层词汇;多数词条在第 4–7 章逐组展开。闭包、迭代器与 Vec/HashMap 三个词条不在哪一章单独开节:正文只在用到处内联说明(如第 6 章 map_err 的闭包、第 14 章 .map/.collect 管道),忘了含义随时回这里查。

let binding ​

变量绑定 — 用 let 把值绑定到一个名字;默认不可变。

mutability ​

可变性 — 加 mut 才允许原地修改;不可变是默认。

shadowing ​

遮蔽 — 同名 let 建立新绑定、盖住旧的,类型可以变。

function ​

函数 — fn 名(参数: 类型) -> 返回类型;参数与返回类型必须显式。

expression vs statement ​

表达式与语句 — 表达式有值(if、match、块都能直接产出值),语句只执行不产出。

primitive types ​

基本类型 — 整数(u/i 系)、浮点、bool、char、单元类型 ()。

string slice ​

字符串切片 &str — 指向 UTF-8 字节的只读视图,不拥有数据。

String ​

堆字符串 String — 拥有所有权、可增长的 UTF-8 字符串。

enum ​

枚举 — 一个类型、若干已知变体之一;Option 与 Result 都是枚举。

struct ​

结构体 — 命名字段的聚合类型;方法写在 impl 块里。

pattern matching ​

模式匹配 — match / if let 按结构拆值并绑定变量;穷尽性由编译器保证。

Option ​

选项类型 Option<T> — Some(v) 或 None,代替 null。

Result ​

结果类型 Result<T, E> — Ok(v) 或 Err(e),可恢复错误的载体。

question mark operator ​

问号运算符 ? — 出错就带着错误提前返回,成功就解包继续。

closure ​

闭包 — 捕获环境的匿名函数,写作 |x| x + 1。

iterator ​

迭代器 — 惰性序列加 map / filter / collect 管道;for 循环的底层。

Vec and HashMap ​

集合 — Vec 是动态数组,HashMap 是哈希表,标准库最常用的两个容器。

Memory Model ​

B · 内存模型 — 数据放在哪、归谁、何时释放;第 5 章的主线。

ownership ​

所有权 — 每个值有唯一属主;属主离开作用域,值被释放。

move ​

所有权转移 — 赋值或传参把所有权交出去,原来的名字随之失效。

borrowing ​

借用 — 拿引用(&T 只读、&mut T 可写)而不夺走所有权。

borrow checker ​

借用检查器 — 编译期强制"多个只读或一个可写";它拦的是数据竞争,不是你。

clone ​

克隆 — 显式深拷贝;看到 .clone(),就是有人明确决定复制一次。

lifetime ​

生命周期 — 引用有效范围的标注,多数自动推导;初学只需认得 'a。

heap and stack ​

堆与栈 — 栈放定长数据与调用帧,堆放动态数据;所有权决定堆上数据何时释放。

Drop ​

析构 Drop — 值离开作用域时的清理回调,RAII 的 Rust 形态。

Abstraction ​

C · 抽象 — 从具体类型抽出行为契约;第 6–7 章,jackdaw 的脊柱 trait Provider 在此长出来。

trait ​

特征 — 行为的契约:一组方法签名,类型用 impl Trait for Type 实现。

derive ​

派生 — #[derive(Debug, Clone)] 让编译器自动实现常用 trait。

generics ​

泛型 — 对"满足某契约的类型"编程:fn f<T: Trait>、struct S<T>。

trait object ​

特征对象 — Box<dyn Trait>:一个指针,运行时指向任意实现者。

monomorphization ​

单态化 — 泛型在编译期为每个具体类型生成专门代码;性能来自这里。

smart pointer ​

智能指针 — Box、Rc、Arc 这类拥有数据并管理其生命周期的指针。

Arc ​

原子计数 Arc — Atomic Reference Counting,跨线程共享所有权的智能指针。

Mutex ​

互斥锁 Mutex — 一次只放一个线程进来的锁;锁与数据绑定存放。

Concurrency and Async ​

D · 并发与异步 — 同时接住多个请求所需的词;第 7 章初见,第 12–14 章落地。

async fn ​

异步函数 — async fn 返回 Future,函数体在 await 处让出执行权。

Future ​

Future — "将来才有值"的计算描述;不 await 就不执行。

runtime ​

运行时 — 驱动 Future 完成的调度器;标准库不带,事实标准是 Tokio。

spawn ​

任务 spawn — 把异步任务交给运行时并发执行。

mpsc channel ​

通道 mpsc — 多生产者单消费者队列,任务之间传消息。

Send and Sync ​

Send / Sync — 标记"可安全跨线程移动 / 共享"的标记 trait;见到相关报错,先想"数据竞争被拦了"。

Stream ​

流 Stream — 异步版迭代器;SSE 响应体就是一条流。

Project and Ecosystem ​

E · 工程与生态 — Cargo 世界与交付流程;第 8–9 章讲结构,第 15 章讲测试与发布。

Cargo ​

Cargo — 构建工具加包管理器,一条命令管构建、测试、依赖。

manifest ​

清单 Cargo.toml — 项目的元数据与依赖声明;第 8 章逐行读它。

crate ​

箱 crate — 一个编译单元:binary(可执行)或 library(被别人引用)。

package and module ​

包与模块 — 包是 crates.io 的发布单位;mod 在 crate 内分层,use 引入路径。

workspace ​

工作区 — 多个 crate 共享同一个 target/ 与锁文件的组织方式。

crates.io ​

crates.io — 官方包仓库;docs.rs 为每个版本自动生成 API 文档。

semver ​

语义化版本 — 1.6.3 即主.次.修订;^ / ~ 指定兼容范围。

Cargo.lock ​

Cargo.lock — 锁定依赖的精确版本,保证可复现构建。

feature ​

特性 feature — 依赖的可选编译开关,按需裁剪功能。

serialization ​

序列化 — 内存数据结构与 TOML/JSON 互相转换;jackdaw 用 serde 完成(第 6、11 章)。

edition ​

版本 edition — 语言级演进单位(2015/2018/2021/2024),与编译器版本正交。

fmt and clippy ​

格式化与静态检查 — cargo fmt 统一格式;cargo clippy 抓惯用性问题。

tests ​

测试 #[test] — 单元测试就近放 #[cfg(test)],集成测试放 tests/ 目录。

mock ​

模拟替身 mock — 测试中替代真实依赖(比如真的 HTTP provider)的假实现。

CI ​

持续集成 CI — push 或 PR 时自动跑检查;GitHub Actions 用 YAML 定义。

profile ​

发布 profile — dev 编译快、release 有优化;产物都在 target/ 下。

cross compilation ​

交叉编译 — 在一个平台编译出另一个平台的二进制。

no_std ​

no_std — 不用标准库的运行环境(嵌入式、内核),连分配器都可能没有。

FFI ​

外部函数接口 FFI — Rust 与 C 互相调用的边界,系统级库的出口。

LLM Engineering ​

F · LLM 工程域 — agent → 网关 → provider 链路上的行话;第 2 章定义,第 10–14 章在 jackdaw 里造出来。

LLM ​

大语言模型(LLM,即 model)— 按已有 token 序列预测下一个 token;API 上以 model id 引用。

provider ​

供应商 provider — 提供模型 API 的一方:OpenAI、Anthropic、OpenRouter、本地 vLLM 等。

agent ​

代理(智能体) agent — 在循环里调用模型的程序:发消息、执行工具、回填结果,直到任务完成。

tool call ​

工具调用 — 模型输出结构化的"请替我调用某函数",由 agent 执行后回填。

token ​

令牌 token — 模型处理文本的计量单位,约等于一个词或词的一部分;计费与上下文都以它计。

context window ​

上下文窗口 — 模型一次能看到的 token 上限。

prompt ​

提示词 / 系统提示词 — 用户输入叫 prompt;设定模型角色与行为的隐藏指令叫 system prompt。

messages ​

消息序列 messages — 对话的结构化历史,每条带 role(system / user / assistant / tool)。

streaming ​

流式 / SSE — 服务端逐块推送(Server-Sent Events),不必等完整回答。

gateway ​

网关 — 常驻本机的转发服务:统一入口,后面接多个 provider;jackdaw 的本体(第 14 章)。

routing ​

路由 — 按引用或规则,决定这次请求用哪个模型。

routing group ​

路由组 — group/<id> 把多个模型打包成一个名字,带策略与失败转移(第 13 章)。

failover ​

故障转移 — 上游失败时,自动换到列表中的下一个。

rotate ​

轮询 rotate / round-robin — 每次请求从下一个成员开始,分摊负载。

environment variable ​

环境变量 — 进程级配置;密钥的标准放法:不进代码、不进配置文件。

API key ​

API key — 调用付费 API 的凭证;jackdaw 配置里只存变量名,运行时再读值。

endpoint ​

端点 endpoint — 服务监听的地址,如 127.0.0.1:3426/v1/chat/completions。

OpenAI compatible ​

OpenAI 兼容 — 事实标准的 chat API 形态,许多服务都实现了它;jackdaw 进出都用它。

小结 ​

  • 77 个术语、六组,对应全书的知识分层;术语表收录的这 77 个术语,在正文首次出现时都带链接落到这里。
  • 分组顺序即学习顺序:语言与内存 → 抽象与并发 → 工程 → LLM 工程域。
  • 英文版同结构、同锚点,在 /en/glossary;从哪种语言进来,链接都不会走散。