通用多源抓取工具 · Rust + Tauri 支持 RSS / 列表页 / sitemap,动态渲染(Playwright),云端穿墙(Firecrawl),统一 Markdown 输出
- 解耦:抓取层独立,不绑死下游业务(wiki / RAG / 备份皆可)
- 可配置:加新源 = 改 YAML,不改代码
- 可扩展:新增 fetcher / discoverer 走 trait 协议,不动核心
- 可观测:统一 NDJSON 输出,所有结果可追溯
- 可分发:Rust 编译产物是单二进制,Python 侧
subprocess调它
# 编译
cargo build --release
# CLI
./target/release/fetchcraft run --config examples/sources.yaml
# 输出: out.ndjson(每行一个 JSON)
# Python 侧
python examples/python-bridge/ingest.pycrates/
├── core/ # trait 定义 + Pipeline 编排
├── fetchers/ # firecrawl / jina / playwright 实现
├── discoverers/ # rss / list-page / sitemap
├── cli/ # 命令行入口
└── tauri-app/ # GUI(待开发)
完整架构说明见 docs/architecture.md。
- 阶段 1: workspace 脚手架
- 阶段 2-7: 核心抓取(fetcher / discoverer / pipeline / CLI / tests)
- 阶段 8-9: Tauri GUI
- 阶段 10-11: 文档 + Python 桥接示例
详细计划见 /Users/onemade/.mavis/agents/mavis/workspace/plan-multi-source-crawler.md。
MIT