术语表
这页不是用来通读的,是用来跳转的:正文里任何一个术语链接,都会落到本页的某个锚点上。你用它做两件事:
- 按六组(语言 / 内存 / 抽象 / 并发 / 工程 / 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;从哪种语言进来,链接都不会走散。