Skip to content

Add concise architecture overview with diagram and improvement roadmap#1

Draft
Copilot wants to merge 14 commits intomainfrom
copilot/analyze-repo-structure
Draft

Add concise architecture overview with diagram and improvement roadmap#1
Copilot wants to merge 14 commits intomainfrom
copilot/analyze-repo-structure

Conversation

Copy link
Copy Markdown

Copilot AI commented Dec 13, 2025

The issue asked for a deep repo overview, showing structure, component relationships (Mermaid), and actionable improvements to help contributors grow skills and benefit the community.

  • Architecture doc: New ARCHITECTURE.md outlining key directories (main/infra/core/app/features/proxy/transport/common/testing) and their roles, plus bilingual English summary.
  • Component map: Mermaid graph linking CLI/config loader → core → app services → proxy handlers → transport layers with shared utilities/testing.
  • Improvement ideas: Targeted suggestions for observability (OTEL/Prometheus on dispatcher/router/transport dialers), config validation, fuzz/property tests, microbenchmarks, extension docs, and security hardening.
  • README link: Documentation section now points to the new overview.

Example (Mermaid):

graph TD
    CLI[main/commands] --> Loader[main/confloader & infra/conf]
    Loader --> Core[core]
    Core --> Apps[app/* services]
    Apps --> Features[features/* contracts]
    Apps --> Proxies[proxy/* protocol impls]
    Proxies --> Transport[transport/internet & pipe]
    Transport --> Common[common/* utilities]
    Features --> Common
    Apps --> Common
    Proxies --> Common
    Testing[testing/* e2e & mocks] --> Apps
    Testing --> Proxies
Loading
Original prompt

у тебя есть репозиторий, это форк xray-core
ты - опытный golang разработчик, шаришь за всю актуальную инфраструктуру
глубоко проанилизируй данный тебе репозиторий, выдай мне всю его структуру, покажи связи между разделами (нарисуй memraid диаграмму)
и самое важное, проанилизируй что я могу улучшить, добавить в этот репо, чтобы и свои навыки прокачать, поработав со сложным проектом и помочь в целом комьюнити


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 13 commits December 13, 2025 19:10
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Co-authored-by: odlev <65655276+odlev@users.noreply.github.com>
Copilot AI changed the title [WIP] Analyze repository structure and propose improvements Add concise architecture overview with diagram and improvement roadmap Dec 13, 2025
Copilot AI requested a review from odlev December 13, 2025 19:18
@odlev
Copy link
Copy Markdown
Owner

odlev commented Dec 14, 2025

@copilot объясни работу xray помощью понятных мне шагов
то есть опиши как работает vless протокол и с этими этапами объясни, как работает код xray, что где включается на разных этапах проксирования

Copy link
Copy Markdown
Author

Copilot AI commented Dec 14, 2025

@copilot объясни работу xray помощью понятных мне шагов
то есть опиши как работает vless протокол и с этими этапами о�...

Кратко по шагам (VLESS):

  1. Клиент устанавливает TCP/UDP к inbound VLESS (proxy/vless/inbound). Сервер читает пролог: версия, UUID, опции, target. UUID проверяется через user manager (app/proxyman/policy).
  2. После аутентификации inbound собирает ctx (session, policy), включает sniffing при конфиге, и передаёт поток в dispatcher (app/dispatcher).
  3. Dispatcher запрашивает маршрутизатор (app/router + features/routing): на основе rules выбирает outbound tag/route. При включённом DNS — app/dns может резолвить целевой адрес/ESNI/SNI.
  4. Dispatcher создаёт outbound handler (proxy/vless/outbound или другой протокол). Outbound через transport/internet dial строит соединение (TCP/QUIC/Reality/TLS/UTLS/ProxyProtocol) с учётом policy/transport settings.
  5. Трафик проксируется через common/pipe: входящие фреймы из inbound → (возможно mux/common/mux, xudp/common/xudp) → outbound writer. Ответы идут обратно тем же каналом.
  6. Лимиты/метрики/лог: app/policy управляет таймаутами и лимитами, app/metrics и common/log снимают счетчики/логи; antireplay/ocsp могут быть задействованы при соответствующей конфигурации.

Точки включения кода по этапам:

  • Handshake/аутентификация: proxy/vless/inbound/handler.go (декод заголовка, проверка UUID).
  • Маршрутизация: app/router + features/routing (matchers, rules). Dispatcher: app/dispatcher/dispatcher.go.
  • Outbound VLESS (или иной): proxy/vless/outbound/handler.go; другие протоколы — соответствующие каталоги в proxy/.
  • Транспорт: transport/internet/* (dialers, TLS/REALITY/HTTP/QUIC опции), и transport/pipe для внутреннего канала.
  • Политики/лимиты: app/policy.
  • Метрики/логи: app/metrics, common/log.

Итого: inbound VLESS парсит и проверяет запрос, dispatcher выбирает маршрут, outbound устанавливает внешнее соединение через настроенный транспорт, а данные гоняются через pipe/mux/xudp с учётом политик и метрик.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants