Narsil MCP
공식엄청나게 빠른 🔥 최고 수준의 Rust 🦀 기반 MCP 서버로, 신경 엔진, 보안 프로파일링, 선택적 그래프 프론트엔드를 갖추고 있습니다.
Narsil MCP(으)로 무엇을 할 수 있나요?
-
코드베이스 탐색 — 어시스턴트에게 익숙하지 않은 프로젝트를 매핑하고, 심볼을 찾고, 32개 언어에서 참조를 추적하도록 요청하세요.
find_symbols및find_references를 사용합니다. -
보안 취약점 분석 — 오염 분석, OWASP Top 10 스캔 또는 CWE 검사를 요청하여 주입 지점을 식별하고
scan_security및suggest_fix를 통해 수정 권장 사항을 받으세요. -
함수 관계 추적 — 호출 그래프를 시각화하고, 호출자/피호출자를 찾거나, 함수 간 경로를 찾아
get_call_graph및find_call_path로 실행 흐름을 이해하세요. -
공급망 위험 감사 — SBOM을 생성하고, OSV에 대해 종속성을 확인하고,
generate_sbom,check_dependencies및check_licenses를 사용하여 라이선스 준수를 검증하세요. -
코드 품질 문제 감지 —
find_dead_code및check_type_errors로 Python, JavaScript 및 TypeScript에서 죽은 코드, 초기화되지 않은 변수 또는 유형 불일치를 식별하세요.
문서
narsil-mcp
코드 인텔리전스를 위한 초고속, 프라이버시 우선 MCP 서버
Rust로 구동되는 MCP(Model Context Protocol) 서버로, 90개의 특화된 도구를 통해 AI 어시스턴트에게 깊이 있는 코드 이해를 제공합니다.
narsil-mcp를 선택해야 하는 이유는?
| 기능 | narsil-mcp | XRAY | Serena | GitHub MCP |
|---|---|---|---|---|
| 언어 | 32 | 4 | 30+ (LSP) | 해당 없음 |
| 신경망 검색 | 지원 | 미지원 | 미지원 | 미지원 |
| 오염 분석 | 지원 | 미지원 | 미지원 | 미지원 |
| SBOM/라이선스 | 지원 | 미지원 | 미지원 | 부분 지원 |
| 오프라인/로컬 | 지원 | 지원 | 지원 | 미지원 |
| WASM/브라우저 | 지원 | 미지원 | 미지원 | 미지원 |
| 호출 그래프 | 지원 | 부분 지원 | 미지원 | 미지원 |
| 타입 추론 | 지원 | 미지원 | 미지원 | 미지원 |
주요 기능
- 코드 인텔리전스 - 심볼 추출, 의미론적 검색, 호출 그래프 분석
- 신경망 의미론적 검색 - 임베딩을 사용한 유사 코드 찾기 (Voyage AI, OpenAI)
- 보안 분석 - 오염 분석, 취약점 스캐닝, OWASP/CWE 커버리지
- 공급망 보안 - SBOM 생성, 의존성 감사, 라이선스 규정 준수
- 고급 분석 - 제어 흐름 그래프, 데이터 흐름 분석, 죽은 코드 감지
narsil-mcp를 선택해야 하는 이유
- Rust로 작성 - 초고속, 메모리 안전, 단일 바이너리 (~30MB)
- Tree-sitter 기반 - 32개 언어에 대한 정확한 증분 파싱
- 제로 구성 - 저장소를 지정하기만 하면 됩니다
- MCP 호환 - Claude, Cursor, VS Code Copilot, Zed 및 모든 MCP 클라이언트와 호환
- 프라이버시 우선 - 완전히 로컬에서 실행되며, 데이터가 기기를 벗어나지 않습니다
- 병렬 인덱싱 - Rayon을 통해 모든 코어 사용
- 스마트 발췌 - 완전한 구문 범위로 확장
- 보안 우선 - 내장 취약점 탐지 및 오염 분석
- 신경망 임베딩 - Voyage AI 또는 OpenAI를 사용한 선택적 의미론적 검색
- WASM 지원 - WebAssembly 빌드로 브라우저에서 실행
- 실시간 스트리밍 - 대규모 저장소의 인덱싱 진행 중에도 결과 제공
지원 언어
| 언어 | 확장자 | 추출된 심볼 |
|---|---|---|
| Rust | .rs | 함수, 구조체, 열거형, 트레이트, 구현, 모듈 |
| Python | .py, .pyi | 함수, 클래스 |
| JavaScript | .js, .jsx, .mjs | 함수, 클래스, 메서드, 변수 |
| TypeScript | .ts, .tsx | 함수, 클래스, 인터페이스, 타입, 열거형 |
| Go | .go | 함수, 메서드, 타입 |
| C | .c, .h | 함수, 구조체, 열거형, typedef |
| C++ | .cpp, .cc, .hpp | 함수, 클래스, 구조체, 네임스페이스 |
| Java | .java | 메서드, 클래스, 인터페이스, 열거형 |
| C# | .cs | 메서드, 클래스, 인터페이스, 구조체, 열거형, 델리게이트, 네임스페이스 |
| Bash | .sh, .bash, .zsh | 함수, 변수 |
| Ruby | .rb, .rake, .gemspec | 메서드, 클래스, 모듈 |
| Kotlin | .kt, .kts | 함수, 클래스, 객체, 인터페이스 |
| PHP | .php, .phtml | 함수, 메서드, 클래스, 인터페이스, 트레이트 |
| Swift | .swift | 클래스, 구조체, 열거형, 프로토콜, 함수 |
| Verilog/SystemVerilog | .v, .vh, .sv, .svh | 모듈, 태스크, 함수, 인터페이스, 클래스 |
| Scala | .scala, .sc | 클래스, 객체, 트레이트, 함수, val |
| Lua | .lua | 함수, 메서드 |
| Haskell | .hs, .lhs | 함수, 데이터 타입, 타입 클래스 |
| Elixir | .ex, .exs | 모듈, 함수 |
| Clojure | .clj, .cljs, .cljc, .edn | 리스트 (기본 AST) |
| Dart | .dart | 함수, 클래스, 메서드 |
| Julia | .jl | 함수, 모듈, 구조체 |
| R | .R, .r, .Rmd | 함수 |
| Perl | .pl, .pm, .t | 함수, 패키지 |
| Zig | .zig | 함수, 변수 |
| Erlang | .erl, .hrl | 함수, 모듈, 레코드 |
| Elm | .elm | 함수, 타입 |
| Fortran | .f90, .f95, .f03, .f08, .f, .for, .fpp | 프로그램, 서브루틴, 함수, 모듈 |
| PowerShell | .ps1, .psm1, .psd1 | 함수, 클래스, 열거형 |
| Nix | .nix | 바인딩 |
| Groovy | .groovy, .gradle | 메서드, 클래스, 인터페이스, 열거형, 함수 |
설치
패키지 관리자 이용 (권장)
macOS / Linux (Homebrew):
brew tap postrv/narsil
brew install narsil-mcp
Windows (Scoop):
scoop bucket add narsil https://github.com/postrv/scoop-narsil
scoop install narsil-mcp
Rust/Cargo (모든 플랫폼):
cargo install narsil-mcp
Node.js/npm (모든 플랫폼):
npm install -g narsil-mcp
# or
yarn global add narsil-mcp
# or
pnpm add -g narsil-mcp
Nix:
# Run directly without installing
nix run github:postrv/narsil-mcp -- --repos ./my-project
# Install to profile
nix profile install github:postrv/narsil-mcp
# With web visualization frontend
nix profile install github:postrv/narsil-mcp#with-frontend
# Development shell
nix develop github:postrv/narsil-mcp
원클릭 설치 스크립트
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.ps1 | iex
Windows (Git Bash / MSYS2):
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
Windows 사용자 참고: PowerShell 설치 프로그램은 더 나은 오류 메시지와 네이티브 Windows 통합을 제공합니다. PATH를 자동으로 구성하고, 소스에서 빌드하는 경우 필요한 빌드 도구를 확인합니다.
소스에서 빌드
사전 요구 사항:
- 현재 안정 버전의 Rust (이 릴리스는 Rust 1.98 및 1.99로 검증됨)
- Windows: Visual Studio Build Tools의 "C++를 사용한 데스크톱 개발" 포함
# Clone and build
git clone git@github.com:postrv/narsil-mcp.git
cd narsil-mcp
cargo build --release
# Binary will be at:
# - macOS/Linux: target/release/narsil-mcp
# - Windows: target/release/narsil-mcp.exe
기능 빌드
narsil-mcp는 다양한 사용 사례에 맞는 여러 기능 세트를 지원합니다:
# Default build - native MCP server (~30MB)
cargo build --release
# With RDF knowledge graph and CCG tools (~35MB) - SPARQL queries, Code Context Graph
cargo build --release --features graph
# With neural vector search (~32MB) - adds TF-IDF similarity
cargo build --release --features neural
# With ONNX model support (~50MB) - adds local neural embeddings
cargo build --release --features neural-onnx
# With embedded visualization frontend (~31MB)
cargo build --release --features frontend
# Full-featured build with graph + frontend (~40MB)
cargo build --release --features graph,frontend
# Experimental browser/WASM source build (not release-qualified)
cargo build --release --target wasm32-unknown-unknown --no-default-features --features wasm
| 기능 | 설명 | 크기 |
|---|---|---|
native (기본) | 모든 도구를 갖춘 전체 MCP 서버 | ~30MB |
graph | + RDF 지식 그래프, SPARQL, CCG 도구 | ~35MB |
frontend | + 내장 시각화 웹 UI | ~31MB |
neural | + TF-IDF 벡터 검색, API 임베딩 | ~32MB |
neural-onnx | + 로컬 ONNX 모델 추론 | ~50MB |
wasm | 실험적 브라우저 소스 빌드 (파일 시스템, git 없음) | 릴리스 검증 안 됨 |
중요:
--graphCLI 플래그는 바이너리가--features graph로 빌드되어야 합니다. 이 기능 없이 빌드된 바이너리에--graph를 전달하면 경고가 표시되고 SPARQL/CCG 도구를 사용할 수 없습니다. 아래 문제 해결을 참조하세요.
자세한 설치 지침, 문제 해결 및 플랫폼별 가이드는 docs/INSTALL.md를 참조하세요.
사용법
기본 사용법
macOS / Linux:
# Index a single repository
narsil-mcp --repos /path/to/your/project
# Index multiple repositories
narsil-mcp --repos ~/projects/project1 --repos ~/projects/project2
# Enable verbose logging
narsil-mcp --repos /path/to/project --verbose
# Force re-index on startup
narsil-mcp --repos /path/to/project --reindex
Windows (PowerShell / CMD):
# Index a single repository
narsil-mcp --repos C:\Users\YourName\Projects\my-project
# Index multiple repositories
narsil-mcp --repos C:\Projects\project1 --repos C:\Projects\project2
# Enable verbose logging
narsil-mcp --repos C:\Projects\my-project --verbose
# Force re-index on startup
narsil-mcp --repos C:\Projects\my-project --reindex
전체 기능 세트
narsil-mcp \
--repos ~/projects/my-app \
--git \ # Enable git blame, history, contributors
--call-graph \ # Enable function call analysis
--persist \ # Save index to disk for fast startup
--watch \ # Auto-reindex on file changes
--lsp \ # Enable LSP for hover, go-to-definition
--streaming \ # Stream large result sets
--remote \ # Enable GitHub remote repo support
--neural \ # Enable neural semantic embeddings
--neural-backend api \ # Backend: "api" (Voyage/OpenAI) or "onnx"
--neural-model voyage-code-2 \ # Model to use
--neural-dimension 3072 \ # Override embedding dimensions (auto-detected per model)
--graph # Enable SPARQL/RDF knowledge graph and CCG tools (requires --features graph build)
--graph에 대한 참고: 이 플래그는 SPARQL 쿼리와 Code Context Graph(CCG) 도구를 활성화하지만, 바이너리가--features graph로 빌드된 경우에만 가능합니다. 기본 바이너리에는 이 기능이 포함되어 있지 않습니다. SPARQL/CCG 기능이 필요하면 소스에서 빌드하세요:cargo build --release --features graph기능 없이 빌드된 바이너리에
--graph를 전달하면 시작 시 경고가 표시되고 서버는 SPARQL/CCG 도구 없이 계속 실행됩니다.
참고: 신경망 임베딩에는 API 키(또는 사용자 지정 엔드포인트)가 필요합니다. 가장 쉬운 설정 방법은 대화형 마법사를 사용하는 것입니다:
# Run the neural API key setup wizard
narsil-mcp config init --neural
마법사는 다음을 수행합니다:
- 편집기 감지 (Claude Desktop, Claude Code, Zed, VS Code, JetBrains)
- API 제공자 선택 요청 (Voyage AI, OpenAI 또는 사용자 지정)
- API 키 검증
- 편집기의 MCP 구성에 자동 추가
또는 다음 환경 변수 중 하나를 수동으로 설정할 수 있습니다:
EMBEDDING_API_KEY- 모든 제공자용 일반 API 키VOYAGE_API_KEY- Voyage AI 전용 API 키OPENAI_API_KEY- OpenAI 전용 API 키EMBEDDING_SERVER_ENDPOINT- 사용자 지정 임베딩 API 엔드포인트 URL (선택 사항, 자체 호스팅 모델 사용 가능)
구성
v1.1.0+에서는 도구와 성능을 세밀하게 제어할 수 있는 선택적 구성을 도입했습니다. 기존 사용 방식은 모두 계속 작동합니다 - 구성은 완전히 선택 사항입니다!
빠른 시작
# Generate default config interactively
narsil-mcp config init
# List available tools
narsil-mcp tools list
# Apply a preset via CLI
narsil-mcp --repos ~/project --preset minimal
자동 편집기 감지
narsil-mcp는 편집기를 감지하고 최적의 프리셋을 자동으로 적용합니다:
| 편집기 | 프리셋 | 도구 | 컨텍스트 토큰 | 이유 |
|---|---|---|---|---|
| Zed | 최소 | 26 | ~4,686 | 빠른 시작, 최소 컨텍스트 |
| VS Code | 균형 | 51 | ~8,948 | 좋은 기능 균형 |
| Claude Desktop | 전체 | 90 | ~12,001 | 최대 기능 |
토큰 절약:
- 최소 프리셋: 전체 대비 토큰 61% 절약
- 균형 프리셋: 전체 대비 토큰 25% 절약
프리셋
사용 사례에 따라 프리셋을 선택하세요:
# Minimal - Fast, lightweight (Zed, Cursor)
narsil-mcp --repos ~/project --preset minimal
# Balanced - Good defaults (VS Code, IntelliJ)
narsil-mcp --repos ~/project --preset balanced --git --call-graph
# Full - All features (Claude Desktop, comprehensive analysis)
narsil-mcp --repos ~/project --preset full --git --call-graph
# Security-focused - Security and supply chain tools
narsil-mcp --repos ~/project --preset security-focused
구성 파일
사용자 구성 (~/.config/narsil-mcp/config.yaml):
version: "1.0"
preset: "balanced"
tools:
# Disable slow tools
overrides:
neural_search:
enabled: false
reason: "Too slow for interactive use"
performance:
max_tool_count: 50 # Limit total tools
프로젝트 구성 (저장소 루트의 .narsil.yaml):
version: "1.0"
preset: "security-focused" # Override user preset
tools:
categories:
Security:
enabled: true
SupplyChain:
enabled: true
명명된 저장소 프로필은 다중 저장소 워크스페이스에 유용합니다:
version: "1.0"
profiles:
platform:
repos:
- ~/src/api
- ~/src/web
git: true
call_graph: true
persist: true
preset: balanced
narsil-mcp --profile platform
narsil-mcp config profiles
우선순위: CLI 플래그 > 환경 변수 > 프로젝트 구성 > 사용자 구성 > 기본값
환경 변수
# Select repos/profile
export NARSIL_REPOS=~/src/api,~/src/web
export NARSIL_PROFILE=platform
# Apply preset
export NARSIL_PRESET=minimal
# Enable specific categories
export NARSIL_ENABLED_CATEGORIES=Repository,Symbols,Search
# Disable specific tools
export NARSIL_DISABLED_TOOLS=neural_search,generate_sbom
CLI 명령
# View effective config
narsil-mcp config show
# Validate config file
narsil-mcp config validate ~/.config/narsil-mcp/config.yaml
# List tools by category
narsil-mcp tools list --category Search
# Search for tools
narsil-mcp tools search "git"
# Export config
narsil-mcp config export > my-config.yaml
# List named repository profiles
narsil-mcp config profiles
더 알아보기:
시각화 프론트엔드
브라우저에서 호출 그래프, 임포트, 심볼 참조 및 제어 흐름을 대화형으로 탐색하세요.
# Build with embedded frontend
cargo build --release --features frontend
# Run with HTTP server
narsil-mcp --repos ~/project --http --call-graph
# Open http://localhost:3000
다섯 가지 그래프 보기:
| 보기 | 설명 |
|---|---|
| 호출 그래프 | 깊이 제어 및 방향 필터링이 있는 함수 호출 관계 |
| 임포트 그래프 | 코드베이스 전반의 파일 수준 임포트 의존성 |
| 심볼 그래프 | 파일 클러스터링이 있는 심볼에 대한 모든 참조 |
| 하이브리드 | 분할 예산이 있는 결합 호출 + 임포트 그래프 |
| 제어 흐름 | 기본 블록, 분기 및 루프 백엣지가 있는 실제 CFG |
기능:
- 드래그, 확대/축소 및 더블클릭 드릴다운이 가능한 대화형 Cytoscape.js 그래프
- 색상 코딩(녹색/노란색/주황색/빨간색)이 있는 복잡성 메트릭 오버레이
- 오염 소스와 싱크를 강조하는 보안 취약점 오버레이
- 여섯 가지 레이아웃 알고리즘 (dagre, force-directed, breadthfirst, concentric, circle, grid)
- 구문 강조 코드 뷰어가 있는 파일 트리 사이드바
- URL 기반 상태 (공유 가능한 링크, 브라우저 뒤로/앞으로)
- 다크 모드 지원
- 코드 발췌 및 소스 탐색이 있는 노드 세부 정보 패널
전체 문서: 설정, API 엔드포인트 및 개발 모드는 docs/frontend.md를 참조하세요.
신경망 의미론적 검색
신경망 임베딩을 사용하여 유사한 코드를 찾으세요 - 변수 이름과 구조가 달라도 가능합니다.
# Quick setup with wizard
narsil-mcp config init --neural
# Or manually with Voyage AI
export VOYAGE_API_KEY="your-key"
narsil-mcp --repos ~/project --neural --neural-model voyage-code-2
Voyage AI, OpenAI, 사용자 지정 엔드포인트 및 로컬 ONNX 모델을 지원합니다.
전체 문서: 설정, 백엔드 및 사용 사례는 docs/neural-search.md를 참조하세요.
타입 추론
Python, JavaScript 및 TypeScript용 내장 타입 추론 - mypy나 tsc가 필요 없습니다.
| 도구 | 설명 |
|---|---|
infer_types | 함수의 모든 변수에 대한 추론된 타입 가져오기 |
check_type_errors | 잠재적 타입 불일치 찾기 |
get_typed_taint_flow | 타입 정보를 사용한 향상된 보안 분석 |
def process(data):
result = data.split(",") # result: list[str]
count = len(result) # count: int
return count * 2 # returns: int
Forgemax 통합 (실험적)
대규모 에이전트 워크플로우를 위해 narsil-mcp는 Forgemax을 통해 사용할 수 있습니다 — 90개의 모든 도구를 2개(search + execute)로 축소하는 Code Mode MCP 게이트웨이로, 도구 스키마 오버헤드를 ~12,000 토큰에서 ~1,000 토큰으로 줄입니다.
# Install Forgemax
cargo install forgemax
# Run narsil-mcp through Forgemax (uses forge.toml in repo root)
forgemax
포함된 forge.toml는 합리적인 기본값으로 narsil-mcp를 구성합니다:
[servers.narsil]
command = "narsil-mcp"
args = ["--repos", ".", "--git", "--call-graph", "--persist", "--watch"]
transport = "stdio"
[sandbox]
timeout_secs = 10
max_heap_mb = 64
max_concurrent = 8
LLM은 샌드박스 처리된 V8 격리 환경 내부에서 타입이 지정된 프록시 객체를 통해 호출하는 JavaScript를 작성합니다. 자격 증명, 파일 경로 및 내부 상태는 호스트를 벗어나지 않습니다. 이 접근 방식은 여러 MCP 서버를 동시에 사용할 때 특히 유용하며, 전체 도구 컨텍스트를 작고 예측 가능하게 유지합니다.
MCP 구성
구성 파일을 생성하여 AI 어시스턴트에 narsil-mcp를 추가하세요. 권장 설정은 다음과 같습니다:
Claude Code (프로젝트 루트의 .mcp.json - 권장):
프로젝트별 구성을 위해 프로젝트 디렉터리에 .mcp.json를 생성하세요:
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
그런 다음 프로젝트에서 Claude Code를 시작하세요:
cd /path/to/project
claude
--repos에 .를 사용하면 현재 디렉터리가 자동으로 인덱싱됩니다. 이제 Claude는 90개의 코드 인텔리전스 도구에 액세스할 수 있습니다.
팁: 이후 실행 시 더 빠른 시작을 위해
--persist --index-path .claude/cache를 추가하세요.
전역 구성의 경우 대신 ~/.claude/settings.json을 편집하세요. 고급 설정은 Claude Code 통합을 참조하세요.
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
VS Code + GitHub Copilot (.vscode/mcp.json):
{
"servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
Copilot Enterprise 참고 사항: MCP 지원에는 VS Code 1.102+가 필요하며 조직 관리자가 활성화해야 합니다.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", "/path/to/your/projects", "--git"]
}
}
}
Zed (settings.json → 컨텍스트 서버):
{
"context_servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git"]
}
}
}
Zed 참고 사항: narsil-mcp는 즉시 시작되고 백그라운드에서 인덱싱하므로 초기화 시간 초과를 방지합니다.
Claude Code 플러그인
Claude Code 사용자를 위해 효과적인 도구 사용을 위한 슬래시 명령과 스킬이 포함된 플러그인을 제공합니다.
마켓플레이스를 통한 설치 (권장):
# Add the narsil-mcp marketplace
/plugin marketplace add postrv/narsil-mcp
# Install the plugin
/plugin install narsil@narsil-mcp
또는 GitHub에서 직접 설치:
/plugin install github:postrv/narsil-mcp/narsil-plugin
포함 내용:
| 구성 요소 | 설명 |
|---|---|
/narsil:security-scan | 포괄적인 보안 감사 실행 |
/narsil:explore | 익숙하지 않은 코드베이스 탐색 |
/narsil:analyze-function | 특정 함수에 대한 심층 분석 |
/narsil:find-feature | 기능이 구현된 위치 찾기 |
/narsil:supply-chain | 공급망 보안 분석 |
| 스킬 | 90개 도구를 효과적으로 사용하도록 Claude 안내 |
| MCP 구성 | 합리적인 기본값으로 narsil-mcp 자동 시작 |
전체 문서는 narsil-plugin/README.md를 참조하세요.
Ralph 자동화 통합
Ralph는 자율 코드 개발을 위한 Claude Code 자동화 제품군입니다. narsil-mcp를 사용할 수 있으면 Ralph는 향상된 코드 인텔리전스 기능을 얻습니다:
| 기능 | narsil-mcp 없음 | narsil-mcp 사용 |
|---|---|---|
| 보안 스캐닝 | 기본 (clippy) | OWASP/CWE 취약점 탐지 |
| 코드 이해 | 파일 기반 | 호출 그래프, 심볼 참조 |
| 아키텍처 분석 | 수동 | CCG L0/L1/L2 자동 레이어 |
| 종속성 분석 | cargo tree | 가져오기 그래프, 순환 감지 |
설정:
# Install narsil-mcp (Ralph auto-detects it)
cargo install narsil-mcp
# Ralph's quality gates use these tools:
narsil-mcp scan_security --repo <name>
narsil-mcp check_type_errors --repo <name> --path src
narsil-mcp find_injection_vulnerabilities --repo <name>
Ralph는 narsil-mcp를 사용할 수 없을 때 우아하게 성능이 저하됩니다. 모든 핵심 자동화 기능은 narsil-mcp 없이도 작동합니다.
문서: 전체 통합 세부 정보는 Ralph README를 참조하세요.
플레이북 및 튜토리얼
실용적인 사용 가이드는 **docs/playbooks**를 참조하세요:
| 가이드 | 설명 |
|---|---|
| 시작하기 | 빠른 설정 및 첫 도구 호출 |
| 코드베이스 이해 | 익숙하지 않은 프로젝트 탐색 |
| 버그 수정 | 호출 그래프 및 오염 분석으로 디버깅 |
| 보안 감사 | OWASP/CWE 스캐닝으로 취약점 찾기 |
| 코드 검토 | 변경 사항을 효과적으로 검토 |
각 플레이북은 Claude가 질문에 답하기 위해 사용하는 정확한 도구 체인을 보여줍니다.
WebAssembly (브라우저) 사용
저장소에는 실험적인 WebAssembly 소스와 로컬 빌드 스크립트가 포함되어 있습니다.
@narsil-mcp/wasm는 npm에 게시되지 않으며 1.7.1 CLI 릴리스의 배포 채널이 아닙니다.
WASM 빌드와 예제는 릴리스 자격 검증에 포함되지 않습니다. 실험적 소스 워크플로는 docs/wasm.md를 참조하세요.
사용 가능한 도구 (93)
저장소 및 파일 관리
| 도구 | 설명 |
|---|---|
list_repos | 메타데이터와 함께 인덱싱된 모든 저장소 나열 |
get_project_structure | 파일 아이콘과 크기가 포함된 디렉터리 트리 가져오기 |
get_file | 선택적 줄 범위로 파일 내용 가져오기 |
get_excerpt | 컨텍스트와 함께 특정 줄 주변 코드 추출 |
reindex | 저장소 재인덱싱 트리거 |
discover_repos | 디렉터리에서 저장소 자동 검색 |
validate_repo | 경로가 유효한 저장소인지 확인 |
get_index_status | 인덱스 통계 및 활성화된 기능 표시 |
심볼 검색 및 탐색
| 도구 | 설명 |
|---|---|
find_symbols | 유형/패턴으로 구조체, 클래스, 함수 찾기 |
get_symbol_definition | 주변 컨텍스트와 함께 심볼 소스 가져오기 |
find_references | 심볼에 대한 모든 참조 찾기 |
get_dependencies | 가져오기 및 종속 항목 분석 |
workspace_symbol_search | 작업 공간 전체에서 심볼 퍼지 검색 |
find_symbol_usages | 가져오기가 포함된 파일 간 심볼 사용 |
get_export_map | 파일/모듈에서 내보낸 심볼 가져오기 |
코드 검색
| 도구 | 설명 |
|---|---|
search_code | 관련성 순위가 있는 키워드 검색 |
semantic_search | BM25 순위 의미 검색 |
hybrid_search | 순위 융합이 포함된 결합 BM25 + TF-IDF |
search_chunks | AST 인식 코드 청크 검색 |
find_similar_code | 스니펫과 유사한 코드 찾기 (TF-IDF) |
find_similar_to_symbol | 심볼과 유사한 코드 찾기 |
AST 인식 청킹
| 도구 | 설명 |
|---|---|
get_chunks | 파일에 대한 AST 인식 청크 가져오기 |
get_chunk_stats | 코드 청크에 대한 통계 |
get_embedding_stats | 임베딩 인덱스 통계 |
신경 의미 검색 (--neural 필요)
| 도구 | 설명 |
|---|---|
neural_search | 신경 임베딩을 사용한 의미 검색 (이름이 달라도 유사한 코드 찾기) |
find_semantic_clones | 함수의 Type-3/4 의미 복제 찾기 |
get_neural_stats | 신경 임베딩 인덱스 통계 |
호출 그래프 분석 (--call-graph 필요)
| 도구 | 설명 |
|---|---|
get_call_graph | 저장소/함수에 대한 호출 그래프 가져오기 |
get_callers | 함수를 호출하는 함수 찾기 |
get_callees | 함수가 호출하는 함수 찾기 |
find_call_path | 두 함수 사이의 경로 찾기 |
get_complexity | 순환/인지 복잡도 가져오기 |
get_function_hotspots | 높은 연결성을 가진 함수 찾기 |
제어 흐름 분석
| 도구 | 설명 |
|---|---|
get_control_flow | 기본 블록과 분기를 보여주는 CFG 가져오기 |
find_dead_code | 도달할 수 없는 코드 블록 찾기 |
데이터 흐름 분석
| 도구 | 설명 |
|---|---|
get_data_flow | 변수 정의 및 사용 |
get_reaching_definitions | 각 지점에 도달하는 할당 |
find_uninitialized | 초기화 전에 사용된 변수 |
find_dead_stores | 읽히지 않는 할당 |
유형 추론 (Python/JavaScript/TypeScript)
| 도구 | 설명 |
|---|---|
infer_types | 외부 유형 검사기 없이 함수의 변수 유형 추론 |
check_type_errors | mypy/tsc 실행 없이 잠재적 유형 오류 찾기 |
get_typed_taint_flow | 데이터 흐름과 유형 추론을 결합한 향상된 오염 분석 |
가져오기/종속성 그래프
| 도구 | 설명 |
|---|---|
get_import_graph | 가져오기 그래프 구축 및 분석 |
find_circular_imports | 순환 종속성 감지 |
get_incremental_status | Merkle 트리 및 변경 통계 |
보안 분석 - 오염 추적
| 도구 | 설명 |
|---|---|
find_injection_vulnerabilities | SQL 주입, XSS, 명령 주입, 경로 탐색 찾기 |
trace_taint | 소스에서 오염된 데이터 흐름 추적 |
get_taint_sources | 오염 소스 나열 (사용자 입력, 파일, 네트워크) |
get_security_summary | 포괄적인 보안 위험 평가 |
보안 분석 - 규칙 엔진
| 도구 | 설명 |
|---|---|
scan_security | 보안 규칙으로 스캔 (OWASP, CWE, 암호화, 비밀) |
check_owasp_top10 | OWASP Top 10 2021 취약점 스캔 |
check_cwe_top25 | CWE Top 25 약점 스캔 |
explain_vulnerability | 자세한 취약점 설명 가져오기 |
suggest_fix | 발견 사항에 대한 수정 제안 가져오기 |
공급망 보안
| 도구 | 설명 |
|---|---|
generate_sbom | SBOM 생성 (CycloneDX/SPDX/JSON) |
check_dependencies | 알려진 취약점 확인 (OSV 데이터베이스) |
check_licenses | 규정 준수 문제에 대한 라이선스 분석 |
find_upgrade_path | 취약한 종속성에 대한 안전한 업그레이드 경로 찾기 |
Git 통합 (--git 필요)
| 도구 | 설명 |
|---|---|
get_blame | 파일에 대한 Git blame |
get_file_history | 파일에 대한 커밋 기록 |
get_recent_changes | 저장소의 최근 커밋 |
get_hotspots | 높은 변경 빈도와 복잡성을 가진 파일 |
get_contributors | 저장소/파일 기여자 |
get_commit_diff | 특정 커밋에 대한 Diff |
get_symbol_history | 심볼을 변경한 커밋 |
get_branch_info | 현재 브랜치 및 상태 |
get_modified_files | 작업 트리 변경 사항 |
LSP 통합 (--lsp 필요)
| 도구 | 설명 |
|---|---|
get_hover_info | 유형 정보 및 문서 |
get_type_info | 정확한 유형 정보 |
go_to_definition | 정의 위치 찾기 |
원격 저장소 지원 (--remote 필요)
| 도구 | 설명 |
|---|---|
add_remote_repo | GitHub 저장소 복제 및 인덱싱 |
list_remote_files | GitHub API를 통해 파일 나열 |
get_remote_file | GitHub API를 통해 파일 가져오기 |
메트릭
| 도구 | 설명 |
|---|---|
get_metrics | 성능 통계 및 타이밍 |
SPARQL / 지식 그래프 (--graph 필요)
| 도구 | 설명 |
|---|---|
sparql_query | RDF 지식 그래프에 대해 SPARQL 쿼리 실행 |
list_sparql_templates | 사용 가능한 SPARQL 쿼리 템플릿 나열 |
run_sparql_template | 매개변수로 사전 정의된 SPARQL 템플릿 실행 |
코드 컨텍스트 그래프 (CCG) (--graph 필요)
CCG는 계층화된 레이어에서 코드베이스의 표준화된 AI 소비 가능 표현을 제공합니다.
| 도구 | 설명 |
|---|---|
get_ccg_manifest | 레이어 0 매니페스트 (~1-2KB JSON-LD) - 저장소 ID, 개수 |
export_ccg_manifest | 레이어 0 매니페스트를 파일로 내보내기 |
export_ccg_architecture | 레이어 1 아키텍처 (~10-50KB JSON-LD) - 모듈, API |
export_ccg_index | 레이어 2 심볼 인덱스 (~100-500KB N-Quads gzipped) |
export_ccg_full | 레이어 3 전체 세부 정보 (~1-20MB N-Quads gzipped) |
export_ccg | 모든 CCG 레이어를 번들로 내보내기 |
query_ccg | SPARQL을 사용하여 CCG 쿼리 |
get_ccg_acl | CCG 레이어에 대한 WebACL 액세스 제어 생성 |
get_ccg_access_info | CCG 액세스 계층 정보 가져오기 |
import_ccg | URL 또는 파일에서 CCG 레이어 가져오기 |
import_ccg_from_registry | codecontextgraph.com 레지스트리에서 CCG 가져오기 |
보안 규칙
narsil-mcp에는 rules/에 내장된 보안 규칙이 포함되어 있습니다:
핵심 규칙 세트:
owasp-top10.yaml- OWASP Top 10 2021 취약점 패턴cwe-top25.yaml- CWE Top 25 가장 위험한 약점crypto.yaml- 암호화 문제 (약한 알고리즘, 하드코딩된 키)secrets.yaml- 비밀 탐지 (API 키, 비밀번호, 토큰) 언어별 규칙:rust.yaml- Rust 보안 패턴 (unsafe transmute, FFI 경계, 명령 주입, TOCTOU)elixir.yaml- Elixir/BEAM 패턴 (원자 고갈, binary_to_term, Code.eval, Ecto SQL 주입)go.yaml- Go 보안 패턴 (SQL 주입, TLS, 명령 주입)java.yaml- Java 취약점 (XXE, 역직렬화, LDAP 주입)csharp.yaml- C# 보안 문제 (역직렬화, XSS, 경로 탐색)kotlin.yaml- Kotlin/Android 패턴 (WebView, 인텐트, 비밀)bash.yaml- 셸 스크립트 취약점 (명령 주입, eval)
인프라 및 구성:
iac.yaml- 코드형 인프라 (Terraform, CloudFormation, Kubernetes)config.yaml- 구성 파일 보안 (하드코딩된 자격 증명, 안전하지 않은 설정)
사용자 정의 규칙은 scan_security --ruleset /path/to/rules.yaml로 로드할 수 있습니다.
아키텍처
+-----------------------------------------------------------------+
| MCP Server |
| +-----------------------------------------------------------+ |
| | JSON-RPC over stdio | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Code Intel Engine | |
| | +------------+ +------------+ +------------------------+ | |
| | | Symbol | | File | | Search Engine | | |
| | | Index | | Cache | | (Tantivy + TF-IDF) | | |
| | | (DashMap) | | (DashMap) | +------------------------+ | |
| | +------------+ +------------+ | |
| | +------------+ +------------+ +------------------------+ | |
| | | Call Graph | | Taint | | Security Rules | | |
| | | Analysis | | Tracker | | Engine | | |
| | +------------+ +------------+ +------------------------+ | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Tree-sitter Parser | |
| | +------+ +------+ +------+ +------+ +------+ | |
| | | Rust | |Python| | JS | | TS | | Go | ... | |
| | +------+ +------+ +------+ +------+ +------+ | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Repository Walker | |
| | (ignore crate - respects .gitignore) | |
| +-----------------------------------------------------------+ |
+-----------------------------------------------------------------+
성능
Apple M1에서 벤치마크 수행 (criterion.rs):
파싱 처리량
| 언어 | 입력 크기 | 시간 | 처리량 |
|---|---|---|---|
| Rust (대용량 파일) | 278 KB | 131 µs | 1.98 GiB/s |
| Rust (중간 파일) | 27 KB | 13.5 µs | 1.89 GiB/s |
| Python | ~4 KB | 16.7 µs | - |
| TypeScript | ~5 KB | 13.9 µs | - |
| 혼합 (5개 파일) | ~15 KB | 57 µs | - |
검색 지연 시간
| 작업 | 코퍼스 크기 | 시간 |
|---|---|---|
| 심볼 정확히 일치 | 1,000개 심볼 | 483 ns |
| 심볼 접두사 일치 | 1,000개 심볼 | 2.7 µs |
| 심볼 퍼지 일치 | 1,000개 심볼 | 16.5 µs |
| BM25 전문 검색 | 1,000개 문서 | 80 µs |
| TF-IDF 유사도 | 1,000개 문서 | 130 µs |
| 하이브리드 (BM25+TF-IDF) | 1,000개 문서 | 151 µs |
종단 간 인덱싱
| 저장소 | 파일 | 심볼 | 시간 | 메모리 |
|---|---|---|---|---|
| narsil-mcp (이 저장소) | 53 | 1,733 | 220 ms | ~50 MB |
| rust-analyzer | 2,847 | ~50K | 2.1s | 89 MB |
| linux 커널 | 78,000+ | ~500K | 45s | 2.1 GB |
주요 지표:
- Tree-sitter 파싱: ~2 GiB/s 지속 처리량
- 심볼 조회: 정확히 일치 시 <1µs
- 전문 검색: 대부분의 쿼리에서 <1ms
- 하이브리드 검색은 rayon을 통해 BM25 + TF-IDF를 병렬로 실행
개발
# Run the full test suite
cargo test
# Run benchmarks (criterion.rs)
cargo bench
# Run with debug logging
RUST_LOG=debug cargo run -- --repos ./test-fixtures
# Format code
cargo fmt
# Lint
cargo clippy
# Test with MCP Inspector
npx @modelcontextprotocol/inspector ./target/release/narsil-mcp --repos ./path/to/repo
문제 해결
Tree-sitter 빌드 오류
빌드 중 C 컴파일러나 tree-sitter 누락 관련 오류가 표시되면:
# macOS
xcode-select --install
# Ubuntu/Debian
sudo apt install build-essential
# For WASM builds
brew install emscripten # macOS
신경망 검색 API 오류
# Check your API key is set
echo $VOYAGE_API_KEY # or $OPENAI_API_KEY
# Common issue: wrong key format
export VOYAGE_API_KEY="pa-..." # Voyage keys start with "pa-"
export OPENAI_API_KEY="sk-..." # OpenAI keys start with "sk-"
인덱스가 파일을 찾지 못하는 경우
# Check .gitignore isn't excluding files
narsil-mcp --repos /path --verbose # Shows skipped files
# Force reindex
narsil-mcp --repos /path --reindex
대규모 저장소의 메모리 문제
# For very large repos (>50K files), increase stack size
RUST_MIN_STACK=8388608 narsil-mcp --repos /path/to/huge-repo
# Or index specific subdirectories
narsil-mcp --repos /path/to/repo/src --repos /path/to/repo/lib
그래프 기능이 작동하지 않는 경우
--graph를 전달하고 다음과 같은 경고가 표시되면:
WARN: --graph flag was passed but the binary was built without the 'graph' feature.
SPARQL and CCG tools will not be available.
이는 graph 기능으로 컴파일되지 않은 바이너리를 사용 중임을 의미합니다. 해결 방법:
# Build from source with the graph feature
cargo build --release --features graph
# Or with multiple features
cargo build --release --features graph,frontend
# Then run with --graph
./target/release/narsil-mcp --repos ~/project --graph
왜 별도의 기능인가요? graph 기능은 Oxigraph RDF 데이터베이스(약 5MB 추가 바이너리 크기)를 추가하며 대부분의 사용 사례에 필요하지 않습니다. 기본 바이너리를 더 작게 유지하기 위해 선택 사항으로 유지됩니다.
그래프 활성화 여부 확인 방법: 시작 로그를 확인하세요:
graph=true은 기능이 컴파일되고 활성화되었음을 의미합니다graph=false은 기능이 컴파일되지 않았거나--graph가 전달되지 않았음을 의미합니다
로드맵
완료됨
- 다중 언어 심볼 추출 (32개 언어)
- Tantivy를 사용한 전문 검색 (BM25 랭킹)
- 하이브리드 검색 (BM25 + TF-IDF with RRF)
- AST 인식 코드 청킹
- Git blame/히스토리 통합
- 복잡도 메트릭을 포함한 호출 그래프 분석
- 제어 흐름 그래프 (CFG) 분석
- 도달 정의를 포함한 데이터 흐름 분석 (DFG)
- 죽은 코드 및 죽은 저장소 감지
- 주입 취약점을 위한 오염 분석
- 보안 규칙 엔진 (OWASP, CWE, 암호화, 비밀)
- SBOM 생성 (CycloneDX, SPDX)
- 의존성 취약점 확인 (OSV)
- 라이선스 준수 분석
- 순환 의존성 감지를 포함한 가져오기 그래프
- 교차 언어 심볼 해석
- Merkle 트리를 사용한 증분 인덱싱
- 인덱스 영속성
- 파일 변경 감시 모드
- LSP 통합
- 원격 저장소 지원
- 스트리밍 응답
새로운 기능
v1.6.x (현재)
- 충돌 방지 청킹 -
chunk_file()및extract_signature()에서 다중 바이트 UTF-8 문자(이모지, CJK, 악센트 문자)가 포함된 파일을 처리할 때hybrid_search,search_chunks,get_chunk_stats이 충돌하는 원인이 된 안전하지 않은 바이트 수준 문자열 슬라이싱을 수정했습니다. 모든 바이트 슬라이싱은 이제 폴백이 있는 안전한content.get()을 사용합니다. - NaN 안전 정렬 작업 - 검색, 임베딩, git, 인덱스 및 추출 모듈 전반에 걸쳐 NaN 부동 소수점 값에서
partial_cmp().unwrap()이 패닉을 일으키는 5개 위치를 수정했습니다. 모든 정렬은 이제unwrap_or(Ordering::Equal)을 사용합니다. - 심층 방어 청킹 - 저장소 전체
chunk_file()루프 주위에catch_unwind래퍼를 추가하여 한 파일의 패닉이 MCP 서버 전체를 충돌시키는 대신 해당 파일을 건너뜁니다. - 시각화 프론트엔드 개편 - HashRouter 라우팅, 파일 트리 사이드바, 구문 강조 코드 뷰어, 대시보드 및 저장소별 개요 페이지를 갖춘 완전한 SPA
- 그래프 뷰 성능 - 가져오기 그래프는 이제 파일 시스템 탐색 대신 캐시된 인덱스 데이터를 사용합니다. 심볼 그래프는 마크다운 왕복 대신 파일 캐시를 직접 반복합니다. 모든 뷰는 조기 종료를 위해
max_nodes을 존중합니다. - 실제 제어 흐름 그래프 - 흐름 뷰는 이제 단일 블록 스텁 대신 적절한 기본 블록, 분기 조건 및 루프 백엣지가 있는 실제 CFG 빌더(
cfg::analyze_function)를 사용합니다. - 하이브리드 그래프 예산 분할 - 하이브리드 뷰는 균형 잡힌 결과를 위해 호출 그래프와 가져오기 그래프 간에 60/40 노드 예산을 할당합니다.
- Fix #14: 구성 가능한 임베딩 차원 -
--neural-dimensionCLI 인수 및default_dimension_for_model()조회를 추가하여text-embedding-3-large과 같은 모델이 하드코딩된 1536 대신 올바른 차원(3072)을 사용하도록 했습니다. - Fix #13: Nix 프론트엔드 빌드 -
nix profile install github:postrv/narsil-mcp#with-frontend이 작동하도록buildNpmPackage을 사용하여flake.nix에frontendDist파생을 추가했습니다. - Rust 보안 규칙 - 명령 주입, transmute, FFI 경계, TOCTOU, ReDoS, static mut, SSRF 등을 다루는 18개의 새 규칙 (RUST-004 ~ RUST-021)
- Elixir 보안 규칙 - 원자 고갈, binary_to_term 역직렬화, Code.eval 주입, Ecto SQL 주입, Phoenix XSS, Erlang 분산 보안을 다루는 18개의 새 규칙 (EX-001 ~ EX-018)
serde_yaml에서serde-saphyr으로 마이그레이션 - 더 이상 사용되지 않는serde_yaml을 적극적으로 유지 관리되고 패닉 없는 YAML 라이브러리로 대체했습니다.- 사용자 정의 파비콘 - 프론트엔드는 이제 기본 Vite 로고 대신 narsil-mcp 브랜딩 아이콘을 사용합니다.
- 의존성 보안 -
time을 0.3.47(RUSTSEC-2026-0009)로,bytes을 1.11.1(RUSTSEC-2026-0007)로 업데이트했습니다. - 테스트 수가 1,611개에서 1,763개로 증가했습니다 (+152개 테스트).
v1.5.x
- 결정적 호출 그래프 해석 - 범위 힌트 전파가 호출 수신자 해석을 명확히 합니다 (예:
App::run()이src/app/mod.rs::run으로 올바르게 해석됨). - 8가지 그래프 분석 수정 - 정규화된 노드 키, 핫스팟 필터링, CFG 표현식 처리, 가져오기 경로 파싱.
- Nix flake 개선 - DRY
mkPkg헬퍼, 불필요한 macOS 프레임워크 제거, 샌드박스 빌드를 위한--lib테스트 전략.
v1.4.x
- SPARQL / RDF 지식 그래프 - Oxigraph를 통해 SPARQL로 코드 인텔리전스 데이터를 쿼리합니다.
- 코드 컨텍스트 그래프 (CCG) - 계층화된 레이어(L0-L3)를 갖춘 표준화된 AI 소비 가능 코드베이스 표현을 위한 12개 도구.
- 유형 인식 보안 분석 - 유형 추론 및 특성 구현을 통한 향상된 오염 추적.
- 다중 언어 CFG/DFG - 제어 흐름 및 데이터 흐름 분석을 Go, Java, C#, Kotlin으로 확장했습니다.
- 코드형 인프라 스캐닝 - Terraform, CloudFormation, Kubernetes에 대한 새로운
iac.yaml규칙. - 언어별 보안 규칙 - Go, Java, C#, Kotlin, Bash에 대한 새 규칙.
- 6개 새 언어 - Erlang, Elm, Fortran, PowerShell, Nix, Groovy.
- 총 90개 도구 - 새로운 SPARQL, CCG 및 분석 기능으로 79개에서 증가했습니다.
v1.2.x
exclude_tests매개변수 - 22개 도구가 테스트 파일 필터링을 지원합니다.- npm 패키지 -
npm install -g narsil-mcp으로 설치합니다.
v1.1.x
- 다중 플랫폼 배포 - Homebrew, Scoop, npm, Cargo 또는 직접 다운로드로 설치합니다.
- 구성 가능한 도구 사전 설정 - 최소, 균형, 전체 및 보안 중심 사전 설정.
- 자동 편집기 감지 - Zed, VS Code, Claude Desktop에 대한 최적의 기본값.
- 대화형 설정 마법사 - 쉬운 구성을 위한
narsil-mcp config init. - 32개 언어 지원 - Dart, Julia, R, Perl, Zig 등을 추가했습니다.
- 성능 개선 - 백그라운드 인덱싱으로 더 빠른 시작.
v1.0.x
- 신경망 의미 검색 - Voyage AI 또는 OpenAI 임베딩을 사용하여 유사한 코드를 찾습니다.
- 유형 추론 - 외부 도구 없이 Python/JavaScript/TypeScript에서 유형을 추론합니다.
- 다중 언어 오염 분석 - PHP, Java, C#, Ruby, Kotlin에 대한 보안 스캐닝.
- WASM 빌드 - 코드 플레이그라운드 및 교육 도구용 브라우저에서 실행.
- 147개 번들 보안 규칙 - OWASP, CWE, 암호화, 비밀, Rust, Elixir 감지.
- IDE 구성 포함 - Claude Desktop, Cursor, VS Code, Zed 템플릿.
라이선스
다음 중 하나에 따라 라이선스가 부여됩니다:
- Apache License, Version 2.0 (LICENSE-APACHE 또는 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 라이선스 (LICENSE-MIT 또는 http://opensource.org/licenses/MIT)
선택에 따라.
크레딧
다음을 사용하여 구축:
- tree-sitter - 증분 파싱
- tantivy - 전문 검색
- tokio - 비동기 런타임
- rayon - 데이터 병렬 처리
- serde - 직렬화