exp-mitmproxy-rs 0.12.11.post1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- exp_mitmproxy_rs-0.12.11.post1/.cargo/config.toml +14 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/FUNDING.yml +1 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/RELEASING.md +30 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/actions/setup/action.yml +31 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/dependabot.yml +27 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/python-version.txt +1 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/scripts/build-macos-redirector.sh +58 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/scripts/pin-versions.py +17 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/scripts/release +27 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/workflows/autofix.yml +56 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/workflows/ci.yml +149 -0
- exp_mitmproxy_rs-0.12.11.post1/.github/workflows/docs.yml +55 -0
- exp_mitmproxy_rs-0.12.11.post1/.gitignore +10 -0
- exp_mitmproxy_rs-0.12.11.post1/CHANGELOG.md +358 -0
- exp_mitmproxy_rs-0.12.11.post1/CONTRIBUTING.md +58 -0
- exp_mitmproxy_rs-0.12.11.post1/Cargo.lock +4568 -0
- exp_mitmproxy_rs-0.12.11.post1/Cargo.toml +99 -0
- exp_mitmproxy_rs-0.12.11.post1/LICENSE +19 -0
- exp_mitmproxy_rs-0.12.11.post1/PKG-INFO +14 -0
- exp_mitmproxy_rs-0.12.11.post1/README.md +47 -0
- exp_mitmproxy_rs-0.12.11.post1/architecture.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/.gitignore +3 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/dns.py +23 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/local.conf +9 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/nonlocal.conf +8 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/openvpnserv.exe +0 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/plot.py +321 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/process.rs +78 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/py_echo_client.py +101 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/py_echo_server.py +54 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/wg_echo_client.py +100 -0
- exp_mitmproxy_rs-0.12.11.post1/benches/wg_echo_server.py +94 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/Cargo.toml +34 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/README.md +7 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/benches/contentviews.rs +61 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/hex_dump.rs +51 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/hex_stream.rs +85 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/lib.rs +132 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/msgpack.rs +148 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/existing_proto_definitions.rs +190 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/mod.rs +10 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/proto_to_yaml.rs +109 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/raw_to_proto.rs +195 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/reencode.rs +193 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/view_grpc.rs +263 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/view_protobuf.rs +264 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/protobuf/yaml_to_pretty.rs +130 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/src/test_inspect_metadata.rs +52 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/testdata/protobuf/mismatch.proto +5 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/testdata/protobuf/nested.proto +17 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/testdata/protobuf/simple.proto +5 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/testdata/protobuf/simple_package.proto +18 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-contentviews/testdata/protobuf/simple_service.proto +16 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/Cargo.toml +29 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/README.md +8 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/benches/syntax_highlight.rs +58 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/common.rs +94 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/css.rs +92 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/javascript.rs +84 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/lib.rs +109 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/xml.rs +71 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-highlight/src/yaml.rs +70 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/.swift-format +6 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/.swiftlint.yml +9 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/README.md +17 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/mitmproxy_macos/__init__.py +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/mitmproxy_macos/macos-certificate-truster.app/Contents/Info.plist +30 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/mitmproxy_macos/macos-certificate-truster.app/Contents/Resources/mitmproxy.icns +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/pyproject.toml +25 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/.gitignore +2 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/ExportOptions.plist +23 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/README.md +21 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/ipc/mitmproxy_ipc.pb.swift +733 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/ipc/utils.swift +116 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-1024.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-128.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-16.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-256.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-32.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-512.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/AppIcon.appiconset/logo-circle-64.png +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/Assets.xcassets/Contents.json +6 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/app.swift +123 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector/macos_redirector.entitlements +12 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector.xcodeproj/project.pbxproj +606 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +14 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/macos-redirector.xcodeproj/xcshareddata/xcschemes/macos-redirector.xcscheme +99 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/FlowExtensions.swift +135 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/Info.plist +16 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/InterceptConf.swift +76 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/ProcessInfoCache.swift +48 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/TransparentProxyProvider.swift +186 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/libproc-Bridging-Header.h +6 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/main.swift +15 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/redirector/network-extension/network_extension.entitlements +10 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-macos/version-info.toml +121 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/.gitignore +5 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/Cargo.toml +49 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/README.md +7 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/pytests/logger.rs +79 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/pytests/test_task.rs +103 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/contentviews.rs +166 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/dns_resolver.rs +114 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/lib.rs +159 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/process_info.rs +86 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/base.rs +99 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/local_redirector.rs +353 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/mod.rs +10 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/tun.rs +84 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/udp.rs +70 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/server/wireguard.rs +87 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/stream.rs +209 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/syntax_highlight.rs +45 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/task.rs +147 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/udp_client.rs +206 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/src/util.rs +99 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-rs/stubtest-allowlist.txt +7 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/README.md +13 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/LICENSE +1191 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/WINDIVERT_VERSION +1 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/WinDivert.dll +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/WinDivert.lib +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/WinDivert64.sys +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/mitmproxy_windows/__init__.py +34 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy-windows/pyproject.toml +23 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/__init__.py +13 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/__init__.pyi +69 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/_pyinstaller/__init__.py +7 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/_pyinstaller/hook-mitmproxy_linux.py +6 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/_pyinstaller/hook-mitmproxy_macos.py +3 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/_pyinstaller/hook-mitmproxy_rs.py +14 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/_pyinstaller/hook-mitmproxy_windows.py +3 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/certs.pyi +9 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/contentviews.pyi +37 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/dns.pyi +18 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/local.pyi +31 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/process_info.pyi +22 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/py.typed +0 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/syntax_highlight.pyi +19 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/tun.pyi +24 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/udp.pyi +30 -0
- exp_mitmproxy_rs-0.12.11.post1/mitmproxy_rs/wireguard.pyi +29 -0
- exp_mitmproxy_rs-0.12.11.post1/pyproject.toml +42 -0
- exp_mitmproxy_rs-0.12.11.post1/src/bin/process-list.rs +56 -0
- exp_mitmproxy_rs-0.12.11.post1/src/certificates/macos.rs +49 -0
- exp_mitmproxy_rs-0.12.11.post1/src/certificates/mod.rs +4 -0
- exp_mitmproxy_rs-0.12.11.post1/src/dns.rs +235 -0
- exp_mitmproxy_rs-0.12.11.post1/src/intercept_conf.rs +199 -0
- exp_mitmproxy_rs-0.12.11.post1/src/ipc/mitmproxy_ipc.proto +62 -0
- exp_mitmproxy_rs-0.12.11.post1/src/ipc/mitmproxy_ipc.rs +100 -0
- exp_mitmproxy_rs-0.12.11.post1/src/ipc/mod.rs +68 -0
- exp_mitmproxy_rs-0.12.11.post1/src/lib.rs +13 -0
- exp_mitmproxy_rs-0.12.11.post1/src/messages.rs +235 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/core.rs +124 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/icmp.rs +111 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/mod.rs +14 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/task.rs +147 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/tcp.rs +359 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/tests.rs +859 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/udp.rs +363 -0
- exp_mitmproxy_rs-0.12.11.post1/src/network/virtual_device.rs +108 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/linux.rs +217 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/macos.rs +724 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/mod.rs +132 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/tun.rs +213 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/udp.rs +161 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/windows.rs +133 -0
- exp_mitmproxy_rs-0.12.11.post1/src/packet_sources/wireguard.rs +388 -0
- exp_mitmproxy_rs-0.12.11.post1/src/processes/macos_icons.rs +110 -0
- exp_mitmproxy_rs-0.12.11.post1/src/processes/mod.rs +58 -0
- exp_mitmproxy_rs-0.12.11.post1/src/processes/nix_list.rs +163 -0
- exp_mitmproxy_rs-0.12.11.post1/src/processes/windows_icons.rs +198 -0
- exp_mitmproxy_rs-0.12.11.post1/src/processes/windows_list.rs +336 -0
- exp_mitmproxy_rs-0.12.11.post1/src/shutdown.rs +74 -0
- exp_mitmproxy_rs-0.12.11.post1/src/windows/mod.rs +1 -0
- exp_mitmproxy_rs-0.12.11.post1/src/windows/network.rs +206 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[env]
|
|
2
|
+
WINDIVERT_PATH = { value = "mitmproxy-windows/mitmproxy_windows/", relative = true }
|
|
3
|
+
|
|
4
|
+
[target.x86_64-apple-darwin]
|
|
5
|
+
rustflags = [
|
|
6
|
+
"-C", "link-arg=-undefined",
|
|
7
|
+
"-C", "link-arg=dynamic_lookup",
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
[target.aarch64-apple-darwin]
|
|
11
|
+
rustflags = [
|
|
12
|
+
"-C", "link-arg=-undefined",
|
|
13
|
+
"-C", "link-arg=dynamic_lookup",
|
|
14
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
github: [decathorpe, mhils]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Publishing the Capture native package
|
|
2
|
+
|
|
3
|
+
This fork publishes `exp-mitmproxy-rs`. Its Python import remains `mitmproxy_rs`.
|
|
4
|
+
The original `mitmproxy_macos==0.12.11` package supplies the signed macOS app and
|
|
5
|
+
Network Extension. The release builds neither of those signed components.
|
|
6
|
+
|
|
7
|
+
Configure a pending trusted publisher at <https://pypi.org/manage/account/publishing/>:
|
|
8
|
+
|
|
9
|
+
- Project: `exp-mitmproxy-rs`
|
|
10
|
+
- Owner: `experientiallabs`
|
|
11
|
+
- Repository: `mitmproxy_rs`
|
|
12
|
+
- Workflow: `ci.yml`
|
|
13
|
+
- Environment: `pypi`
|
|
14
|
+
|
|
15
|
+
The GitHub repository needs an environment named `pypi`. No long-lived API token
|
|
16
|
+
is needed. The workflow publishes only `exp-v*` tags whose version matches
|
|
17
|
+
`mitmproxy-rs/pyproject.toml`, after every test and wheel build passes. Pull requests
|
|
18
|
+
and branch pushes cannot publish. PyPI receives the artifacts from that same run,
|
|
19
|
+
with publishing attestations.
|
|
20
|
+
|
|
21
|
+
For version `0.12.11.post1`, tag the intended tested commit and push that tag:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
git tag exp-v0.12.11.post1 <commit>
|
|
25
|
+
git push experiential exp-v0.12.11.post1
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Verify all four platform wheels and the source archive appear on PyPI before
|
|
29
|
+
publishing the dependent `exp-mitmproxy` package. Never replace a published version;
|
|
30
|
+
use a new post-release version for changes.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: 'setup'
|
|
2
|
+
description: 'checkout, setup rust and python'
|
|
3
|
+
inputs:
|
|
4
|
+
rust-version:
|
|
5
|
+
description: 'Rust version'
|
|
6
|
+
required: true
|
|
7
|
+
default: 'stable'
|
|
8
|
+
extra-targets:
|
|
9
|
+
description: 'Extra Rust targets'
|
|
10
|
+
toolchain-args:
|
|
11
|
+
description: 'Extra args for `rustup toolchain`'
|
|
12
|
+
runs:
|
|
13
|
+
using: "composite"
|
|
14
|
+
steps:
|
|
15
|
+
- uses: mhils/workflows/setup-python@3c9fc8f5b40cb8f3f1b81163f3f195cad843b09a # v18.0 # PyO3 wants recent Python on Windows.
|
|
16
|
+
- run: rustup toolchain install ${{ inputs.rust-version }} --profile minimal ${{ inputs.toolchain-args }}
|
|
17
|
+
shell: bash
|
|
18
|
+
- if: runner.os == 'Linux'
|
|
19
|
+
run: rustup toolchain install nightly --component rust-src
|
|
20
|
+
shell: bash
|
|
21
|
+
- run: rustup default ${{ inputs.rust-version }}
|
|
22
|
+
shell: bash
|
|
23
|
+
- if: inputs.extra-targets
|
|
24
|
+
run: rustup target add ${{ inputs.extra-targets }}
|
|
25
|
+
shell: bash
|
|
26
|
+
- uses: mhils/workflows/rust-cache@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v19.0
|
|
27
|
+
with:
|
|
28
|
+
key: ${{ inputs.rust-version }} # proxy value for glibc version
|
|
29
|
+
- if: runner.os == 'Linux'
|
|
30
|
+
run: cargo install --locked bpf-linker@0.9.15
|
|
31
|
+
shell: bash
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: github-actions
|
|
4
|
+
directory: "/"
|
|
5
|
+
cooldown:
|
|
6
|
+
default-days: 42
|
|
7
|
+
schedule:
|
|
8
|
+
interval: "monthly"
|
|
9
|
+
groups:
|
|
10
|
+
dependencies:
|
|
11
|
+
patterns:
|
|
12
|
+
- "*"
|
|
13
|
+
- package-ecosystem: cargo
|
|
14
|
+
directory: "/"
|
|
15
|
+
cooldown:
|
|
16
|
+
default-days: 42
|
|
17
|
+
schedule:
|
|
18
|
+
interval: "monthly"
|
|
19
|
+
groups:
|
|
20
|
+
# If a dependency matches more than one rule, it's included in the first group that it matches.
|
|
21
|
+
# Any outdated dependencies that do not match a rule are updated in individual pull requests.
|
|
22
|
+
windows:
|
|
23
|
+
patterns:
|
|
24
|
+
- "windows"
|
|
25
|
+
dependencies:
|
|
26
|
+
patterns:
|
|
27
|
+
- "*"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -eou pipefail
|
|
4
|
+
|
|
5
|
+
if [ -n "${APPLE_ID-}" ]; then
|
|
6
|
+
echo "Signing keys available, building signed binary..."
|
|
7
|
+
|
|
8
|
+
APPLE_TEAM_ID=S8XHQB96PW
|
|
9
|
+
|
|
10
|
+
# Install provisioning profiles
|
|
11
|
+
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
|
12
|
+
echo -n "$APPLE_PROVISIONING_PROFILE_APP" | base64 --decode -o ~/Library/MobileDevice/Provisioning\ Profiles/app.provisionprofile
|
|
13
|
+
echo -n "$APPLE_PROVISIONING_PROFILE_EXT" | base64 --decode -o ~/Library/MobileDevice/Provisioning\ Profiles/ext.provisionprofile
|
|
14
|
+
|
|
15
|
+
# Create temporary keychain
|
|
16
|
+
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain
|
|
17
|
+
security create-keychain -p "app-signing" $KEYCHAIN_PATH
|
|
18
|
+
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
|
|
19
|
+
security unlock-keychain -p "app-signing" $KEYCHAIN_PATH
|
|
20
|
+
# Import certificate to keychain
|
|
21
|
+
security import <(echo -n "$APPLE_CERTIFICATE") -A -k $KEYCHAIN_PATH
|
|
22
|
+
security list-keychain -s $KEYCHAIN_PATH
|
|
23
|
+
|
|
24
|
+
mkdir build
|
|
25
|
+
xcodebuild \
|
|
26
|
+
-scheme macos-redirector \
|
|
27
|
+
-archivePath build/macos-redirector.xcarchive \
|
|
28
|
+
OTHER_CODE_SIGN_FLAGS="--keychain $KEYCHAIN_PATH" \
|
|
29
|
+
archive
|
|
30
|
+
xcodebuild \
|
|
31
|
+
-exportArchive \
|
|
32
|
+
-archivePath build/macos-redirector.xcarchive \
|
|
33
|
+
-exportOptionsPlist ./ExportOptions.plist \
|
|
34
|
+
-exportPath ./build
|
|
35
|
+
|
|
36
|
+
# Notarize
|
|
37
|
+
# https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow
|
|
38
|
+
xcrun notarytool store-credentials "AC_PASSWORD" \
|
|
39
|
+
--keychain "$KEYCHAIN_PATH" \
|
|
40
|
+
--apple-id "$APPLE_ID" \
|
|
41
|
+
--team-id "$APPLE_TEAM_ID" \
|
|
42
|
+
--password "$APPLE_APP_PASSWORD"
|
|
43
|
+
ditto -c -k --keepParent "./build/Mitmproxy Redirector.app" "./build/Mitmproxy Redirector.zip"
|
|
44
|
+
xcrun notarytool submit \
|
|
45
|
+
"./build/Mitmproxy Redirector.zip" \
|
|
46
|
+
--keychain "$KEYCHAIN_PATH" \
|
|
47
|
+
--keychain-profile "AC_PASSWORD" \
|
|
48
|
+
--wait
|
|
49
|
+
xcrun stapler staple "./build/Mitmproxy Redirector.app"
|
|
50
|
+
|
|
51
|
+
mkdir -p dist
|
|
52
|
+
tar --create --file "./dist/Mitmproxy Redirector.app.tar" --cd "./build" "Mitmproxy Redirector.app"
|
|
53
|
+
else
|
|
54
|
+
echo "Signing keys not available, building unsigned binary..."
|
|
55
|
+
xcodebuild -scheme macos-redirector CODE_SIGNING_ALLOWED="NO" build
|
|
56
|
+
mkdir -p dist
|
|
57
|
+
touch "dist/Mitmproxy Redirector.app.tar"
|
|
58
|
+
fi
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
import tomllib
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
with open("Cargo.toml", "rb") as f:
|
|
7
|
+
version = tomllib.load(f)["workspace"]["package"]["version"]
|
|
8
|
+
|
|
9
|
+
pyproject_toml = Path("mitmproxy-rs/pyproject.toml")
|
|
10
|
+
contents = pyproject_toml.read_text()
|
|
11
|
+
contents = (
|
|
12
|
+
contents
|
|
13
|
+
.replace(f"mitmproxy_windows", f"mitmproxy_windows=={version}")
|
|
14
|
+
.replace(f"mitmproxy_linux", f"mitmproxy_linux=={version}")
|
|
15
|
+
.replace(f"mitmproxy_macos", f"mitmproxy_macos=={version}")
|
|
16
|
+
)
|
|
17
|
+
pyproject_toml.write_text(contents)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env -S python3 -u
|
|
2
|
+
import logging
|
|
3
|
+
|
|
4
|
+
from releasetool import branch
|
|
5
|
+
from releasetool import get_next_dev_version
|
|
6
|
+
from releasetool import git_commit
|
|
7
|
+
from releasetool import git_push
|
|
8
|
+
from releasetool import git_tag
|
|
9
|
+
from releasetool import status_check
|
|
10
|
+
from releasetool import update_changelog
|
|
11
|
+
from releasetool import update_rust_version
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
if __name__ == "__main__":
|
|
16
|
+
status_check()
|
|
17
|
+
update_changelog()
|
|
18
|
+
update_rust_version()
|
|
19
|
+
git_commit()
|
|
20
|
+
git_tag()
|
|
21
|
+
|
|
22
|
+
if branch == "main":
|
|
23
|
+
update_rust_version(version=get_next_dev_version())
|
|
24
|
+
git_commit(message="reopen main for development")
|
|
25
|
+
|
|
26
|
+
git_push()
|
|
27
|
+
logger.info("✅ All done. 🥳")
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Formatting
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
MSRV: "1.95" # Minimum Supported Rust Version
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
protobuf:
|
|
18
|
+
runs-on: macos-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: mhils/workflows/checkout@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
21
|
+
# FIXME: https://github.com/mitmproxy/mitmproxy/issues/7877 - bump SwiftProtobuf and then re-add this here.
|
|
22
|
+
# - run: brew install swift-protobuf
|
|
23
|
+
- run: brew install protobuf
|
|
24
|
+
- run: cargo install --locked protoc-gen-prost@0.5.0
|
|
25
|
+
- run: protoc --proto_path=./src/ipc/ mitmproxy_ipc.proto
|
|
26
|
+
--prost_out=./src/ipc/
|
|
27
|
+
--prost_opt="bytes=data"
|
|
28
|
+
--prost_opt="flat_output_dir=true"
|
|
29
|
+
# --swift_out=./mitmproxy-macos/redirector/ipc
|
|
30
|
+
- run: cargo fmt --all
|
|
31
|
+
- run: git diff --exit-code
|
|
32
|
+
|
|
33
|
+
rustfmt:
|
|
34
|
+
runs-on: ${{ matrix.os }}
|
|
35
|
+
strategy:
|
|
36
|
+
matrix:
|
|
37
|
+
include:
|
|
38
|
+
- os: windows-latest
|
|
39
|
+
- os: macos-latest
|
|
40
|
+
- os: ubuntu-latest
|
|
41
|
+
steps:
|
|
42
|
+
- uses: mhils/workflows/checkout@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
43
|
+
- uses: ./.github/actions/setup
|
|
44
|
+
with:
|
|
45
|
+
rust-version: ${{ env.MSRV }}
|
|
46
|
+
toolchain-args: --component rustfmt --component clippy
|
|
47
|
+
|
|
48
|
+
# We could run clippy on mitmproxy-linux-ebpf with
|
|
49
|
+
# cargo +nightly clippy --workspace -- -C panic=abort -Zpanic_abort_tests
|
|
50
|
+
# but that means we'd use nightly clippy, which may change its behavior (and thus break CI).
|
|
51
|
+
# So we rather exempt mitmproxy-linux-ebpf from clippy lints.
|
|
52
|
+
- run: cargo clippy --fix --allow-dirty --workspace --exclude mitmproxy-linux-ebpf
|
|
53
|
+
- run: cargo fmt --all
|
|
54
|
+
- run: git checkout src/ipc/mitmproxy_ipc.rs
|
|
55
|
+
|
|
56
|
+
- run: git diff --exit-code
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- 'exp-v*'
|
|
9
|
+
pull_request:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test:
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
strategy:
|
|
22
|
+
matrix:
|
|
23
|
+
include:
|
|
24
|
+
- os: windows-latest
|
|
25
|
+
rust: "1.95" # MSRV - can't use variables here.
|
|
26
|
+
args: --exclude mitmproxy-linux-ebpf
|
|
27
|
+
- os: macos-latest
|
|
28
|
+
rust: "1.95" # MSRV - can't use variables here.
|
|
29
|
+
args: --exclude mitmproxy-linux-ebpf
|
|
30
|
+
- os: ubuntu-22.04
|
|
31
|
+
rust: "1.95" # MSRV - can't use variables here.
|
|
32
|
+
args: --exclude mitmproxy-linux-ebpf
|
|
33
|
+
- os: ubuntu-latest
|
|
34
|
+
rust: stable
|
|
35
|
+
args: --exclude mitmproxy-linux-ebpf
|
|
36
|
+
- os: ubuntu-latest # old Ubuntu to test eBPF verifier compatibility
|
|
37
|
+
rust: nightly
|
|
38
|
+
args: --package mitmproxy-linux-ebpf
|
|
39
|
+
env:
|
|
40
|
+
RUSTFLAGS: ${{ matrix.rust == 'nightly' && '-Zpanic_abort_tests -C panic=abort' || '' }}
|
|
41
|
+
steps:
|
|
42
|
+
- uses: mhils/workflows/checkout@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
43
|
+
- uses: ./.github/actions/setup
|
|
44
|
+
with:
|
|
45
|
+
rust-version: ${{ matrix.rust }}
|
|
46
|
+
|
|
47
|
+
- name: Run "cargo check"
|
|
48
|
+
# the action-rs/cargo action adds inline annotations for "cargo check" output
|
|
49
|
+
uses: actions-rs/cargo@9e120dd99b0fbad1c065f686657e914e76bd7b72
|
|
50
|
+
with:
|
|
51
|
+
toolchain: ${{ matrix.rust }}
|
|
52
|
+
command: check
|
|
53
|
+
args: --workspace --verbose ${{ matrix.args }}
|
|
54
|
+
- if: matrix.rust != 'nightly' # XXX: weird errors here
|
|
55
|
+
name: Run "cargo test"
|
|
56
|
+
# the action-rs/cargo action adds inline annotations for "cargo test" output
|
|
57
|
+
uses: actions-rs/cargo@9e120dd99b0fbad1c065f686657e914e76bd7b72
|
|
58
|
+
with:
|
|
59
|
+
toolchain: ${{ matrix.rust }}
|
|
60
|
+
command: test
|
|
61
|
+
args: --workspace --verbose ${{ matrix.args }}
|
|
62
|
+
- if: matrix.os == 'ubuntu-22.04' # Test that eBPF loads
|
|
63
|
+
run: cargo test --features root-tests
|
|
64
|
+
working-directory: mitmproxy-linux
|
|
65
|
+
env:
|
|
66
|
+
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER: sudo -E
|
|
67
|
+
|
|
68
|
+
build:
|
|
69
|
+
strategy:
|
|
70
|
+
matrix:
|
|
71
|
+
include:
|
|
72
|
+
- name: windows-x86_64
|
|
73
|
+
os: windows-latest
|
|
74
|
+
- name: linux-x86_64
|
|
75
|
+
os: ubuntu-latest
|
|
76
|
+
args: --compatibility manylinux2014 --zig --sdist
|
|
77
|
+
- name: linux-arm64
|
|
78
|
+
os: ubuntu-24.04-arm
|
|
79
|
+
args: --compatibility manylinux2014 --zig
|
|
80
|
+
- name: macos-universal
|
|
81
|
+
os: macos-latest
|
|
82
|
+
target: aarch64-apple-darwin x86_64-apple-darwin
|
|
83
|
+
args: --target universal2-apple-darwin
|
|
84
|
+
runs-on: ${{ matrix.os }}
|
|
85
|
+
name: build mitmproxy-rs (${{ matrix.name }})
|
|
86
|
+
steps:
|
|
87
|
+
- uses: mhils/workflows/checkout@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
88
|
+
- uses: ./.github/actions/setup
|
|
89
|
+
with:
|
|
90
|
+
extra-targets: ${{ matrix.target }}
|
|
91
|
+
|
|
92
|
+
- name: Verify release version
|
|
93
|
+
if: startsWith(github.ref, 'refs/tags/exp-v')
|
|
94
|
+
shell: bash
|
|
95
|
+
run: |
|
|
96
|
+
python - <<'PY'
|
|
97
|
+
import os
|
|
98
|
+
import tomllib
|
|
99
|
+
from pathlib import Path
|
|
100
|
+
project = tomllib.loads(Path('mitmproxy-rs/pyproject.toml').read_text())['project']
|
|
101
|
+
assert project['name'] == 'exp-mitmproxy-rs'
|
|
102
|
+
assert os.environ['GITHUB_REF_NAME'] == 'exp-v' + project['version']
|
|
103
|
+
PY
|
|
104
|
+
|
|
105
|
+
- if: runner.os == 'Linux'
|
|
106
|
+
name: Install maturin[zig] from PyPI
|
|
107
|
+
uses: install-pinned/maturin-with-zig@7f54e6144d8fd17188d0e99742fefc4bcb178e06
|
|
108
|
+
- if: runner.os != 'Linux'
|
|
109
|
+
name: Install maturin from PyPI
|
|
110
|
+
uses: install-pinned/maturin@3bfd83cd34bdcbcc8a10e459c2a9e41e6c33e706
|
|
111
|
+
|
|
112
|
+
- run: maturin build --release ${{ matrix.args }}
|
|
113
|
+
working-directory: ./mitmproxy-rs
|
|
114
|
+
|
|
115
|
+
# ensure that sdist is building.
|
|
116
|
+
# We do this here instead of a separate job because we don't want to wait for the entire matrix.
|
|
117
|
+
- if: contains(matrix.args, 'sdist')
|
|
118
|
+
run: pip install --no-dependencies target/wheels/*.tar.gz
|
|
119
|
+
|
|
120
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
|
121
|
+
with:
|
|
122
|
+
name: wheels-${{ matrix.name }}
|
|
123
|
+
path: target/wheels
|
|
124
|
+
|
|
125
|
+
check:
|
|
126
|
+
if: always()
|
|
127
|
+
needs:
|
|
128
|
+
- test
|
|
129
|
+
- build
|
|
130
|
+
uses: mhils/workflows/.github/workflows/alls-green.yml@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
131
|
+
with:
|
|
132
|
+
jobs: ${{ toJSON(needs) }}
|
|
133
|
+
|
|
134
|
+
publish:
|
|
135
|
+
if: github.repository == 'experientiallabs/mitmproxy_rs' && startsWith(github.ref, 'refs/tags/exp-v')
|
|
136
|
+
needs: check
|
|
137
|
+
runs-on: ubuntu-latest
|
|
138
|
+
environment: pypi
|
|
139
|
+
permissions:
|
|
140
|
+
contents: read
|
|
141
|
+
id-token: write
|
|
142
|
+
steps:
|
|
143
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
|
144
|
+
with:
|
|
145
|
+
pattern: wheels-*
|
|
146
|
+
merge-multiple: true
|
|
147
|
+
path: dist
|
|
148
|
+
- name: Publish tested distributions to PyPI
|
|
149
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # release/v1
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
# security: restrict permissions for CI jobs.
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
# Build the documentation and upload the static HTML files as an artifact.
|
|
19
|
+
build:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
# TODO: This should ideally just reuse the main CI artifacts.
|
|
23
|
+
- uses: mhils/workflows/checkout@5b6540d578f48644ffa5e955cedadc81034cb7d8 # v18.0
|
|
24
|
+
- uses: ./.github/actions/setup
|
|
25
|
+
- uses: install-pinned/maturin-with-zig@7f54e6144d8fd17188d0e99742fefc4bcb178e06
|
|
26
|
+
- uses: install-pinned/mypy@75779f141592e4909d64e13f8a1861f06aa9cd8d
|
|
27
|
+
- uses: install-pinned/pdoc@69ba59f9699df21e1026110af4ec6b10a98cf5cd
|
|
28
|
+
|
|
29
|
+
- run: maturin build --features docs,pyo3/extension-module
|
|
30
|
+
working-directory: ./mitmproxy-rs
|
|
31
|
+
- run: pip install --no-index --no-dependencies --find-links target/wheels/ exp-mitmproxy-rs
|
|
32
|
+
|
|
33
|
+
- run: stubtest --allowlist mitmproxy-rs/stubtest-allowlist.txt --mypy-config-file mitmproxy-rs/pyproject.toml mitmproxy_rs
|
|
34
|
+
|
|
35
|
+
- run: pdoc -o docs/ mitmproxy_rs
|
|
36
|
+
|
|
37
|
+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
|
|
38
|
+
with:
|
|
39
|
+
path: docs/
|
|
40
|
+
|
|
41
|
+
# Deploy the artifact to GitHub pages.
|
|
42
|
+
# This is a separate job so that only actions/deploy-pages has the necessary permissions.
|
|
43
|
+
deploy:
|
|
44
|
+
if: github.ref == 'refs/heads/main'
|
|
45
|
+
needs: build
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
permissions:
|
|
48
|
+
pages: write
|
|
49
|
+
id-token: write
|
|
50
|
+
environment:
|
|
51
|
+
name: github-pages
|
|
52
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
53
|
+
steps:
|
|
54
|
+
- id: deployment
|
|
55
|
+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
|