Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
4e35f94
add initial skeleton crate setup for apple network extension
GlenDC Feb 23, 2026
92c1916
add prototype code for tproxy support on Apple platforms
GlenDC Feb 24, 2026
413f403
fix and improve macos network ext code
GlenDC Feb 24, 2026
ffaeae4
more minor fixes after last improvements; linting passes now
GlenDC Feb 24, 2026
ef17606
add CI job for rama-ffi example (tproxy)
GlenDC Feb 24, 2026
0fe7cd8
fix linting issues
GlenDC Feb 24, 2026
2cfb321
first class support for hybrid happy eye balls in dns
GlenDC Feb 25, 2026
25f4ca1
make use of improved udp bind+cpnn capabilities in tproxy + def
GlenDC Feb 25, 2026
3df1efd
fix ci issue for tproxy example
GlenDC Feb 25, 2026
1672e17
change to real bundle ids for example macos tproxy
GlenDC Feb 25, 2026
9e98b17
broken state in refactor
GlenDC Feb 26, 2026
2d07c39
fix refactor + improvements regarding API contracts
GlenDC Feb 26, 2026
d0aab61
improve example host app (with toolbar etc...)
GlenDC Feb 26, 2026
1c0908b
minor improvements to proxy provider
GlenDC Feb 26, 2026
8d58bea
update deps
GlenDC Feb 26, 2026
47b6e8f
fix QA for rama-net-apple-networkextension
GlenDC Feb 27, 2026
1bb17e5
improve logging of NE + example
GlenDC Feb 27, 2026
0980197
improve tproxy support regarding rule: use host
GlenDC Feb 27, 2026
279f97a
use unified os logging for tproxy example
GlenDC Feb 27, 2026
68b3c43
make first tcp interception work
GlenDC Feb 27, 2026
e71cbdf
remove log exports (does not work with sandbox)
GlenDC Feb 27, 2026
52bf7b9
start playing with expanding mitm example more
GlenDC Feb 28, 2026
58f706a
dirty socks5 flow ready for tproxy style flow
GlenDC Mar 1, 2026
237fb31
migrate SOCKS5 relay flow to rama-socks5 as reusable block
GlenDC Mar 1, 2026
0c6d8f3
test + integrate socks5 MITM relay into tproxy example
GlenDC Mar 1, 2026
ede4936
add debug traces
GlenDC Mar 1, 2026
873b3e8
start working towards tls proxy relay logic in tproxy
GlenDC Mar 2, 2026
fc598da
create initial version of self_signed_server_auth_mirror_cert
GlenDC Mar 2, 2026
9c097d5
separate out cert gen logic out of acceptor_data logic
GlenDC Mar 2, 2026
a2caed9
add tests for cert generation in rama-tls-boring
GlenDC Mar 2, 2026
26d19ba
rename ProxyRequest to StreamBridge to clarify function better
GlenDC Mar 2, 2026
f7d36da
wip relay proxy (boring) + tunnel improv
GlenDC Mar 3, 2026
56b03c9
drop dns feature from rama-socks5
GlenDC Mar 3, 2026
0acacaa
refactor mitm relay support in rama-socks5
GlenDC Mar 3, 2026
91942e0
initial MITM boring relay impl
GlenDC Mar 3, 2026
20829cd
do not fallback CN to localhost for cert gen
GlenDC Mar 3, 2026
dcd01b6
support Negotiated Params + KeyLogging + more in MITM boring tls relay
GlenDC Mar 3, 2026
180164d
support easy self-signed MITM relay (boring)
GlenDC Mar 3, 2026
8e4add7
merge tls stream to root for rama-tls-boring
GlenDC Mar 3, 2026
006807a
add initial MITM crt issuer code (boring)
GlenDC Mar 5, 2026
c941a37
broken state for tls peek integration for tproxy_rs
GlenDC Mar 5, 2026
4dcc532
fix tls loading for tproxy example
GlenDC Mar 5, 2026
7d18933
pass in app (sandbox) dir via ffi to rama rust code
GlenDC Mar 5, 2026
f17c4e2
small step towards L7 HTTP MITM
GlenDC Mar 5, 2026
f2dd1f7
fix QA linting (beta) in rama-http-headers
GlenDC Mar 6, 2026
f543c52
add initial untested proxy relay code to rama-http-backend
GlenDC Mar 6, 2026
e46daf9
fix clippy beta lints (.... 1.95)
GlenDC Mar 6, 2026
ec24b5e
update deps
GlenDC Mar 6, 2026
bec1db1
provide clean justfile glob command + cargo sorting
GlenDC Mar 6, 2026
6f70fe9
add tests for GracefulStream
GlenDC Mar 6, 2026
6ef3ec1
move rama-http-backend tests to its own file
GlenDC Mar 6, 2026
7738b33
improve MITM code (http relay) + add first basic tests
GlenDC Mar 6, 2026
e19c5d7
add concurrency tests for MITM relay (http)
GlenDC Mar 6, 2026
cedae86
reuse DefaultErrorResponse also in non-svc-mw flows
GlenDC Mar 6, 2026
8e0b499
ensure only one of two features need to be done
GlenDC Mar 6, 2026
443e509
add example + test for MITM Relay (TLS+HTTP) proxy using boring
GlenDC Mar 6, 2026
04ecaa1
split I/O off from stream module
GlenDC Mar 7, 2026
afb3d1e
rename StreamBridge to BridgeIo
GlenDC Mar 7, 2026
726e41a
switcharoo Bridge-capabilities into peekaboo
GlenDC Mar 7, 2026
9457f55
start working towards getting http MITM relay as-a-service
GlenDC Mar 8, 2026
746d148
fix MITM HTTP relay svc
GlenDC Mar 8, 2026
f5dbb25
introduce io-to-bridge-io layer in rama-tcp
GlenDC Mar 8, 2026
4d07898
simplify examples/http_mitm_relay_proxy_boring code
GlenDC Mar 8, 2026
0868494
fix feature gating in rama-tcp
GlenDC Mar 8, 2026
fd9e094
rename StreamForwardService to IoForwardService
GlenDC Mar 8, 2026
627ec09
drop Forward svc (Reuse existing blocks)
GlenDC Mar 8, 2026
a8a2292
fix tproxy example since last couple of commits
GlenDC Mar 8, 2026
27f4c5f
provide svc support for socks5 MITM relay support
GlenDC Mar 9, 2026
1a27fc4
use 1st class bridge support to hyper-simplify tproxy TCP example
GlenDC Mar 9, 2026
14060b1
make sure tls/http is peeked-first
GlenDC Mar 9, 2026
0982ce0
add MITM relay upgrade http connect svc
GlenDC Mar 10, 2026
38d7979
delete upgrade/http_connect.rs and replace with explicit proxy default
GlenDC Mar 10, 2026
51248ef
fix rama imports in 2 examples
GlenDC Mar 10, 2026
cdc8fc6
integrate timeout IO in rama-core
GlenDC Mar 10, 2026
8b06096
improve timeout IO code + more tests
GlenDC Mar 10, 2026
518456d
cleanup tproxy (macos) example
GlenDC Mar 10, 2026
30b16b5
add timeout protection to macos tproxy example
GlenDC Mar 10, 2026
322f86c
drop Interface in rama-net
GlenDC Mar 10, 2026
6116d10
fixes and improvements since interface removal
GlenDC Mar 10, 2026
1462337
remove timeout on Apple NE IO
GlenDC Mar 10, 2026
f3879d6
fix assert_eq in linux + replace hijack domain in tproxy
GlenDC Mar 10, 2026
97b2515
add TODOS and improve logs
GlenDC Mar 10, 2026
fba2f75
use DpiProxyCredentialExtractor in tproxy
GlenDC Mar 10, 2026
f2020b2
more wip progress (broken this time)
GlenDC Mar 11, 2026
fff6ed4
fix code + tproxy example
GlenDC Mar 11, 2026
10e4b74
implement ping endpoint for hijack tproxy svc
GlenDC Mar 11, 2026
0295945
support websocket relay (IO forward) in tproxy example
GlenDC Mar 11, 2026
cf5905b
fix QA linting
GlenDC Mar 11, 2026
640cf97
Merge branch 'main' into feat/apple-network-extensions
GlenDC Mar 11, 2026
bb6479f
fix docs byte tracker
GlenDC Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
34 changes: 31 additions & 3 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ env:
CARGO_TERM_COLOR: always
RUST_TOOLCHAIN: stable
RUST_TOOLCHAIN_NIGHTLY: nightly
RUST_TOOLCHAIN_MSRV: 1.91.0
RUST_TOOLCHAIN_MSRV: 1.93.0
RUST_TOOLCHAIN_BETA: beta
CARGO_INCREMENTAL: 0
CARGO_PROFILE_TEST_DEBUG: 0
Expand All @@ -20,7 +20,7 @@ jobs:
strategy:
matrix:
toolchain:
- 1.91.0 # MSRV
- 1.93.0 # MSRV
- stable
- beta
os:
Expand Down Expand Up @@ -57,7 +57,7 @@ jobs:
strategy:
matrix:
toolchain:
- 1.91.0 # MSRV
- 1.93.0 # MSRV
- stable
- beta
os:
Expand Down Expand Up @@ -135,6 +135,33 @@ jobs:
- name: Run example tests (cargo test)
run: cargo nextest run --all-features --examples --workspace --no-tests=pass

test-ffi-apple-example-transparent-proxy:
runs-on: macos-latest
needs:
- precheck-rust
- precheck-docs
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{env.RUST_TOOLCHAIN}}
targets: aarch64-apple-darwin, x86_64-apple-darwin
- uses: Swatinem/rust-cache@v2
with:
key: macos-latest-${{ env.RUST_TOOLCHAIN }}-apple-transparent-proxy
env-vars: "RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}"
- name: Check Xcode toolchain
run: |
xcodebuild -version
xcrun --show-sdk-path
- name: Install just and xcodegen
run: brew install just xcodegen
- name: Run transparent proxy qa
working-directory: ./ffi/apple/examples/transparent_proxy
run: just qa

test-rust-linux-musl:
strategy:
matrix:
Expand Down Expand Up @@ -520,6 +547,7 @@ jobs:
- precheck-rust-tier2
- check-rust
- test-rust-base
- test-ffi-apple-example-transparent-proxy
- test-rust-linux-musl
- test-rust-extra
- test-rust-e2e
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ where the parameter types `Request` and `Response` make no sense.
* **Memory Management**: Updated internal usage of `SmallVec` and `SmolStr` to reduce allocations across the workspace.
* These dependencies are also re-exported under `rama-utils`
* **Upstream Sync**: Massive sync with upstream forks including `hyper`, `h2` (1xx informational responses support), `tungstenite`, and `tower-http`.
* **MSRV**: Bumped Rust Minimum Supported Rust Version to **1.91**.
* **MSRV**: Bumped Rust Minimum Supported Rust Version to **1.93**.
* **EasyWebClient**: Refactored to be more explicit with `connector_builder` and support for `jit_layers`.

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ just qa

Before you can do this you do require the following to be installed:

* `Rust`, version 1.91 or beyond: <https://www.rust-lang.org/tools/install>
* `Rust`, version 1.93 or beyond: <https://www.rust-lang.org/tools/install>
* `just` (to run _just_ (config) files): <https://just.systems/man/en/packages.html>

What you will also need to have installed is:
Expand Down
Loading
Loading