Find a file
2026-02-10 07:24:23 +08:00
.cargo update packages 2025-10-25 14:34:29 +08:00
.circleci build package for opensuse/leap 16.0 2025-10-16 14:51:33 +08:00
.github g3bench: add thrift compact protocol testcase 2026-02-10 07:24:23 +08:00
ansible ansible: switch to use the rolling binary package repo 2024-06-18 17:10:15 +08:00
doc g3proxy: add ldap user group 2026-02-02 22:56:08 +08:00
g3bench g3bench: add thrift compact protocol testcase 2026-02-10 07:24:23 +08:00
g3fcgen update package build files 2026-01-10 21:48:51 +08:00
g3iploc bump MSRV to 1.90 2025-12-26 22:53:05 +08:00
g3keymess g3-dpi: support protocol inspection for LDAP 2026-01-14 13:48:17 +08:00
g3mkcert update package build files 2026-01-10 21:48:51 +08:00
g3proxy g3proxy: ldap extended response OID is optional 2026-02-06 23:00:22 +08:00
g3statsd bump MSRV to 1.90 2025-12-26 22:53:05 +08:00
g3tiles support set tcp max segment size in listen config 2026-01-14 09:36:39 +08:00
lib g3bench: add thrift compact protocol testcase 2026-02-10 07:24:23 +08:00
scripts g3bench: add thrift compact protocol testcase 2026-02-10 07:24:23 +08:00
sphinx g3proxy: introduce a cache layer for remote user passwords 2026-02-05 21:02:03 +08:00
.cirrus.yml update packages and FreeBSD CI image (#977) 2025-11-26 11:03:23 +08:00
.clippy.toml style change for username_params_to_escaper 2025-09-11 09:10:56 +08:00
.dockerignore misc update 2024-07-12 10:29:36 +08:00
.gitignore add sphinx doc for g3tiles (#202) 2024-04-08 16:48:12 +08:00
.readthedocs.yaml move sphinx together and support to upload to Read the Docs (#411) 2024-12-03 12:51:57 +08:00
Cargo.lock add thrift var int encoder/decoder 2026-02-10 07:24:23 +08:00
Cargo.toml build(deps): bump memchr from 2.7.6 to 2.8.0 2026-02-09 07:38:39 +08:00
CODE_OF_CONDUCT.md initial commit 2023-03-09 17:55:45 +08:00
CONTRIBUTING.md update doc 2023-04-11 14:58:17 +08:00
deny.toml allow OpenSSL license 2025-06-09 16:17:54 +08:00
G3-FEISHU-USER-GROUP.png rename user group image 2023-04-12 11:32:57 +08:00
justfile add basic example of justfile (#345) 2024-10-08 20:02:29 +08:00
LICENSE update license info 2023-04-07 11:28:57 +08:00
LICENSE-FOREIGN add doc about aws-lc 2024-01-03 18:58:28 +08:00
NOTICE update license info 2023-04-07 11:28:57 +08:00
README.ja_JP.md bump MSRV to 1.90 2025-12-26 22:53:05 +08:00
README.md bump MSRV to 1.90 2025-12-26 22:53:05 +08:00
README.zh_CN.md bump MSRV to 1.90 2025-12-26 22:53:05 +08:00

minimum rustc: 1.90 License: Apache 2.0 codecov docs

G3 Project

中文版 README | 日本語 README

About

This is the project we used to build enterprise-oriented generic proxy solutions, including but not limited to proxy / reverse proxy (WIP) / load balancer (TBD) / NAT traversal (WIP).

Applications

The G3 project consists of many applications, each of which has a separate subdirectory containing its own code, documentation, etc.

In addition to the application directories, there are some public directories:

  • doc Contains project-level documentation.
  • sphinx is used to generate HTML reference documents for each application.
  • scripts Contains various auxiliary scripts, including coverage testing, packaging scripts, etc.

g3proxy

A generic forward proxy solution, but you can also use it as tcp streaming / transparent proxy / reverse proxy as we have basic support built in.

Feature highlights

  • Async Rust: fast and reliable
  • Http1 / Socks5 forward proxy protocol, SNI Proxy and TCP TPROXY
  • Support easy-proxy and masque/http Well-Known URI
  • Proxy Chaining, with support for dynamic selection of upstream proxies
  • Plenty of egress route selection methods, with support for custom egress selection agent
  • TCP/TLS Stream Proxy, Basic HTTP Reverse Proxy
  • TLS over OpenSSL / BoringSSL / AWS-LC / AWS-LC-FIPS / Tongsuo, and even rustls
  • TLS MITM interception, decrypted traffic dump, HTTP1/HTTP2/IMAP/SMTP interception
  • ICAP adaptation for HTTP1/HTTP2/IMAP/SMTP, can integrate seamlessly with 3rd-party security products
  • Graceful reload
  • Customizable load balancing and failover strategies
  • User Auth, with a rich set of config options
  • Can set differential site config for each user
  • Rich ACL/Limit rules, at ingress / egress / user level
  • Rich monitoring metrics, at ingress / egress / user / user-site level
  • Support for a variety of observability tools

README | User Guide | Reference Doc

g3statsd

A StatsD compatible stats aggregator.

README | Reference Doc

g3tiles

A work in progress reverse proxy solution.

Reference Doc

g3bench

A benchmark tool that supports:

  • HTTP: HTTP/1.1, HTTP/2, HTTP/3
  • WebSocket
  • TLS Handshake
  • DNS: UDP, TCP, DNS over TLS, DNS over HTTP, DNS over QUIC, DNS over HTTP/3
  • Thrift RPC
  • Cloudflare Keyless

README

g3mkcert

A tool to make root CA / intermediate CA / TLS server / TLS client / TLCP server / TLCP client certificates.

README

g3fcgen

Fake certificate generator for g3proxy.

README

g3iploc

IP location lookup service for g3proxy GeoIP support.

README

g3keymess

A simple implementation of Cloudflare keyless server.

README | Reference Doc

Target Platform

Linux is fully supported.

The code also compiles on the following platforms:

  • macOS
  • Windows >= 10
  • FreeBSD >= 14.3
  • NetBSD >= 10.1
  • OpenBSD >= 7.8

Dev-env Setup Guide

Follow Dev-Setup.

Standards

Follow Standards.

Build, Package and Deploy

Pre-Built packages can be found at cloudsmith.

But it is still recommended to build packages yourself, see Build and Package for more details.

LTS Version

See Long-Term Support.

Contribution

Please check Contributing for more details.

Code of Conduct

Please check Code of Conduct for more details.

Security

If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our security center or vulnerability reporting email.

Please do not create a public GitHub issue.

License

This project is licensed under the Apache-2.0 License.

g3proxy has joined 404Starlink