Enterprise-oriented Generic Proxy Solutions

Overview

minimum rustc: 1.66 License: Apache 2.0

G3 Project

中文版 README

About

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

Components

G3 Project is make up of many components.

The project level docs resides in the doc subdirectory, and you should see the links below for the important ones. Each component will have its own doc in its doc subdirectory.

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.

See g3proxy for detailed introduction.

g3tiles

A work in progress reverse proxy solution.

g3bench

A benchmark tool for the test of g3proxy.

g3fcgen

Fake certificate generator for g3proxy.

Target Platform

Only Linux is supported currently. But we are open to PRs to add support to other platforms.

Dev-env Setup Guide

Follow dev-setup.

Standards

Follow standards.

Release and Packaging

We will set tags for each release of each component, in the form <name>-v<version>. You can use these tags to generate source tarballs. And we have added deb and rpm package files for each component that is ready for distribution.

If you want to do a release build:

  1. generate a release tarball

    ./scripts/release/build_tarball.sh <name>-v<version>

    All vendor sources will be added to the source tarball, so you can save the source tarball and build it offline at anywhere that have the compiler and dependencies installed.

  2. build the package

    For deb package:

    tar xf <name>-<version>.tar.xz
    cd <name>-<version>
    ./build_deb_from_tar.sh

    For rpm package:

    tar xvf <name>-<version>.tar.xz ./<name>-<version>/<name>.spec
    cp <name>-<version>.tar.xz ~/rpmbuild/SOURCES/
    rpmbuild -ba ./<name>-<version>/<name>.spec

If you want to build a package directly from the git repo:

  • For deb package:

    ./build_deb_from_git.sh <name>
  • For rpm package:

    ./build_rpm_from_git.sh <name>

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.

Comments
  • build(deps): bump clap from 4.2.2 to 4.2.3

    build(deps): bump clap from 4.2.2 to 4.2.3

    Bumps clap from 4.2.2 to 4.2.3.

    Release notes

    Sourced from clap's releases.

    v4.2.3

    [4.2.3] - 2023-04-18

    Features

    • Command::styles for theming help/errors (behind unstable-styles)
    Changelog

    Sourced from clap's changelog.

    [4.2.3] - 2023-04-18

    Features

    • Command::styles for theming help/errors (behind unstable-styles)
    Commits
    • b99c50f chore: Release
    • 3f46258 docs: Update changelog
    • b0e0c59 Merge pull request #4843 from epage/style
    • cbea23e style: Make clippy happy
    • 5ca3b2f refactor(help): Shrink binary size
    • ec7040e style: Make clippy happy
    • 57974be refactor(help): Future proof styling
    • e10e2ad refactor(help): Split out separate usage style
    • 8fd0a93 refactor(help): Clarify style meaning
    • 7cf08e6 refactor(help): Remove unused hint
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump h2 from 0.3.17 to 0.3.18

    build(deps): bump h2 from 0.3.17 to 0.3.18

    Bumps h2 from 0.3.17 to 0.3.18.

    Release notes

    Sourced from h2's releases.

    v0.3.18

    What's Changed

    Changelog

    Sourced from h2's changelog.

    0.3.18 (April 17, 2023)

    • Fix panic because of opposite check in is_remote_local().
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump clap from 4.2.1 to 4.2.2

    build(deps): bump clap from 4.2.1 to 4.2.2

    Bumps clap from 4.2.1 to 4.2.2.

    Release notes

    Sourced from clap's releases.

    v4.2.2

    [4.2.2] - 2023-04-13

    Internal

    • Update dependencies
    Changelog

    Sourced from clap's changelog.

    [4.2.2] - 2023-04-13

    Internal

    • Update dependencies
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump pyo3 from 0.18.2 to 0.18.3

    build(deps): bump pyo3 from 0.18.2 to 0.18.3

    Bumps pyo3 from 0.18.2 to 0.18.3.

    Release notes

    Sourced from pyo3's releases.

    PyO3 0.18.3

    This release fixes an issue with PyDateTime::type_object() incorrectly returning the type object for PyDate, which would cause some is_instance checks to behave incorrectly.

    In addition, this release contains a handful of minor quality-of-life corrections over PyO3 0.18.2.

    Thank you to the following users for the improvements:

    @​adamreichold @​davidhewitt @​decathorpe @​ijl @​mejrs @​messense @​sollyucko @​willstott101 @​wjones127

    Changelog

    Sourced from pyo3's changelog.

    [0.18.3] - 2023-04-13

    Added

    • Add GILProtected<T> to mediate concurrent access to a value using Python's global interpreter lock (GIL). #2975
    • Support PyASCIIObject / PyUnicode and associated methods on big-endian architectures. #3015
    • Add FFI definition _PyDict_Contains_KnownHash() for CPython 3.10 and up. #3088

    Fixed

    • Fix compile error for #[pymethods] and #[pyfunction] called "output". #3022
    • Fix compile error in generated code for magic methods implemented as a #[staticmethod]. #3055
    • Fix is_instance for PyDateTime (would incorrectly check for a PyDate). #3071
    • Fix upstream deprecation of PyUnicode_InternImmortal since Python 3.10. #3071
    Commits
    • 5cdc133 release: 0.18.3
    • a8dd453 PEP 623: wstr, wstr_length, state changes
    • 9ebdcb7 Define _PyDict_Contains_KnownHash() FFI for CPython 3.10 or later
    • 7cc2644 Fix redundant imports in doc tests thereby fixing the careful CI job.
    • 8498003 docs: show pattern for self.class.name in repr
    • 63ff262 fix typo DateType -> DateTimeType, fixes #3069
    • 48c0655 Add wrapper for PyASCIIObject state bitfield accesses based on bindgen
    • ce288e6 CI: Pin inventory to 0.3.4 in MSRV job
    • 9dccad3 Emit a better error for bad argument names
    • 24d2ddd Fix function name shadowing
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump h2 from 0.3.16 to 0.3.17

    build(deps): bump h2 from 0.3.16 to 0.3.17

    Bumps h2 from 0.3.16 to 0.3.17.

    Release notes

    Sourced from h2's releases.

    v0.3.17

    What's Changed

    • Add Error::is_library() method to check if the originated inside h2.
    • Add max_pending_accept_reset_streams(usize) option to client and server builders.
    • Fix theoretical memory growth when receiving too many HEADERS and then RST_STREAM frames faster than an application can accept them off the queue. (CVE-2023-26964)
    Changelog

    Sourced from h2's changelog.

    0.3.17 (April 13, 2023)

    • Add Error::is_library() method to check if the originated inside h2.
    • Add max_pending_accept_reset_streams(usize) option to client and server builders.
    • Fix theoretical memory growth when receiving too many HEADERS and then RST_STREAM frames faster than an application can accept them off the queue. (CVE-2023-26964)
    Commits
    • af4bcac v0.3.17
    • d3f37e9 feat: add max_pending_accept_reset_streams(n) options
    • 5bc8e72 fix: limit the amount of pending-accept reset streams
    • 8088ca6 feat: add Error::is_library method
    • 481c31d chore: Use Cargo metadata for the MSRV build job
    • d3d50ef chore: Replace unmaintained/outdated GitHub Actions
    • 45b9bcc chore: set rust-version in Cargo.toml (#664)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump serde_json from 1.0.95 to 1.0.96

    build(deps): bump serde_json from 1.0.95 to 1.0.96

    Bumps serde_json from 1.0.95 to 1.0.96.

    Release notes

    Sourced from serde_json's releases.

    v1.0.96

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump capnp-rpc from 0.16.1 to 0.16.2

    build(deps): bump capnp-rpc from 0.16.1 to 0.16.2

    Bumps capnp-rpc from 0.16.1 to 0.16.2.

    Commits
    • c79ad16 prepare for capnp-rpc-v0.16.2 release
    • 1ab1ab6 tweak comment
    • daf6cfa expand comment on CapabilityServerSet to mention WeakCapabilityServerSet
    • 80b95c1 Merge pull request #389 from canarysnort01/capabilityserverset-weak-refs
    • c62e3bc Add WeakCapabilityServerSet
    • 27721b7 Merge pull request #387 from danielzfranklin/patch-1
    • 8a7dff9 Improve getting started instructions
    • 62e9cd5 Merge pull request #384 from marmeladema/fix-miri
    • d54b031 Ignore some tests under miri that are spawning a process because its not supp...
    • e31a5e4 Avoid some ptr-to/from-int casts
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump socket2 from 0.5.1 to 0.5.2

    build(deps): bump socket2 from 0.5.1 to 0.5.2

    Bumps socket2 from 0.5.1 to 0.5.2.

    Changelog

    Sourced from socket2's changelog.

    0.5.2

    Commits
    • 5bdcbf0 Release v0.5.2
    • bc1d8c0 Use more types from windows_sys crate
    • 81d75df Add SockAddr::as_unix
    • 3deba62 Cleanup PartialEq and Hash impls for SockAddr
    • c394ac3 Add SockAddr::set_length
    • 6e48562 Move SockAddr::unix down
    • d9ffccc Don't install curl for FreeBSD CI
    • 783b134 Update to FreeBSD 13.1 on Cirrus CI
    • c5c3101 Fix missing curl dependencies on Cirrus CI
    • f011ec4 Add Protocol::UDPLITE
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump serde from 1.0.159 to 1.0.160

    build(deps): bump serde from 1.0.159 to 1.0.160

    Bumps serde from 1.0.159 to 1.0.160.

    Release notes

    Sourced from serde's releases.

    v1.0.160

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump webpki-roots from 0.22.6 to 0.23.0

    build(deps): bump webpki-roots from 0.22.6 to 0.23.0

    Bumps webpki-roots from 0.22.6 to 0.23.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Owner
Bytedance Inc.
Bytedance Inc.
UDP proxy with Proxy Protocol and mmproxy support

udppp UDP proxy with Proxy Protocol and mmproxy support. Features Async Support Proxy Protocol V2 SOCKET preserve client IP addresses in L7 proxies(mm

b23r0 10 Dec 18, 2022
Lightweight proxy that allows redirect HTTP(S) traffic through a proxy.

Proxyswarm Proxyswarm is a lightweight proxy that allows redirect HTTP(S) traffic through a proxy. WARNING: This app isn't recomended for download lar

Jorge Alejandro Jimenez Luna 4 Apr 16, 2022
Web3-proxy: a fast caching and load balancing proxy for web3 (Ethereum or similar) JsonRPC servers.

web3-proxy Web3-proxy is a fast caching and load balancing proxy for web3 (Ethereum or similar) JsonRPC servers. Signed transactions (eth_sendRawTrans

null 55 Jan 8, 2023
A TCP proxy using HTTP - Reach SSH behind a Nginx reverse proxy

?? TCP over HTTP ?? The Questions ?? What does it do? You can proxy TCP traffic over HTTP. A basic setup would be: [Your TCP target] <--TCP-- [Exit No

Julian 185 Dec 15, 2022
A generic Rust based Bigtable connection library implemented using gRPC

A generic Rust based Bigtable connection library refactored out the solana mono-repo so that can be shared for different applications.

Lijun Wang 3 Sep 25, 2022
Easy per application transparent proxy built on cgroup.

cproxy can redirect TCP and UDP traffic made by a program to a proxy, without requiring the program supporting a proxy. Compared to many existi

Xiangru Lian 263 Dec 20, 2022
server security proxy write by Rust

server-security-proxy server security proxy write by Rust how to use config toml file

baoyachi. Aka Rust Hairy crabs 3 May 24, 2021
A tcp over http2 + tls proxy

mtunnel A tcp over http2 + tls proxy. Usage 1. get certificates, by following steps. 2. make your config client config: { "local_addr": "127.0.0.1

cssivision 9 Sep 5, 2022
A versatile and efficient proxy framework with nice features suitable for various use cases.

A versatile and efficient proxy framework with nice features suitable for various use cases.

null 1.7k Jan 9, 2023
Hudsucker is a MITM HTTP/S proxy written in Rust.

hudsucker Hudsucker is a MITM HTTP/S proxy written in Rust. Features Modify HTTP/S requests Modify HTTP/S responses Modify websocket messages Usage Fo

null 86 Dec 25, 2022
Simple and fast layer 4 proxy in Rust

Fourth 这一波在第四层。 English Fourth是一个Rust实现的Layer 4代理,用于监听指定端口TCP流量,并根据规则转发到指定目标。 功能 监听指定端口代理到本地或远端指定端口 监听指定端口,通过TLS ClientHello消息中的SNI进行分流 安装方法 为了确保获得您架构

Rui Li 17 Nov 8, 2022
Drop-in proxy for Discord gateway connections and sessions allowing for zero downtime deploys

gateway-proxy This is a very hacky project, so it might stop working if Discord changes their API core. This is unlikely, but keep that in mind while

Jens Reidel 39 Nov 26, 2022
Minecraft proxy

mc-proxy This is a fully functional proxy for online and offline-mode Minecraft servers. It is based on an optimized, custom-made packet parser for Mi

null 21 Oct 7, 2022
A remote shell, TCP tunnel and HTTP proxy for Replit.

Autobahn A remote shell, TCP tunnel and HTTP proxy for Replit. Hybrid SSH/HTTP server for Replit. Based on leon332157/replish. Autobahn runs a WebSock

Patrick Winters 12 Sep 24, 2022
Hybrid Traffic Mesh Proxy

Hybrid Traffic Mesh Proxy L7 proxy on kubernetes dependencies: routeagent: refresh proxy routes fetched with k8s sdk register routes curl -v --unix-s

Goku 1 Feb 11, 2022
Shotover: L7 data-layer proxy

Shotover: L7 data-layer proxy

null 64 Dec 16, 2022
A high performence Socks5 proxy server with bind/reverse support implementation by Rust.

rsocx A high performence Socks5 proxy server with bind/reverse support implementation by Rust Features Async-std No unsafe code Single executable Linu

b23r0 259 Jan 6, 2023
Image proxy and embed generator.

January Description Image proxy and metadata scraper. Features: Can scrape metadata from websites, e.g. OpenGraph Can scrape embeds from websites, e.g

Revolt 26 Dec 26, 2022
A tcp proxy server/client which exchange the data in temp files

ftcp A tcp proxy server/client which exchange the data in temp files 通过在临时文件中交换数据来进行TCP代理的一个服务端/客户端 学校内网中有针对教学楼的防火墙导致教室电脑难以上网( 但学校内建有公共ftp服务器,因此就有了这个借

Daile Liu 2 Feb 17, 2022