@ 10p.io/ 隧道
TUN设备 + smoltcp 用户空间 TCP/IP sack NAPI 模块用于 planx vnet(Pattern C特权守护进程).
概览
图案 C 型号 = 原生侧 (= 根进程) = NAPI 模块 = 负载 + TUN 设备 + smoltcp 接口 + tokio 民意测验回路 + USER 进程侧 → planx 守护进程在 unix socket 上的 tRPC 网络化 L4 事件 QQ 边界。
NAPI出口
setup_vnet({ selfHip, prefix, mtu })→{ ifaceName }addPeerAddress({ hipBytes })编号 :removePeerAddress({ hipBytes })injectTcpData({ connId, payload })编号 :injectTcpClose({ connId })编号 :injectUdpSend({ dstPort, srcAddr, srcPort, payload })onEvent((ev: NetworkdEvent) => void)编号 :offEvent()
Dev 构建( 单一平台)
nx build @10p.io/tunnel # release .node (native target only)
nx build:debug @10p.io/tunnel # debug .node
nx test @10p.io/tunnel # cargo test
nx lint @10p.io/tunnel # cargo clippy
发布流 (5个平台扇出+发布)
5个每行码包 QQ repo 承诺 GAR 发布 QQ 流量 。 本地Mac QQ (=CI では走らせない。
先决条件
brew install zig
rustup target add aarch64-apple-darwin x86_64-apple-darwin \
x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu \
x86_64-unknown-linux-musl
gcloud auth application-default login # or GOOGLE_APPLICATION_CREDENTIALS export
步骤
# 1. 5 platform 分の .node を prebuilt/ に生成
nx prebuild @10p.io/tunnel
# 2. prebuilt/*.node を packages/@10p.io/tunnel-{arch}/ に配布 +
# main package の index.js / index.d.ts を最新化
nx build @10p.io/tunnel
# 3. (commit .node files to repo — Rust source 改修ごとに必要)
git add prebuilt/ ../../../packages/@10p.io/tunnel-*/planx-tunnel.*.node
git commit -m "chore(tunnel): rebuild native binaries"
# 4. 全 publish (= main + 5 per-arch を tag:package run-many で publish)
nx run-many -t deploy -p 'tag:package' --parallel=2
干线运行
DRY_RUN=true nx run @10p.io/tunnel:deploy
偶数二进制
| 软件包 | 平台 | 专栏 |
|---|---|---|
@10p.io/tunnel-darwin-arm64 | macOS 苹果硅 | - 说吧 |
@10p.io/tunnel-darwin-x64 | macOS 英特尔 | - 说吧 |
@10p.io/tunnel-linux-x64-gnu | Linux x86 64 (英语) | glibc 图像 |
@10p.io/tunnel-linux-arm64-gnu | Linux ARM64 软件 | glibc 图像 |
@10p.io/tunnel-linux-x64-musl | Linux x86 64 (英语) | 马斯尔 |
主要 @10p.io/tunnel 包 * 可选的依赖性 *
运行时间 QQ NAPI 装入器(index.js• 平台 .node · 要求 。
解决问题
- 关于出版的401/403号文件 ~.npmrc ~ GAR 标志 ~ / ~。
CI 相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相
qq (调用脚本 qx auth qx4645 npx auth-refresh qx)。
发表 发表 发表
npx google-artifactregistry-auth{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你来干嘛。 - 纳米构建 “% ” 链接
cc没有找到" (Linux交叉编译)--zig旗帜qq。prebuild.sh経由で実行する。 cargo: command not found生锈路径。export PATH="$HOME/.cargo/bin:$PATH"键。- 预建/*.节点qq →
nx prebuild重新运行git addし直す。