BrokkAi/bifrost

GitHub: BrokkAi/bifrost

一款基于 Rust 的多语言静态分析工具箱,通过统一中间表示为 AI agent、编辑器和大型代码库提供语言无关的代码结构查询与智能导航能力。

Stars: 9 | Forks: 3

Bifrost

Bifrost — static analysis built for code intelligence

CI Latest release crates.io PyPI LGPL-3.0-or-later

快速开始 · 文档 · 十分钟评估 · Discord

## 为什么选择 Bifrost? `bifrost` 是 Brokk 开发的基于 Rust 的静态分析工具箱,专为 AI 编码环境、 编辑器和大型代码库设计。 Bifrost 为每种支持的语言提供共享的中间表示,因此 相同的结构化查询和导航工作流可以跨混合语言 代码库运行,而不会在语言边界处停滞。 - **统一的多语言 IR。** 解析未构建或部分损坏的工作区,并 标准化其源码结构以进行跨语言分析。 - **真正的查询语言。** 使用 JSON CodeQuery 或 Rune Query Language (RQL) 来查找与语言无关的代码结构,并遍历已索引的声明、 引用、调用、导入和类型关系。 - **专为 agent 和编辑器构建。** 向编码 agent 暴露结构化的 MCP 工具,向编辑器提供 LSP 功能,并通过 CLI、 Python 和 Rust 提供相同的分析器。 - **为活跃代码库设计。** 快照隔离、增量更新、 基于内容的缓存以及 git/worktree 感知功能,确保在 代码库发生变化时分析依然保持敏捷响应。 请参阅[选择 Bifrost](https://brokkai.github.io/bifrost/choose-bifrost/) 来为你的工作流选择 合适的接口,并查看[语言和分析 能力](https://brokkai.github.io/bifrost/capabilities/) 矩阵,以了解各语言的支持情况、 精度分级和当前的分析边界。 ## 运行你的第一个查询 安装已发布的 CLI,克隆小型验证评估 fixture,并运行 其保存的 RQL 查询: ``` cargo install brokk-bifrost --locked git clone --depth 1 https://github.com/BrokkAi/bifrost.git cd bifrost/docs/fixtures/ten-minute-evaluation bifrost --root . --query-file queries/find-audit.rql ``` 结果会识别出标准化后的 Python 调用及其确切的源码位置: ``` { "isError": false, "structuredContent": { "results": [ { "enclosing_symbol": "src.app.handle", "end_line": 5, "kind": "call", "language": "python", "path": "src/app.py", "result_type": "structural_match", "start_line": 5, "text": "audit(value)" } ], "truncated": false } } ``` 继续进行[十分钟 评估](https://brokkai.github.io/bifrost/evaluate-bifrost/),通过 CLI、连接 MCP 的编码 agent 以及 VS Code 运行相同的 查询。 ## 查看 Bifrost 实际效果 ### 在 VS Code 中将源码转化为查询

Selecting Python source in VS Code, inspecting its normalized Rune IR, using the generated starter RQL, and browsing the exact query result

选择一个源码结构并运行 **Bifrost: Show Rune IR**,以检查其 与语言无关的 `.rune` 形式,并获取一个保守的 RQL 启动查询。从编辑器中运行该 查询,浏览按文件分组的类型化结果,并跳转到 确切的源码范围。该扩展还提供定义、引用、悬停提示、 重命名、符号、层次结构、诊断、自动补全和其他 LSP 功能。 ### 从 CLI 使用相同的分析器

Running a saved RQL query with the Bifrost CLI and receiving an exact structured match

直接运行保存的 RQL 或 JSON 查询,或者调用通过 MCP 暴露的相同命名工具,用于 shell 脚本和可重复的分析工作流。 ## 语言覆盖范围 Bifrost 包含针对 C、C++、C#、Go、Java、JavaScript、PHP、Python、 Ruby、Rust、Scala 和 TypeScript 的分析器。请参阅[能力 矩阵](https://brokkai.github.io/bifrost/capabilities/),了解每种语言所支持的分析 和精度边界。 ## 文档 公开文档站点位于 [`docs/`](docs/),并发布在 [brokkai.github.io/bifrost](https://brokkai.github.io/bifrost/)。 有用的起点: - [选择合适的 Bifrost 接口](docs/src/content/docs/choose-bifrost.md) - [第三方声明](docs/src/content/docs/third-party-notices.md) - [安装 Bifrost](docs/src/content/docs/install.md) - [十分钟评估 Bifrost](docs/src/content/docs/evaluate-bifrost.md) - [MCP server 和工具集](docs/src/content/docs/mcp.md) - [LSP server](docs/src/content/docs/lsp.md) - [CLI 用法](docs/src/content/docs/cli.md) - [代码查询](docs/src/content/docs/code-querying.md) 使用以下命令在本地运行文档站点: ``` cd docs npm install npm run dev ``` GitHub Pages 的发布由 `.github/workflows/docs.yml` 处理。发布标签 构建会发布最新的文档站点以及一个版本快照,位于 `versions//` 下。 ## 许可证与商业用途 Bifrost 采用 `LGPL-3.0-or-later` 许可,可用于研究、 内部系统、托管服务和商业产品。集成和 分发边界决定了您的义务。请阅读[许可证和用 例](https://brokkai.github.io/bifrost/license-use-cases/),了解有关 子进程、链接库、托管服务和重新分发的实际示例。该 指南仅作引导参考,不构成法律建议;以[许可证文本](LICENSE.md) 为准。 ## 贡献 有关本地开发、测试命令、代码库本地 Python 工作流和 发布标签,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
标签:Rust, SOC Prime, 云安全监控, 代码智能, 代码查询, 可视化界面, 开发工具, 文档结构分析, 网络流量审计, 逆向工具, 通知系统, 静态分析