tach-org tach Python 模块化架构强制工具,Rust 写的依赖图校验 CLI

Tach 是 gauge-sh 出品的 Python 模块化架构强制工具,Rust 核心(PyO3 绑定),强制模块间 import 必须先在 tach.toml 声明依赖、检查公开接口、检测循环依赖,可渐进式集成到现有 Python 项目

本资源包含什么

  • 完整源码:来自 GitHub tach-org/tach main 分支(版本 0.35.0),含 python/(CLI 入口)+ src/(Rust 核心,PyO3 绑定)+ Cargo.toml + pyproject.toml

  • Rust 核心引擎:基于 ruff_python_ast / ruff_python_parser 做 AST 分析,petgraph 做依赖图,lsp-server + lsp-types 实现 IDE 协议。

  • Python CLI 包装python/tach/ 下含 commands/checks/modules/interfaces/parsing/ 等模块。

  • 测试与示例python/tests/ 含 30+ fixture 示例项目(多层依赖、命名空间、monorepo 等场景)。

  • VSCode 插件源码vscode/ 目录下完整 LSP 客户端实现。

  • 官方文档README.mdmkdocs.ymldocs/(含完整用户手册,已剔 docs 引用图节省体积)。

  • MIT 协议LICENSE

核心能力

  • 强制 import 来自声明依赖:在 tach.toml 中声明模块边界,跨模块 import 必须先列依赖,否则报错。

  • 公开接口校验:跨模块调用必须走 __init__.py 显式暴露的接口,禁止穿透访问内部符号。

  • 循环依赖检测:用 petgraph 找模块图中的环,阻止 A → B → A 死循环。

  • IDE 实时提示:内置 LSP 服务器,VSCode / PyCharm 等编辑器实时标红违规 import。

  • Rust 性能:核心 AST + 图算法用 Rust(PyO3 abi3-py37 绑定),大型 monorepo 秒级扫描。

  • 渐进式集成:可以先 tach show 看现状报告,逐步给模块加 boundary,不必一次性重构。

本资源包不含什么

  • 编译产物(已剔 target/__pycache__/.venv/,首次 maturin developcargo build 自动生成)

  • 依赖锁定文件(已剔 Cargo.lockuv.lockpw.lock,构建时自动生成)

  • GitHub CI 与 .vscode 配置(已剔 .github/.vscode/.basedpyright/

  • README 引用图与 demo 视频(已剔 public/docs/assets/

资源包大小

压缩后约 0.2 MB,解压后约 0.6 MB / 170 个文件

启动运行(pip 安装)

pip install tach
cd /your/python/project
tach init          # 生成 tach.toml
tach check         # 扫描当前模块
tach sync          # 自动同步依赖声明

启动运行(从源码构建)

git clone https://github.com/tach-org/tach.git
cd tach
# 1. 装 Rust + Python 3.10+
cargo build --release          # 出 libtach
pip install -e .               # 出 tach CLI
tach --help

安装编译依赖

  • Python 3.10+pyproject.toml 要求)

  • Rust 1.85+(edition 2024 要求)

  • maturin(可选,PyO3 绑定构建):pip install maturin

  • VSCode(可选,配 LSP 客户端实时提示)

典型使用场景

  • 中大型 Python 项目重构:把单体 Python 服务拆为多个 bounded context,强制模块边界。

  • monorepo 治理:Python monorepo 里多个包互相 import 失控时,用 Tach 强制依赖方向。

  • AI Agent 团队:多个 AI agent 协作项目里,强制每个 agent 模块只能调用显式声明的依赖。

  • Django / FastAPI 分层:view / service / repo 层强制只能向下单向依赖,防止反向调用。

适用人群

  • 中大型 Python 工程的技术负责人,希望用工具强制模块边界、减少架构腐化。

  • 正在做 monolith → modular monolith / microservices 重构的团队。

  • 需要管理 Python monorepo 多个子包依赖方向的开发者。

  • 做技术选型:评估 Tach vs import-linter / Pydeps / Radon CC。

质量承诺

本资源包内源码全部来自 tach-org/tach 官方 GitHub 仓库(MIT 协议),版本 0.35.0,经本地解压验证:含完整 Rust 核心(src/)+ Python CLI(python/)+ 30+ 测试 fixture + VSCode LSP 客户端 + 官方 README + 配置文件示例。用户解压后 cargo build --release && pip install -e . 即可本地构建。

版权声明

本站文字内容为原创编撰或者网络搜集整理,受著作权保护,禁止未经授权批量采集转载。

本站分享的各类源码、AI大模型、程序工具仅作技术科普部署教程使用,不直接存储原版版权文件。

所有第三方资源的知识产权、开源协议、商用授权规则均归原开发团队所有。

使用者下载、部署、二次开发必须严格遵守国家著作权相关法律法规,以及资源官方许可协议,如需商业运营,务必向版权方申请合法授权。

因用户私自商用、违规分发资源造成的法律纠纷与经济损失,全部由使用者自行承担,本站不承担连带责任。

转载请说明出处 内容投诉
素材市场 » tach-org tach Python 模块化架构强制工具,Rust 写的依赖图校验 CLI

发表评论

您需要后才能发表评论

一个令你着迷的主题!

点击下载 VIP购买