Skip to content

Commit aa12961

Browse files
author
yiguo
committed
Remove invoke env and desktop wrapper
1 parent 30f375a commit aa12961

13 files changed

Lines changed: 83 additions & 271 deletions

File tree

.github/workflows/build.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,11 @@ jobs:
147147
mkdir -p "dist/${{ matrix.artifact }}"
148148
cp linux_so/libXray.so "dist/${{ matrix.artifact }}/"
149149
cp linux_so/libXray.h "dist/${{ matrix.artifact }}/"
150-
cp bin/xray "dist/${{ matrix.artifact }}/"
151150
;;
152151
windows)
153152
mkdir -p "dist/${{ matrix.artifact }}"
154153
cp windows_dll/libXray.dll "dist/${{ matrix.artifact }}/"
155154
cp windows_dll/libXray.h "dist/${{ matrix.artifact }}/"
156-
cp bin/xray.exe "dist/${{ matrix.artifact }}/"
157155
;;
158156
android)
159157
mkdir -p "dist/${{ matrix.artifact }}"

README.md

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,8 @@ Compile script. It is recommended to always use this script to compile libXray.
4040

4141
depends on git and go.
4242

43-
By default, the build script does not clone [Xray-core](https://github.com/XTLS/Xray-core). It uses Go modules and pins Xray-core to tag `v26.6.27` (recorded by Go as the matching pseudo-version).
43+
By default, the build script does not clone [Xray-core](https://github.com/XTLS/Xray-core). It uses Go modules and pins Xray-core to main commit `d5bc58dc` through its pseudo-version.
4444
Pass the optional `local` argument to use an existing local checkout at `../Xray-core` through a Go module `replace`.
45-
Linux and Windows builds also produce a small desktop wrapper executable:
46-
`bin/xray` or `bin/xray.exe`. The wrapper accepts `-configPath` pointing to a
47-
`LibXrayInvokeRequest` JSON file whose method is `runXray`.
4845

4946
### Usage
5047

@@ -132,11 +129,6 @@ The request is a JSON object:
132129
{
133130
"apiVersion": 1,
134131
"method": "runXray",
135-
"env": {
136-
"xray.location.asset": "/path/to/dat",
137-
"xray.location.cert": "/path/to/dat",
138-
"xray.tun.fd": "123"
139-
},
140132
"payload": {
141133
"configPath": "/path/to/config.json"
142134
}
@@ -155,16 +147,12 @@ The response is a JSON object:
155147

156148
Design notes:
157149

158-
1. `Invoke.env` supports only fixed Xray-core runtime environment keys:
159-
`xray.location.asset`, `xray.location.cert`, and `xray.tun.fd`.
160-
2. Non-empty `env` fields are set on the process before the method runs.
161-
Missing fields are not unset and old values are not restored.
162-
3. `xray.json.strict`, `xray.location.config`, and `xray.location.confdir` are
163-
load-stage process environment variables and cannot be supplied through
164-
`Invoke.env`.
165-
4. `SetTunFd` has been removed. Set the `"xray.tun.fd"` key in the request
166-
`env` object when the fd is only known at runtime.
167-
5. `countGeoData` is not backed by an Xray config, so its `datDir` is passed in
150+
1. `Invoke` does not accept an `env` field. Xray-core runtime environment
151+
options belong in the root `env` object of the Xray config.
152+
2. `SetTunFd` has been removed. When the fd is only known at runtime, write
153+
`xray.tun.fd` into the Xray config root `env` object before calling
154+
`runXray`.
155+
3. `countGeoData` is not backed by an Xray config, so its `datDir` is passed in
168156
the method payload.
169157

170158
Supported methods:

build/app/build.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,14 @@
44
import subprocess
55

66
from app.cmd import (
7-
create_dir_if_not_exists,
87
delete_file_if_exists,
98
delete_dir_if_exists,
109
)
1110

1211
LIBXRAY_MOD_NAME = "github.com/xtls/libxray"
1312
XRAY_CORE_MOD_NAME = "github.com/xtls/xray-core"
14-
DEFAULT_XRAY_CORE_TAG = "v26.6.27"
15-
# Xray-core CalVer tags cannot be used directly as Go module versions because
16-
# its module path does not include /v26. This pseudo-version points to the tag above.
17-
DEFAULT_XRAY_CORE_VERSION = "v1.260327.1-0.20260627131803-45cf2898ab12"
13+
# This pseudo-version pins the Xray-core main commit that added root env config.
14+
DEFAULT_XRAY_CORE_VERSION = "v1.260327.1-0.20260710025649-d5bc58dc6b76"
1815
LOCAL_XRAY_CORE_DIR_NAME = "Xray-core"
1916

2017

@@ -143,28 +140,6 @@ def before_build(self):
143140
def build(self):
144141
pass
145142

146-
def build_desktop_bin(self, bin_file: str):
147-
bin_dir = os.path.join(self.lib_dir, "bin")
148-
create_dir_if_not_exists(bin_dir)
149-
output_file = os.path.join(bin_dir, bin_file)
150-
run_env = os.environ.copy()
151-
run_env["CGO_ENABLED"] = "0"
152-
153-
cmd = [
154-
"go",
155-
"build",
156-
"-trimpath",
157-
"-ldflags",
158-
"-s -w",
159-
f"-o={output_file}",
160-
"./desktop_bin",
161-
]
162-
os.chdir(self.lib_dir)
163-
print(cmd)
164-
ret = subprocess.run(cmd, env=run_env)
165-
if ret.returncode != 0:
166-
raise Exception("build_desktop_bin failed")
167-
168143
def after_build(self):
169144
pass
170145

build/app/linux.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def __init__(self, build_dir: str, use_local_xray_core: bool = False):
1313
create_dir_if_not_exists(self.framework_dir)
1414
self.lib_file = "libXray.so"
1515
self.lib_header_file = "libXray.h"
16-
self.bin_file = "xray"
1716

1817
def before_build(self):
1918
super().before_build()
@@ -23,7 +22,6 @@ def build(self):
2322
self.before_build()
2423
self.build_linux()
2524
self.after_build()
26-
self.build_desktop_bin(self.bin_file)
2725
self.revert_go_env()
2826

2927
def build_linux(self):

build/app/windows.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def __init__(self, build_dir: str, use_local_xray_core: bool = False):
1313
create_dir_if_not_exists(self.framework_dir)
1414
self.lib_file = "libXray.dll"
1515
self.lib_header_file = "libXray.h"
16-
self.bin_file = "xray.exe"
1716

1817
def before_build(self):
1918
super().before_build()
@@ -23,7 +22,6 @@ def build(self):
2322
self.before_build()
2423
self.build_windows()
2524
self.after_build()
26-
self.build_desktop_bin(self.bin_file)
2725
self.revert_go_env()
2826

2927
def build_windows(self):

desktop_bin/main.go

Lines changed: 0 additions & 38 deletions
This file was deleted.

desktop_bin/run.go

Lines changed: 0 additions & 65 deletions
This file was deleted.

go.mod

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.26.3
44

55
require (
66
github.com/stretchr/testify v1.11.1
7-
github.com/xtls/xray-core v1.260327.1-0.20260627131803-45cf2898ab12
7+
github.com/xtls/xray-core v1.260327.1-0.20260710025649-d5bc58dc6b76
88
google.golang.org/protobuf v1.36.11
99
gopkg.in/yaml.v3 v3.0.1
1010
)
@@ -16,17 +16,18 @@ require (
1616
github.com/davecgh/go-spew v1.1.1 // indirect
1717
github.com/ghodss/yaml v1.0.1-0.20220118164431-d8423dcdf344 // indirect
1818
github.com/google/btree v1.1.2 // indirect
19+
github.com/google/uuid v1.6.0 // indirect
1920
github.com/gorilla/websocket v1.5.3 // indirect
2021
github.com/juju/ratelimit v1.0.2 // indirect
2122
github.com/klauspost/compress v1.17.4 // indirect
22-
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
23+
github.com/klauspost/cpuid/v2 v2.4.0 // indirect
2324
github.com/miekg/dns v1.1.72 // indirect
2425
github.com/pelletier/go-toml v1.9.5 // indirect
2526
github.com/pion/dtls/v3 v3.1.4 // indirect
2627
github.com/pion/logging v0.2.4 // indirect
2728
github.com/pion/stun/v3 v3.1.6 // indirect
2829
github.com/pion/transport/v4 v4.0.2 // indirect
29-
github.com/pires/go-proxyproto v0.12.0 // indirect
30+
github.com/pires/go-proxyproto v0.15.0 // indirect
3031
github.com/pmezard/go-difflib v1.0.0 // indirect
3132
github.com/quic-go/qpack v0.6.0 // indirect
3233
github.com/refraction-networking/utls v1.8.3-0.20260301010127-aa6edf4b11af // indirect
@@ -38,20 +39,20 @@ require (
3839
github.com/wlynxg/anet v0.0.5 // indirect
3940
github.com/xtls/reality v0.0.0-20260322125925-9234c772ba8f // indirect
4041
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
41-
golang.org/x/crypto v0.53.0 // indirect
42+
golang.org/x/crypto v0.54.0 // indirect
4243
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
43-
golang.org/x/mod v0.36.0 // indirect
44-
golang.org/x/net v0.56.0 // indirect
45-
golang.org/x/sync v0.21.0 // indirect
46-
golang.org/x/sys v0.46.0 // indirect
47-
golang.org/x/text v0.38.0 // indirect
44+
golang.org/x/mod v0.37.0 // indirect
45+
golang.org/x/net v0.57.0 // indirect
46+
golang.org/x/sync v0.22.0 // indirect
47+
golang.org/x/sys v0.47.0 // indirect
48+
golang.org/x/text v0.40.0 // indirect
4849
golang.org/x/time v0.14.0 // indirect
49-
golang.org/x/tools v0.45.0 // indirect
50+
golang.org/x/tools v0.47.0 // indirect
5051
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
5152
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb // indirect
5253
golang.zx2c4.com/wireguard/windows v1.0.1 // indirect
53-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect
54-
google.golang.org/grpc v1.81.1 // indirect
54+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect
55+
google.golang.org/grpc v1.82.0 // indirect
5556
gopkg.in/yaml.v2 v2.4.0 // indirect
5657
gvisor.dev/gvisor v0.0.0-20260122175437-89a5d21be8f0 // indirect
5758
lukechampine.com/blake3 v1.4.1 // indirect

go.sum

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ github.com/juju/ratelimit v1.0.2 h1:sRxmtRiajbvrcLQT7S+JbqU0ntsb9W2yhSdNN8tWfaI=
3030
github.com/juju/ratelimit v1.0.2/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk=
3131
github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
3232
github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
33-
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
34-
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
33+
github.com/klauspost/cpuid/v2 v2.4.0 h1:S6Hrbc7+ywsr0r+RLapfGBHfyefhCTwEh3A0tV913Dw=
34+
github.com/klauspost/cpuid/v2 v2.4.0/go.mod h1:19jmZ9mjzoF//ddRSUsv0zfBTJWh3QJh9FNxZTMrGxU=
3535
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
3636
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
3737
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -48,8 +48,8 @@ github.com/pion/stun/v3 v3.1.6 h1:WnhsD0eHCiwCfKNkVx0VJJwr2Y3eV4Ueih3KJ+dfZy8=
4848
github.com/pion/stun/v3 v3.1.6/go.mod h1:zRUghXSQU32Lx5orJsz3uYMkIihweXb3mu5gIns02fs=
4949
github.com/pion/transport/v4 v4.0.2 h1:ifYlPqNwsy6aKQ9y8yzxXlHae5431ZrH2avkD/Rn6Tk=
5050
github.com/pion/transport/v4 v4.0.2/go.mod h1:06hFI+jCFcok2X2MekVufNZ/uzNZXivGBPfviSVcjgM=
51-
github.com/pires/go-proxyproto v0.12.0 h1:TTCxD66dU898tahivkqc3hoceZp7P44FnorWyo9d5vM=
52-
github.com/pires/go-proxyproto v0.12.0/go.mod h1:qUvfqUMEoX7T8g0q7TQLDnhMjdTrxnG0hvpMn+7ePNI=
51+
github.com/pires/go-proxyproto v0.15.0 h1:dTshmNbFm/D+0+sbrxUuddPOZ5Y0B7c5NhtsBkm6LqI=
52+
github.com/pires/go-proxyproto v0.15.0/go.mod h1:OXsCrKwrK2tXS9YrI5tkHx5xaQlO8FH3lFW76orFh24=
5353
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5454
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5555
github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
@@ -74,8 +74,8 @@ github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU=
7474
github.com/wlynxg/anet v0.0.5/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA=
7575
github.com/xtls/reality v0.0.0-20260322125925-9234c772ba8f h1:iy2JRioxmUpoJ3SzbFPyTxHZMbR/rSHP7dOOgYaq1O8=
7676
github.com/xtls/reality v0.0.0-20260322125925-9234c772ba8f/go.mod h1:DsJblcWDGt76+FVqBVwbwRhxyyNJsGV48gJLch0OOWI=
77-
github.com/xtls/xray-core v1.260327.1-0.20260627131803-45cf2898ab12 h1:0RZBYuLmkxxlMrSsCNRrdNWHhW5zHTfkC2vAknzZ5P4=
78-
github.com/xtls/xray-core v1.260327.1-0.20260627131803-45cf2898ab12/go.mod h1:5J11wfaLGhI6HNOi90zVI6E87c1ykA8grPfUeHZYbhA=
77+
github.com/xtls/xray-core v1.260327.1-0.20260710025649-d5bc58dc6b76 h1:uRUAvUX3lemVMm0vts6WwdQvtYjvwrTs4uzI1zDZVEo=
78+
github.com/xtls/xray-core v1.260327.1-0.20260710025649-d5bc58dc6b76/go.mod h1:Jts8yHqPCpvsdL5CW5xMd8H9d2fkg1cILeBNqEwRXNw=
7979
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
8080
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
8181
go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
@@ -92,26 +92,26 @@ go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
9292
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
9393
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M=
9494
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y=
95-
golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
96-
golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
95+
golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw=
96+
golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk=
9797
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM=
9898
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
99-
golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
100-
golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
101-
golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
102-
golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
103-
golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
104-
golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
99+
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
100+
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
101+
golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
102+
golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
103+
golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
104+
golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
105105
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
106106
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
107-
golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
108-
golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
109-
golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
110-
golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
107+
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
108+
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
109+
golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
110+
golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
111111
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
112112
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
113-
golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
114-
golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
113+
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
114+
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
115115
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg=
116116
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI=
117117
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb h1:whnFRlWMcXI9d+ZbWg+4sHnLp52d5yiIPUxMBSt4X9A=
@@ -120,10 +120,10 @@ golang.zx2c4.com/wireguard/windows v1.0.1 h1:eOxiDVbywPC+ZQqvdCK7x+ZwWXKbYv50TtH
120120
golang.zx2c4.com/wireguard/windows v1.0.1/go.mod h1:+fbT3FFdX4zzYDLwJh5+HPEcNN/3HyNdzhNSVsQM+zs=
121121
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
122122
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
123-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ=
124-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
125-
google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
126-
google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
123+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw=
124+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
125+
google.golang.org/grpc v1.82.0 h1:vguDnZUPjE26w09A63VoxZPnvPjB5Riyc0mkXPFmAIU=
126+
google.golang.org/grpc v1.82.0/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA=
127127
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
128128
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
129129
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)