GitNexus 完整技术栈分析

文章目录

  • 前言
      • [🏗️ **整体架构**](#🏗️ 整体架构)
    • [💾 **核心技术栈详解**](#💾 核心技术栈详解)
    • [📊 **技术栈总览表**](#📊 技术栈总览表)
    • [🔌 **集成点**](#🔌 集成点)
    • [🚀 **部署选项**](#🚀 部署选项)
      • [**1. CLI (本地)**](#1. CLI (本地))
      • [**2. Web (WASM)**](#2. Web (WASM))
      • [**3. Docker**](#3. Docker)
      • [**4. Enterprise (SaaS)**](#4. Enterprise (SaaS))
    • [📈 **性能关键点**](#📈 性能关键点)
    • [🔐 **安全特性**](#🔐 安全特性)

前言

🏗️ 整体架构

复制代码
GitNexus (Monorepo)
├── CLI/Core (Node.js)
├── Web UI (React + Vite)
├── Shared Types (TypeScript)
├── Evaluation Framework (Python)
└── Editor Integrations (Static Config)

💾 核心技术栈详解

一、CLI/Core (gitnexus/) - Node.js + TypeScript

核心依赖
json 复制代码
{
  "Runtime": {
    "node": ">=22.0.0",
    "type": "module (ESM)"
  },
  
  "CodeParsing": {
    "@huggingface/transformers": "^4.1.0",     // 向量化 + 语义搜索
    "tree-sitter": "^0.21.1",                   // 核心 AST 解析器
    "tree-sitter-*": [
      "typescript", "javascript", "python",
      "java", "kotlin", "c#", "go", "rust",
      "php", "ruby", "c", "c++", "dart"
    ]
  },
  
  "GraphDatabase": {
    "@ladybugdb/core": "^0.16.1"              // 知识图谱存储 (WASM 友好)
  },
  
  "GraphProcessing": {
    "graphology": "^0.26.0",                  // 图数据结构
    "graphology-indices": "^0.17.0",          // 图算法库
    "graphology-utils": "^2.3.0",             // 图工具
    "mnemonist": "^0.40.3",                   // 高效数据结构
    "pandemonium": "^2.4.0"                   // 并发工具
  },
  
  "ML/Embeddings": {
    "onnxruntime-node": "^1.24.0",            // 运行 ONNX 模型 (本地推理)
    "@huggingface/transformers": "^4.1.0"     // Hugging Face 模型库
  },
  
  "ServerFramework": {
    "express": "^5.2.1",                      // HTTP API (serve 命令)
    "express-rate-limit": "^8.4.1",           // 速率限制
    "cors": "^2.8.5"                          // 跨域支持
  },
  
  "MCP(AgentInterface)": {
    "@modelcontextprotocol/sdk": "^1.0.0"     // Model Context Protocol
  },
  
  "CLI": {
    "commander": "^14.0.3",                   // CLI 参数解析
    "cli-progress": "^3.12.0",                // 进度条
    "pino": "^10.3.1",                        // 日志库
    "pino-pretty": "^13.1.3"                  // 美化日志输出
  },
  
  "Utilities": {
    "js-yaml": "^4.1.1",                      // YAML 解析
    "jsonc-parser": "^3.3.1",                 // JSON with Comments
    "uuid": "^14.0.0",                        // UUID 生成
    "lru-cache": "^11.0.0",                   // 缓存
    "glob": "^13.0.6",                        // 文件匹配
    "ignore": "^7.0.5"                        // gitignore 支持
  }
}
开发工具
json 复制代码
{
  "TypeScript": "^5.4.5",
  "Vitest": "^4.0.18",                        // 单元 + 集成测试
  "tsx": "^4.0.0",                            // TypeScript 直接执行
  "Coverage": "@vitest/coverage-v8"
}
可选依赖 (native addon)
json 复制代码
{
  "tree-sitter-kotlin": "^0.3.8",             // 可选 Kotlin 支持
  "node-gyp-build": "^4.8.0",                 // 原生模块编译
  "node-addon-api": "^8.0.0"
}

二、Web UI (gitnexus-web/) - React + Vite

前端框架
json 复制代码
{
  "Runtime": {
    "react": "^19.2.5",                       // 最新 React
    "react-dom": "^19.2.6"
  },
  
  "BuildTool": {
    "vite": "^8.0.11",                        // 闪电快速构建
    "typescript": "^5.4.5",
    "@vitejs/plugin-react": "^5.1.4"          // React JSX 支持
  },
  
  "Styling": {
    "tailwindcss": "^4.2.4",                  // Utility-first CSS
    "@tailwindcss/vite": "^4.3.0"             // Vite 集成
  },
  
  "GraphVisualization": {
    "sigma": "^3.0.2",                        // WebGL 图可视化引擎
    "@sigma/edge-curve": "^3.1.0",            // 弧形边
    "graphology": "^0.26.0",                  // 图数据结构
    "graphology-indices": "^0.17.0",
    "graphology-layout-force": "^0.2.4",      // 力导向布局
    "graphology-layout-forceatlas2": "^0.10.1", // ForceAtlas2 算法
    "graphology-layout-noverlap": "^0.4.2",   // 防重叠布局
    "graphology-utils": "^2.3.0",
    "d3": "^7.9.0"                            // 数据可视化
  },
  
  "AIAgent": {
    "@langchain/anthropic": "^1.3.29",        // Claude 集成
    "@langchain/openai": "^1.4.5",            // GPT 集成
    "@langchain/google-genai": "^2.1.30",     // Gemini 集成
    "@langchain/ollama": "^1.2.6",            // 本地 Ollama
    "@langchain/langgraph": "^1.2.9",         // 多步骤代理
    "@langchain/core": "^1.1.44",             // 核心库
    "langchain": "^1.3.5",                    // 完整工具箱
    "zod": "^4.4.3"                           // 数据验证 (LangChain)
  },
  
  "MarkdownRendering": {
    "react-markdown": "^10.1.0",              // Markdown → React
    "remark-gfm": "^4.0.1",                   // GitHub Flavor 支持
    "react-syntax-highlighter": "^16.1.1"    // 代码高亮
  },
  
  "i18n": {
    "i18next": "^26.2.0",                     // 国际化框架
    "react-i18next": "^17.0.8",               // React 绑定
    "i18next-browser-languagedetector": "^8.2.1" // 语言检测
  },
  
  "Utils": {
    "axios": "^1.16.0",                       // HTTP 客户端
    "lru-cache": "^11.2.4",                   // 缓存
    "uuid": "^14.0.0",                        // UUID
    "dompurify": "^3.4.3",                    // HTML 清理 (安全)
    "mermaid": "^11.15.0",                    // 图表生成
    "react-zoom-pan-pinch": "^4.0.3",         // 图交互
    "lucide-react": "^1.14.0"                 // 图标库
  }
}
测试工具
json 复制代码
{
  "UnitTesting": "vitest ^4.1.5",
  "E2ETesting": "@playwright/test ^1.58.2",
  "Testing": [
    "@testing-library/react ^16.3.2",
    "@testing-library/jest-dom ^6.9.1",
    "@testing-library/user-event ^14.6.1"
  ]
}

三、共享库 (gitnexus-shared/) - TypeScript

json 复制代码
{
  "Role": "类型定义 + 常量共享",
  "Dependencies": ["typescript ^6.0.3"],
  "Exports": [
    "./dist/index.js       → 主类型",
    "./dist/test-helpers.js → 测试工具"
  ]
}

四、评估框架 (eval/) - Python

依赖
toml 复制代码
[dependencies]
mini-swe-agent     = ">=2.0.0"    # SWE-bench 代理基础
litellm            = ">=1.83.7"   # 多 LLM 提供商支持
datasets           = ">=3.0.0"    # SWE-bench 数据集
typer              = ">=0.12.0"   # CLI 工具
rich               = ">=13.0.0"   # 美化输出
pyyaml             = ">=6.0"      # YAML 配置
pandas             = ">=2.0.0"    # 数据分析
tabulate           = ">=0.9.0"    # 表格输出
python-dotenv      = ">=1.2.2"    # .env 支持

[dev-dependencies]
pytest             = ">=9.0.3"
ruff               = ">=0.5.0"    # 代码检查
hypothesis         = ">=6.88.0"   # 属性测试
coverage           = ">=7.6.0"    # 覆盖率

Python 版本 : >=3.11


五、DevOps 工具链

代码质量
json 复制代码
{
  "Linting": {
    "eslint": "^9.39.4",
    "@typescript-eslint/eslint-plugin": "^8.57.2",
    "@typescript-eslint/parser": "^8.57.2",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-unused-imports": "^4.4.1"
  },
  
  "Formatting": {
    "prettier": "^3.8.0",
    "prettier-plugin-tailwindcss": "^0.7.0"  // Tailwind 类排序
  },
  
  "GitHooks": {
    "husky": "^9.1.7",
    "lint-staged": "^15.5.0"                  // 提交前检查
  }
}
容器化
dockerfile 复制代码
# CLI/Server (Node.js)
Dockerfile.cli
├── 基础镜像: node:22+
├── Python 支持
└── Tree-sitter 原生模块编译

# Web UI (Static)
Dockerfile.web
├── 构建: gitnexus-shared + gitnexus-web
└── Nginx 服务静态文件

# Orchestration
docker-compose.yaml (2 个服务)

📊 技术栈总览表

按层级分类

层 技术 版本 用途
编程语言 TypeScript, JavaScript, Python TS 5.4, Py 3.11+ 类型安全、数据处理
运行时 Node.js >=22.0 CLI 执行
代码解析 Tree-sitter 0.21.1 14 种语言 AST
图数据库 LadybugDB 0.16.1 知识图谱持久化
图处理 Graphology 0.26.0 社区检测、路径查询
向量化 Hugging Face + ONNX 4.1.0 本地语义搜索
前端框架 React 19.2.5 UI 组件
构建工具 Vite 8.0.11 高性能打包
图可视化 Sigma.js 3.0.2 WebGL 渲染
API 框架 Express.js 5.2.1 HTTP 服务器
Agent 接口 MCP SDK 1.0.0 代理通信
AI 集成 LangChain 1.3.5 多模型支持
日志 Pino 10.3.1 结构化日志
测试 Vitest, Playwright 4.0.18, 1.58.2 单元 + E2E
CSS Tailwind 4.2.4 原子化样式
包管理 npm - monorepo 管理
CI/CD GitHub Actions - 自动化工作流

🔌 集成点

编辑器支持

编辑器 集成方式 配置文件
Claude Code MCP + 钩子 .claude/ + 动态
Cursor MCP + 钩子 ~/.cursor/mcp.json + .cursor/hooks.json
Windsurf MCP .windsurf/ 或全局
Codex MCP 全局配置
OpenCode MCP ~/.config/opencode/config.json

🚀 部署选项

1. CLI (本地)

  • 依赖: Node.js 22+
  • 命令: npm install -g gitnexus
  • 存储: LadybugDB 原生 (.gitnexus/)

2. Web (WASM)

  • 浏览器: 现代浏览器 (Chrome/Firefox/Safari)
  • 存储: LadybugDB WASM (内存)
  • 无需后端

3. Docker

bash 复制代码
# CLI 镜像
docker run ghcr.io/abhigyanpatwari/gitnexus:latest

# Web UI 镜像
docker run ghcr.io/abhigyanpatwari/gitnexus-web:latest

# Compose 编排
docker-compose up -d

4. Enterprise (SaaS)

  • Hosted at akonlabs.com
  • 附加功能: OCaml, 自动重索引, PR 审查

📈 性能关键点

复制代码
解析管道:
├─ Tree-sitter 原生绑定 (C++)
├─ Worker threads (并行处理)
├─ 增量解析 (缓存策略)
└─ LadybugDB 优化索引

搜索:
├─ BM25 (关键词)
├─ 向量化 (ONNX 本地推理)
└─ RRF (排名融合)

API:
├─ Express.js (轻量快速)
├─ 连接池 (多仓库)
└─ 缓存 (LRU + 图查询结果)

🔐 安全特性

✅ 本地优先 : 所有数据在本地存储

✅ 开源 : 可自审计代码

✅ 没有 LLM 调用 : 索引过程离线

✅ Cosign 签名 : Docker 镜像验证

✅ SBOM 报告: 供应链透明


相关推荐
Hi2024021719 分钟前
Vortex CUDA 生态适配:让 CUDA C、CUTLASS 与 Triton 在 RISC-V GPGPU 上运行
人工智能·risc-v·gpgpu
龙腾AI白云3 小时前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
云票3 小时前
企业对接AI合同审查系统的工程实践
人工智能
admin and root4 小时前
「AI安全篇」实战AntiDebug自动化JS逆向加解密MCP
javascript·人工智能·网络安全·自动化·漏洞挖掘·cnvd·src赏金
智能RPA4 小时前
智能体自动化平台与主数据管理平台(MDM)对比评测
人工智能·自动化·agent·rpa
跨境小彭4 小时前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
封印师请假去地球钓鱼4 小时前
边解边变的问题:从“决策依赖“一词出发
人工智能·算法
AI搅拌机5 小时前
ComfyUI管理大师:安全稳定升级+切换指定版本!
人工智能
浅安的邂逅5 小时前
20929-OpenAI 一天踩三脚急刹:暂停前沿训练、叫停 Astra、披露越权访问澳政府网站
人工智能·大模型·ai编程·行业动态·ai日报
Qyr995 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能