Tach 是 gauge-sh 出品的 Python 模块化架构强制工具,Rust 核心(PyO3 绑定),强制模块间 import 必须先在 tach.toml 声明依赖、检查公开接口、检测循环依赖,可渐进式集成到现有 Python 项目
本资源包含什么
完整源码:来自 GitHub
tach-org/tachmain 分支(版本 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.md、mkdocs.yml、docs/(含完整用户手册,已剔 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 develop或cargo build自动生成)依赖锁定文件(已剔
Cargo.lock、uv.lock、pw.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 maturinVSCode(可选,配 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大模型、程序工具仅作技术科普部署教程使用,不直接存储原版版权文件。
所有第三方资源的知识产权、开源协议、商用授权规则均归原开发团队所有。
使用者下载、部署、二次开发必须严格遵守国家著作权相关法律法规,以及资源官方许可协议,如需商业运营,务必向版权方申请合法授权。
因用户私自商用、违规分发资源造成的法律纠纷与经济损失,全部由使用者自行承担,本站不承担连带责任。