Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附录 D:Feature Flags 一览

octos-cli Feature Flags

Feature启用功能额外依赖默认
apiWeb API 服务器、SSE 流式、监控、用户管理axum, tower-http, metrics, rust-embed
telegramTelegram 频道集成teloxide
discordDiscord 频道集成serenity
slackSlack 频道集成tokio-tungstenite
whatsappWhatsApp 频道集成
feishu飞书频道集成
email邮件收发集成async-imap, lettre, mailparse
matrixMatrix 频道集成
twilioTwilio SMS/Voice 集成
wecom企业微信集成
qq-botQQ Bot 集成

octos-agent Feature Flags

Feature启用功能额外依赖默认
gitGit 操作工具(GitTool)gix
astAST 代码结构分析工具tree-sitter, tree-sitter-{rust,python,js,ts}

octos-bus Feature Flags

Feature启用功能额外依赖默认
apiAPI 频道(REST/SSE 接入)
telegramTelegram 频道实现teloxide
discordDiscord 频道实现serenity
slackSlack 频道实现tokio-tungstenite
email邮件频道实现async-imap, lettre

编译示例

# 最小 CLI(无频道集成、无 Web 服务器)
cargo build --release

# CLI + Web API
cargo build --release --features api

# 完整 Gateway(所有频道)
cargo build --release --features "api,telegram,discord,slack,email,feishu,whatsapp,matrix"

# 开发者完整构建(所有功能)
cargo build --release --all-features

设计原则

Feature flags 遵循“最小默认“原则——默认编译只包含 CLI 核心功能,所有频道集成和可选工具通过 flags 按需启用。这确保了:

  1. 最小二进制体积:不需要的功能不编译
  2. 最少依赖:不使用 Telegram?就不引入 teloxide 及其依赖链
  3. 最快编译:开发时只编译需要的功能