MCPcopy Index your code
hub / github.com/bytedance/g3

github.com/bytedance/g3 @g3proxy-v1.12.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release g3proxy-v1.12.3 ↗ · + Follow
12,241 symbols 34,831 edges 1,789 files 117 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

minimum rustc: 1.86 License: Apache 2.0 codecov docs

G3プロジェクト

中文版 README | English README

概要

これは、エンタープライズ向けの汎用プロキシソリューションを構築するために使用されるプロジェクトです。 プロキシ / リバースプロキシ(作業中) / ロードバランサー(未定) / NATトラバーサル(作業中)などを含むがこれらに限定されません。

アプリ

G3 プロジェクトは多数のアプリケーションで構成されており、各アプリケーションには独自のコード、ドキュメントなどを含む個別のサブディレクトリがあります。

アプリ ディレクトリに加えて、いくつかのパブリック ディレクトリもあります。

  • doc プロジェクトレベルのドキュメントが含まれます。
  • sphinx は、各アプリの HTML リファレンス ドキュメントを生成するために使用されます。
  • scripts には、カバレッジ テスト、パッケージ化スクリプト

g3proxy

汎用のフォワードプロキシソリューションですが、TCPストリーミング / トランスペアレントプロキシ / リバースプロキシとしても使用できます。 基本的なサポートが組み込まれています。

特徴のハイライト

  • 非同期Rust: 高速で信頼性が高い
  • Http1 / Socks5フォワードプロキシプロトコル、SNIプロキシおよびTCP TPROXY
  • サポート easy-proxy & masque/http Well-Known URI
  • プロキシチェイニング、上流プロキシの動的選択をサポート
  • 多くの出口ルート選択方法、カスタム出口選択エージェントをサポート
  • TCP/TLSストリームプロキシ、基本的なHTTPリバースプロキシ
  • OpenSSL、BoringSSL、AWS-LC、AWS-LC-FIPS、Tongsuo、さらにはrustlsを使用したTLS
  • TLS MITMインターセプション、復号化されたトラフィックダンプ、HTTP1/HTTP2/IMAP/SMTPインターセプション
  • HTTP1/HTTP2/IMAP/SMTPのICAP適応、サードパーティのセキュリティ製品とシームレスに統合可能
  • 優雅なリロード
  • カスタマイズ可能なロードバランシングおよびフェイルオーバー戦略
  • ユーザー認証、豊富な設定オプション
  • 各ユーザーに対して差別化されたサイト設定を行うことが可能
  • 豊富なACL/制限ルール、入口/出口/ユーザーレベルで
  • 豊富な監視メトリクス、入口/出口/ユーザー/ユーザーサイトレベルで
  • さまざまな観測ツールをサポート

詳細な紹介 | ユーザーガイド | リファレンスドキュメント

g3statsd

StatsD互換の統計アグリゲータ。

詳細な紹介 | リファレンスドキュメント

g3tiles

作業中のリバースプロキシソリューション。

リファレンスドキュメント

g3bench

HTTP 1.x、HTTP 2、HTTP 3、TLSハンドシェイク、DNS、Cloudflare Keylessをサポートするベンチマークツール。

詳細な紹介

g3mkcert

ルートCA / 中間CA / TLSサーバー / TLSクライアント / TLCPサーバー / TLCPクライアント 証明書を作成するツール。

詳細な紹介

g3fcgen

g3proxyのための偽の証明書ジェネレーター。

詳細な紹介

g3iploc

g3proxyのGeoIPサポートのためのIPロケーションルックアップサービス。

詳細な紹介

g3keymess

Cloudflare keylessサーバーの簡単な実装。

詳細な紹介 | リファレンスドキュメント

対応プラットフォーム

現在、完全にサポートされているのはLinuxのみです。コードはFreeBSD、NetBSD、OpenBSD、macOS、Windowsでコンパイルされますが、そこでのテストは行っていません。

他のプラットフォームのサポートを追加するためのPRを歓迎します。

開発環境のセットアップガイド

Dev-Setup に従ってください。

標準

Standards に従ってください。

ビルド、パッケージ化、デプロイ

コンパイル済みのパッケージはcloudsmithにあります。

ただし、パッケージはご自身でコンパイルしてパッケージ化することをお勧めします。詳細な手順については、ビルドとパッケージ化 を参照してください。

LTSバージョン

Long-Term Support を参照してください。

貢献

詳細については Contributing を参照してください。

行動規範

詳細については Code of Conduct を参照してください。

セキュリティ

このプロジェクトで潜在的なセキュリティ問題を発見した場合、またはセキュリティ問題を発見したと思われる場合は、 セキュリティセンター または 脆弱性報告メール を通じてBytedance Securityに通知してください。

公開のGitHub issueを作成しないでください。

ライセンス

このプロジェクトは Apache-2.0 License の下でライセンスされています。

Extension points exported contracts — how you extend this code

TcpConnectionTaskRemoteStats (Interface)
task related stats used at escaper side [9 implementers]
lib/g3-daemon/src/stat/remote/tcp_connect.rs
HttpForwardTaskRemoteStats (Interface)
task related stats used at escaper side [10 implementers]
g3proxy/src/module/http_forward/stats.rs
ExporterConfig (Interface)
(no doc) [7 implementers]
g3statsd/src/config/exporter/mod.rs
Server (Interface)
(no doc) [12 implementers]
g3tiles/src/serve/mod.rs
AclRuleJsonParser (Interface)
(no doc) [8 implementers]
lib/g3-json/src/value/acl/mod.rs
AsyncStream (Interface)
(no doc) [12 implementers]
lib/g3-io-ext/src/stream/stream_type.rs
YamlMapCallback (Interface)
(no doc) [7 implementers]
lib/g3-yaml/src/callback.rs
NamedValue (Interface)
(no doc) [5 implementers]
lib/g3-types/src/collection/named_value.rs

Core symbols most depended-on inside this repo

clone
called by 1342
g3proxy/src/inspect/mod.rs
default
called by 1199
lib/g3-syslog/src/backend/unix_datagram.rs
len
called by 633
lib/g3-types/src/auth/user.rs
is_empty
called by 373
lib/g3-types/src/net/host.rs
insert
called by 339
lib/g3-types/src/stats/map.rs
iter
called by 302
lib/g3-types/src/metrics/tag/map.rs
get
called by 297
g3tiles/src/backend/registry.rs
as_ref
called by 273
g3proxy/src/stat/metrics/mod.rs

Shape

Method 8,142
Function 2,386
Class 1,256
Enum 288
Interface 169

Languages

Rust99%
Python1%
Java1%

Modules by API surface

g3proxy/src/auth/user.rs52 symbols
lib/g3-yaml/src/value/primary.rs51 symbols
g3proxy/src/escape/stats.rs50 symbols
g3proxy/src/serve/http_proxy/task/forward/task.rs40 symbols
lib/g3-json/src/value/primary.rs39 symbols
g3proxy/src/serve/http_proxy/task/ftp/task.rs38 symbols
lib/g3-yaml/src/value/net/base.rs37 symbols
lib/g3-types/src/collection/selective_vec.rs37 symbols
g3proxy/src/inspect/mod.rs37 symbols
g3proxy/src/module/http_forward/response/client.rs36 symbols
lib/g3-yaml/src/value/openssl.rs35 symbols
lib/g3-types/src/net/openssl/client/mod.rs35 symbols

For agents

$ claude mcp add g3 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact