{"id":13578923,"url":"https://github.com/bytedance/g3","last_synced_at":"2025-05-15T19:07:46.981Z","repository":{"id":152659352,"uuid":"626282603","full_name":"bytedance/g3","owner":"bytedance","description":"Enterprise-oriented Generic Proxy Solutions","archived":false,"fork":false,"pushed_at":"2025-05-11T15:24:24.000Z","size":10775,"stargazers_count":603,"open_issues_count":23,"forks_count":46,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-11T15:27:13.905Z","etag":null,"topics":["audit","http","icap","mitm","network","proxy","rust","security","socks","tlcp","tls"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bytedance.png","metadata":{"files":{"readme":"README.ja_JP.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-11T06:46:53.000Z","updated_at":"2025-05-11T15:24:26.000Z","dependencies_parsed_at":"2024-03-17T07:42:58.505Z","dependency_job_id":"3ed29eff-6b20-4dcf-b4ef-567665e13c3f","html_url":"https://github.com/bytedance/g3","commit_stats":null,"previous_names":[],"tags_count":108,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2Fg3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2Fg3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2Fg3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytedance%2Fg3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytedance","download_url":"https://codeload.github.com/bytedance/g3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254404356,"owners_count":22065641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audit","http","icap","mitm","network","proxy","rust","security","socks","tlcp","tls"],"created_at":"2024-08-01T15:01:35.061Z","updated_at":"2025-05-15T19:07:46.962Z","avatar_url":"https://github.com/bytedance.png","language":"Rust","readme":"[![minimum rustc: 1.86](https://img.shields.io/badge/minimum%20rustc-1.86-green?logo=rust)](https://www.whatrustisit.com)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)\n[![codecov](https://codecov.io/gh/bytedance/g3/graph/badge.svg?token=TSQCA4ALQM)](https://codecov.io/gh/bytedance/g3)\n[![docs](https://readthedocs.org/projects/g3-project/badge)](https://g3-project.readthedocs.io/)\n\n# G3プロジェクト\n\n[中文版 README](README.zh_CN.md) | [English README](README.md)\n\n## 概要\n\nこれは、エンタープライズ向けの汎用プロキシソリューションを構築するために使用されるプロジェクトです。\nプロキシ / リバースプロキシ（作業中） / ロードバランサー（未定） / NATトラバーサル（未定）などを含むがこれらに限定されません。\n\n## アプリ\n\nG3 プロジェクトは多数のアプリケーションで構成されており、各アプリケーションには独自のコード、ドキュメントなどを含む個別のサブディレクトリがあります。\n\nアプリ ディレクトリに加えて、いくつかのパブリック ディレクトリもあります。\n\n- [doc](doc) プロジェクトレベルのドキュメントが含まれます。\n- [sphinx](sphinx) は、各アプリの HTML リファレンス ドキュメントを生成するために使用されます。\n- [scripts](scripts) には、カバレッジ テスト、パッケージ化スクリプト\n\n### g3proxy\n\n汎用のフォワードプロキシソリューションですが、TCPストリーミング / トランスペアレントプロキシ / リバースプロキシとしても使用できます。\n基本的なサポートが組み込まれています。\n\n#### 特徴のハイライト\n\n- 非同期Rust: 高速で信頼性が高い\n- Http1 / Socks5フォワードプロキシプロトコル、SNIプロキシおよびTCP TPROXY\n- easy-proxy Well-Known URI\n- プロキシチェイニング、上流プロキシの動的選択をサポート\n- 多くの出口ルート選択方法、カスタム出口選択エージェントをサポート\n- TCP/TLSストリームプロキシ、基本的なHTTPリバースプロキシ\n- OpenSSL、BoringSSL、AWS-LC、Tongsuo、さらにはrustlsを使用したTLS\n- TLS MITMインターセプション、復号化されたトラフィックダンプ、HTTP1/HTTP2/IMAP/SMTPインターセプション\n- HTTP1/HTTP2/IMAP/SMTPのICAP適応、サードパーティのセキュリティ製品とシームレスに統合可能\n- 優雅なリロード\n- カスタマイズ可能なロードバランシングおよびフェイルオーバー戦略\n- ユーザー認証、豊富な設定オプション\n- 各ユーザーに対して差別化されたサイト設定を行うことが可能\n- 豊富なACL/制限ルール、入口/出口/ユーザーレベルで\n- 豊富な監視メトリクス、入口/出口/ユーザー/ユーザーサイトレベルで\n- さまざまな観測ツールをサポート\n\n詳しい機能紹介とユーザーガイドは[g3proxy](g3proxy/README.md)をご覧ください。\n\nSphinx を使用して生成された g3proxy リファレンス\nドキュメントは、[Read the Docs](https://g3-project.readthedocs.io/projects/g3proxy/en/latest/)\nでオンラインで参照できます。 詳細な設定形式、ログ形式、メトリクスの定義、メトリクスの定義などを含みます。\n\n### g3tiles\n\n作業中のリバースプロキシソリューション。\n\nSphinx を使用して生成された g3tiles リファレンス\nドキュメントは、[Read the Docs](https://g3-project.readthedocs.io/projects/g3tiles/en/latest/)\nでオンラインで参照できます。\n詳細な設定形式、ログ形式、メトリクスの定義などを含みます。\n\n### g3bench\n\nHTTP 1.x、HTTP 2、HTTP 3、TLSハンドシェイク、DNS、Cloudflare Keylessをサポートするベンチマークツール。\n\n詳細な紹介については、[g3bench](g3bench/README.md) を参照してください。\n\n### g3mkcert\n\nルートCA / 中間CA / TLSサーバー / TLSクライアント証明書を作成するツール。\n\n### g3fcgen\n\ng3proxyのための偽の証明書ジェネレーター。\n\n### g3iploc\n\ng3proxyのGeoIPサポートのためのIPロケーションルックアップサービス。\n\n### g3keymess\n\nCloudflare keylessサーバーの簡単な実装。\n\n## 対応プラットフォーム\n\n現在、完全にサポートされているのはLinuxのみです。コードはFreeBSD、NetBSD、macOS、Windowsでコンパイルされますが、そこでのテストは行っていません。\n\n他のプラットフォームのサポートを追加するためのPRを歓迎します。\n\n## 開発環境のセットアップガイド\n\n[Dev-Setup](doc/dev-setup.md) に従ってください。\n\n## 標準\n\n[Standards](doc/standards.md) に従ってください。\n\n## リリースとパッケージング\n\n各アプリの各リリースには *\\\u003cname\\\u003e-v\\\u003cversion\\\u003e* の形式でタグが設定されます。\nこれらのタグを使用してソースtarballを生成できます。\nまた、配布準備が整った各アプリにはdebおよびrpmパッケージファイルが追加されています。\n\nリリースビルドを行う場合:\n\n1. リリースtarballを生成する\n\n   ```shell\n   # \u003cname\u003e-v\u003cversion\u003e のタグがある場合\n   ./scripts/release/build_tarball.sh \u003cname\u003e-v\u003cversion\u003e\n   # 使用可能なタグがない場合、gitリビジョン（例: HEAD）を指定する必要があります\n   ./scripts/release/build_tarball.sh \u003cname\u003e \u003crev\u003e\n   ```\n\n   すべてのベンダーソースはソースtarballに追加されるため、ソースtarballを保存し、コンパイラと依存関係がインストールされている任意の場所でオフラインでビルドできます。\n\n2. パッケージをビルドする\n\n   debパッケージの場合:\n   ```shell\n   tar xf \u003cname\u003e-\u003cversion\u003e.tar.xz\n   cd \u003cname\u003e-\u003cversion\u003e\n   ./build_deb_from_tar.sh\n   ```\n\n   rpmパッケージの場合:\n   ```shell\n   rpmbuild -ta ./\u003cname\u003e-\u003cversion\u003e.tar.xz\n   # 失敗した場合、次のコマンドを手動で実行できます:\n   tar xvf \u003cname\u003e-\u003cversion\u003e.tar.xz ./\u003cname\u003e-\u003cversion\u003e/\u003cname\u003e.spec\n   cp \u003cname\u003e-\u003cversion\u003e.tar.xz ~/rpmbuild/SOURCES/\n   rpmbuild -ba ./\u003cname\u003e-\u003cversion\u003e/\u003cname\u003e.spec\n   ```\n\ngitリポジトリから直接パッケージをビルドする場合:\n\n- debパッケージの場合:\n\n  ```shell\n  ./build_deb_from_git.sh \u003cname\u003e\n  ```\n\n- rpmパッケージの場合:\n\n  ```shell\n  ./build_rpm_from_git.sh \u003cname\u003e\n  ```\n\n### 事前ビルドパッケージ\n\n本番環境にインストールする場合は、自分でパッケージをビルドすることをお勧めします。\n\nテスト目的の場合、いくつかのパッケージをビルドして\n[cloudsmith](https://cloudsmith.io/~g3-oqh/repos/) にアップロードしました。インストール手順はそこにあります。\n\n### Dockerイメージのビルド\n\n各アプリの *docker* フォルダーの下にDockerfile(s)があります。ビルドコマンドは次のようになります\n\n```shell\n# ソースルートディレクトリで実行します\ndocker build -f \u003capp\u003e/docker/debian.Dockerfile . -t \u003capp\u003e:\u003ctag\u003e\n# ソースコードなしでビルドします\ndocker build -f \u003capp\u003e/docker/debian.Dockerfile github.com/bytedance/g3 -t \u003capp\u003e:\u003ctag\u003e\n# ソースtarballがある場合、そのtarballのURLも使用できます\n```\n\n### 静的リンク\n\n[Static Linking](doc/static-linking.md) を参照してください。\n\n### 異なるOpenSSLバリアントでのビルド\n\n[OpenSSL Variants](doc/openssl-variants.md) を参照してください。\n\n### LTSバージョン\n\n[Long-Term Support](doc/long-term_support.md) を参照してください。\n\n## 貢献\n\n詳細については [Contributing](CONTRIBUTING.md) を参照してください。\n\n## 行動規範\n\n詳細については [Code of Conduct](CODE_OF_CONDUCT.md) を参照してください。\n\n## セキュリティ\n\nこのプロジェクトで潜在的なセキュリティ問題を発見した場合、またはセキュリティ問題を発見したと思われる場合は、\n[セキュリティセンター](https://security.bytedance.com/src) または [脆弱性報告メール](mailto:sec@bytedance.com)\nを通じてBytedance Securityに通知してください。\n\n公開のGitHub issueを作成しないでください。\n\n## ライセンス\n\nこのプロジェクトは [Apache-2.0 License](LICENSE) の下でライセンスされています。\n","funding_links":[],"categories":["Rust","Proxy server (Forward Proxy)","Recently Updated","Development tools","Applications","大厂开源"],"sub_categories":["Popular Proxy servers","[Who Wants to Be a Millionare](https://www.boardgamecapital.com/who-wants-to-be-a-millionaire-rules.htm)","Profiling","Web Servers","字节开源"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2Fg3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytedance%2Fg3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytedance%2Fg3/lists"}