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 报告: 供应链透明


相关推荐
启道张恒1 小时前
飞扬软件「建筑自动化·房间定义」重磅升级:重塑设计效率新标杆
大数据·人工智能·ai设计·bim正向设计·国产二三维设计软件·飞扬集成设计系统
自律懒人1 小时前
当AI智能体学会了操控浏览器:Chrome CDP + 自动化Agent实战
人工智能·chrome·自动化
用户5191495848451 小时前
WP NssUser Register 权限提升漏洞利用工具 (CVE-2024-54363)
人工智能·aigc
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用预计算上下文降低 agent 成本
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
Lumos_yuan1 小时前
What is data ?
人工智能
码以致用1 小时前
OpenFoundry 开源数据操作系统:架构解析与实战指南
人工智能·ai·架构·开源
m0_715674431 小时前
技术创新突破·可管可控·对标行标 医疗API安全解决方案实践指南
大数据·人工智能·安全
SelectDB技术团队1 小时前
97% 召回率、900 QPS:Apache Doris 4.1 生产级向量检索的工程实践
数据库·人工智能·数据分析·apache doris·selectdb