[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81756":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":15,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":30,"discoverSource":31},81756,"XPlex","abolix\u002FXPlex","abolix","Xray multiplexer for definite 0 packet loss","",null,"Go",60,5,1,2,0,34,46.73,"MIT License",false,"main",true,[24,25,26],"packet","v2ray","xray","2026-06-12 04:01:35","# XPlex\n\nMultipath proxy that bonds multiple xray tunnels into one reliable, low-latency SOCKS5 endpoint.\n\n> **For when you absolutely cannot afford a disconnect.** Crypto mining, important video calls, trading, remote work — anything where one dropped connection ruins your day. XPlex keeps your internet alive by sending your data through multiple paths at once. If one path dies, the others cover it instantly. The cost: 2-3x more bandwidth usage.\n\nEvery byte you send is duplicated across N parallel xray paths. The fastest copy wins; the rest are dropped. If a path dies mid-stream, the others keep delivering — zero packet loss, zero reconnects visible to your application.\n\n## How it works\n\n```\n                        ┌─── xray 1 ───┐\n App ──► SOCKS5:2080 ──┼─── xray 2 ───┼──► VPS (xplex server) ──► destination\n                        └─── xray 3 ───┘\n```\n\n- **Client** (`xplex client`): spawns one xray per share link in `xrays.txt`, opens a long-lived encrypted tunnel pool to your VPS, and exposes a local SOCKS5 port. Any app that connects gets multipath reliability transparently.\n- **Server** (`xplex server`): accepts tunnel connections, demuxes by session, dials whatever destination the client requested (full forwarding — works for browsing, mining, anything).\n- **Adaptive duplication**: a controller watches per-tunnel win rates and demotes slow tunnels to \"shadow\" (receive-only) to save bandwidth. Shadows get promoted back if conditions change.\n- **PSK encryption**: all traffic between client and server is encrypted with ChaCha20-Poly1305 using a pre-shared key. Xray operators cannot read or tamper with your data.\n\n## Prerequisites\n\nXPlex **client** needs [Xray-core](https:\u002F\u002Fgithub.com\u002FXTLS\u002FXray-core) to create the tunnels. The server does NOT need xray.\n\n### Install Xray-core (client only)\n\n1. Download the latest release from [github.com\u002FXTLS\u002FXray-core\u002Freleases](https:\u002F\u002Fgithub.com\u002FXTLS\u002FXray-core\u002Freleases) for your platform.\n2. Extract it into a folder called `xray-core\u002F` next to the `xplex` binary:\n\n```\nyour-folder\u002F\n├── xplex              (or xplex.exe on Windows)\n├── config.json\n├── xrays.txt\n└── xray-core\u002F\n    ├── xray           (or xray.exe on Windows)\n    ├── geoip.dat\n    └── geosite.dat\n```\n\nXPlex looks for `xray-core\u002Fxray` (or `xray-core\u002Fxray.exe` on Windows) by default. If your xray binary is somewhere else, set `xrayBin` in your client config:\n\n```json\n{\n  \"client\": {\n    \"xrayBin\": \"\u002Fusr\u002Flocal\u002Fbin\u002Fxray\"\n  }\n}\n```\n\n> **Note:** The server side (`xplex server`) does NOT need xray installed. It only receives tunnel connections and forwards traffic.\n\n## Quick start\n\n```bash\n# Generate a shared secret (run once, paste into both configs)\nxplex gen-key\n\n# Server (on your VPS)\nxplex server --config config.json\n\n# Client (on your local machine)\nxplex client --config config.json\n```\n\nThen point any SOCKS5-capable app at `127.0.0.1:2080`.\n\n## Configuration\n\n### Client (`xplex.config.client.example.json`)\n\n```json\n{\n  \"client\": {\n    \"listen\": \"2080\",\n    \"server\": \"your-vps.example.com:7000\",\n    \"xrayLinks\": \"xrays.txt\",\n    \"xrayBasePort\": 1080,\n    \"psk\": \"your-64-char-hex-key-here\"\n  }\n}\n```\n\n### Server (`xplex.config.server.example.json`)\n\n```json\n{\n  \"server\": {\n    \"listen\": \"7000\",\n    \"psk\": \"same-64-char-hex-key-here\"\n  }\n}\n```\n\n### xrays.txt\n\nOne vless\u002Ftrojan share link per line:\n\n```\ntrojan:\u002F\u002Fpassword@server1:443?security=tls&type=ws&host=cdn.example.com&path=\u002Fws#name1\nvless:\u002F\u002Fuuid@server2:443?encryption=none&security=tls&type=ws&host=cdn2.example.com&path=\u002F#name2\n```\n\n## Building\n\n```bash\n# Requires Go 1.22+\nCGO_ENABLED=0 go build -trimpath -ldflags \"-s -w\" -o xplex .\u002Fcmd\u002Fxplex\n```\n\nOr just grab a pre-built binary from [Releases](..\u002F..\u002Freleases).\n\n### Supported platforms\n\n| OS | Architectures |\n|----|---------------|\n| Linux | amd64, arm64, armv7, armv6, 386, mips, mipsle, mips64, mips64le, riscv64 |\n| Windows | amd64, arm64, 386 |\n| macOS | amd64 (Intel), arm64 (Apple Silicon) |\n| FreeBSD | amd64, arm64 |\n| OpenBSD | amd64 |\n\nReleases are automated via GitHub Actions — push a tag like `v1.0.0` and binaries for all platforms are built and published automatically.\n\n## Architecture\n\n```\ncmd\u002Fxplex\u002F          CLI entrypoint (client, server, gen-key subcommands)\ninternal\u002F\n  mppool\u002F           Long-lived tunnel pool with auto-reconnect + Active\u002FShadow states\n  mphub\u002F            Session demux + per-tunnel win tracking\n  mpfront\u002F          Local SOCKS5 frontend (client side)\n  mpserver\u002F         Tunnel acceptor + destination dialer (server side)\n  mpadapt\u002F          Adaptive duplication controller\n  mpcrypto\u002F         ChaCha20-Poly1305 AEAD frame encryption\n  mpframe\u002F          Wire format (type + session ID + seq + payload)\n  mpdedup\u002F          Per-session reorder + dedup buffer\n  mpconfig\u002F         JSON config loading + flag merging\n  config\u002F           Xray share-link parser + JSON config generator\n  links\u002F            xrays.txt reader\n  socks5\u002F           SOCKS5 client dialer\n  probe\u002F            TLS-handshake latency probe\n  stats\u002F            Rolling P50\u002FP90\u002Fsuccess-rate tracker\n  monitor\u002F          Periodic health-check loop\n  runner\u002F           Xray process spawner\n  testutil\u002F         Shared test fakes\n```\n\n## Key properties\n\n- **Zero visible packet loss**: if any one tunnel is alive, bytes flow.\n- **Latency = fastest path**: you always get the best of N tunnels per byte.\n- **Encrypted end-to-end**: xray operators see only random bytes.\n- **Tamper-proof**: Poly1305 MAC rejects any modification.\n- **Self-healing**: dead tunnels reconnect with exponential backoff; sessions are killed cleanly if all tunnels die so apps can retry.\n- **Bandwidth-aware**: adaptive controller reduces duplication when paths are stable.\n\n## License\n\nMIT\n","XPlex 是一个用于确保零丢包的Xray多路复用代理工具。它通过将多个Xray隧道整合为一个可靠的低延迟SOCKS5端点，即使某个路径中断也能即时由其他路径接管，从而保证数据传输的连续性。该项目采用Go语言开发，具备自适应复制和PSK加密等特性，能够根据各隧道的表现动态调整以节省带宽，并且所有客户端与服务器之间的通信均经过加密处理，确保了安全性。XPlex适用于对网络连接稳定性要求极高的场景，如加密货币挖矿、重要视频会议、交易操作或远程工作等，在这些情况下，单次断连就可能导致严重后果。","2026-06-11 04:06:17","CREATED_QUERY"]