[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74648":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":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},74648,"Resin","Resinat\u002FResin","Resinat","A high-performance proxy pool gateway. Turn massive proxy subscriptions into a stable, smart, and observable network with sticky sessions.","",null,"Go",1338,202,5,23,0,14,40,148,42,19.92,"MIT License",false,"master",[26,27],"proxy","proxypool","2026-06-12 02:03:26","[English](README.md) | [简体中文](README.zh-CN.md)\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"webui\u002Fpublic\u002Fvite.svg\" width=\"48\" alt=\"Resin Logo\" \u002F>\n  \u003Ch1>Resin\u003C\u002Fh1>\n  \u003Cp>\u003Cstrong>Turn massive proxy subscriptions into a stable, smart, observable unified proxy entrypoint with sticky sessions.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FResinat\u002FResin?style=flat-square&label=release&sort=semver\" alt=\"Release\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Factions\u002Fworkflows\u002Frelease.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FResinat\u002FResin\u002Frelease.yml?style=flat-square&label=release%20pipeline\" alt=\"Release Pipeline\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Fpkgs\u002Fcontainer\u002Fresin\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fghcr-ghcr.io%2Fresinat%2Fresin-2496ED?style=flat-square&logo=docker&logoColor=white\" alt=\"GHCR Image\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Fblob\u002Fmaster\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FResinat\u002FResin?style=flat-square\" alt=\"License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Fblob\u002Fmaster\u002Fgo.mod\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fgo-mod\u002Fgo-version\u002FResinat\u002FResin?style=flat-square\" alt=\"Go Version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fsupport-linux%20%7C%20macOS%20%7C%20windows%20%C2%B7%20amd64%20%7C%20arm64-0A7EA4?style=flat-square\" alt=\"Support Matrix\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"DESIGN.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-DESIGN.md-1F6FEB?style=flat-square\" alt=\"Design Docs\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n**Resin** is a **high-performance intelligent proxy pool gateway** built for operating massive numbers of proxy nodes.\n\nIt helps shield your services from unstable underlying proxy nodes by aggregating distributed proxy resources into a unified proxy entrypoint with **session stickiness (sticky routing)**.\n\n## 💡 Why Resin?\n\n- **Massive-scale management**: Easily handles 100k+ proxy nodes with native high-concurrency performance.\n- **Smart scheduling and circuit breaking**: Fully automated **passive + active** health checks, outbound IP probing, and latency analysis to remove bad nodes precisely. Uses P2C plus domain-aware latency-weighted scoring for optimal node selection.\n- **Business-friendly sticky proxying**: Keeps the same business account bound to a stable outbound IP. If a node fails, Resin seamlessly switches to another node with the same IP.\n- **Multiple access modes**: Supports HTTP forward proxy, SOCKS5 forward proxy, and URL-based reverse proxy for different clients and integration styles.\n- **Observability**: Detailed metrics and logs, plus a visual Web UI. Includes complete structured request logs for querying and auditing by platform, account, target site, and more.\n- **Simple and powerful**: Works out of the box with default settings, while still offering deep customization for enterprise-grade needs.\n- **Cross-subscription deduplication**: Automatically merges identical nodes from different subscriptions and shares their health state.\n- **Hot reload**: Update common settings without restart. Refresh subscriptions without dropping existing traffic.\n- **Persistent state**: Keeps node health, latency stats, and lease bindings across restarts.\n- **Zero-intrusion sticky access**: Can extract account identity from existing request headers (for example API keys), so clients often need no code changes.\n- **Incremental subscription refresh**: Syncs subscription updates without interrupting current connections.\n- **Flexible node isolation**: Use Platform rules (regex, region, etc.) to build independent proxy pools for different business scenarios.\n\n> [!TIP]\n> You can feed this README and [`DESIGN.md`](DESIGN.md) to AI and ask it anything about the project.\n\n![](doc\u002Fimages\u002Fdashboard_en-us.png)\n\n---\n\n## 🔌 Supported Protocols and Subscription Formats\n\n### Subscription sources\n\n- Remote subscription URL: `http:\u002F\u002F` or `https:\u002F\u002F`.\n- Local subscription content: paste subscription content directly in the UI\u002FAPI.\n\n### Subscription content formats\n\n- sing-box JSON: `{\"outbounds\":[...]}` or raw outbound array `[...]`.\n- Clash JSON\u002FYAML: `{\"proxies\":[...]}` or YAML `proxies:`.\n- URI line format (one node per line): `vmess:\u002F\u002F`, `vless:\u002F\u002F`, `trojan:\u002F\u002F`, `ss:\u002F\u002F`, `hysteria2:\u002F\u002F`, `http:\u002F\u002F`, `https:\u002F\u002F`, `socks5:\u002F\u002F`, `socks5h:\u002F\u002F`.\n  For `http:\u002F\u002F`, `https:\u002F\u002F`, `socks5:\u002F\u002F`, `socks5h:\u002F\u002F`, use `scheme:\u002F\u002F[user:pass@]host:port` (optional `#tag`; `https` also supports `sni`\u002F`servername`\u002F`peer` and `allowInsecure`\u002F`insecure` query parameters).\n- Plain HTTP proxy lines: `IP:PORT` or `IP:PORT:USER:PASS` (IPv4 and IPv6).\n- Base64-wrapped text subscriptions (for URI lines\u002Fplain-text node lists).\n\n### Supported outbound node types\n\n- For sing-box JSON\u002Fraw outbounds: `socks`, `http`, `shadowsocks`, `vmess`, `trojan`, `wireguard`, `hysteria`, `vless`, `shadowtls`, `tuic`, `hysteria2`, `anytls`, `ssh`.\n- For Clash conversion: `ss`\u002F`shadowsocks`, `socks`\u002F`socks4`\u002F`socks4a`\u002F`socks5`, `http`, `vmess`, `vless`, `trojan`, `wireguard`\u002F`wg`, `hysteria`, `hysteria2`\u002F`hy2`, `tuic`, `anytls`, `ssh`.\n\n## 🚀 Quick Start\n\nIn just three steps, you can turn your proxy subscriptions into a highly available proxy pool.\n\n### Step 1: Deploy and start\n\nDocker Compose is the recommended quick-start path:\n\n```yaml\n# docker-compose.yml\nservices:\n  resin:\n    image: ghcr.io\u002Fresinat\u002Fresin:latest\n    container_name: resin\n    restart: unless-stopped\n    environment:\n      RESIN_AUTH_VERSION: \"V1\" # Required: LEGACY_V0 or V1\n      RESIN_ADMIN_TOKEN: \"admin123\" # Change to your admin dashboard password\n      RESIN_PROXY_TOKEN: \"my-token\" # Change to your proxy password\n      RESIN_LISTEN_ADDRESS: 0.0.0.0\n      RESIN_PORT: 2260\n    ports:\n      - \"2260:2260\"\n    volumes:\n      - .\u002Fdata\u002Fcache:\u002Fvar\u002Fcache\u002Fresin\n      - .\u002Fdata\u002Fstate:\u002Fvar\u002Flib\u002Fresin\n      - .\u002Fdata\u002Flog:\u002Fvar\u002Flog\u002Fresin\n```\n\nRun `docker compose up -d` to start the service.\n\n*(If you don't want Docker, jump to [Other Deployment Options](#other-deployment-options).)*\n\n### Step 2: Import proxy nodes\n\n1. Open `http:\u002F\u002F127.0.0.1:2260` in your browser (replace with your server IP if needed).\n2. Log in with the `RESIN_ADMIN_TOKEN` you set.\n3. Go to **Subscriptions** in the left menu and add your node subscription.\n4. Wait briefly for the node pool to refresh.\n\n### Step 3: Start sending proxy requests\n\nSee the following sections for client access modes. In common scenarios, you can choose HTTP forward proxy, SOCKS5 forward proxy, or reverse proxy based on what your client supports.\n\n## 🟢 Basic Usage (Non-sticky Proxy)\n\n### Connect as a standard proxy\n\nIf you just need a high-performance, large-capacity proxy pool with automatic health management, Resin works out of the box.\n\nOnce Resin is running, you can choose HTTP forward proxy, SOCKS5 forward proxy, or reverse proxy based on what your client supports.\nIf you do not want a proxy password, explicitly set `RESIN_PROXY_TOKEN=\"\"` (the variable must still be defined). Then HTTP forward proxy is available at `http:\u002F\u002F127.0.0.1:2260`, and SOCKS5 forward proxy is available at `socks5:\u002F\u002F127.0.0.1:2260`.\n\nHTTP forward proxy example:\n\n```bash\ncurl -x http:\u002F\u002F127.0.0.1:2260 \\\n  -U \":my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\nSOCKS5 forward proxy example (available only when `RESIN_AUTH_VERSION=V1`):\n\n```bash\ncurl --proxy socks5h:\u002F\u002F127.0.0.1:2260 \\\n  -U \"Default:my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\nIf you are still running `LEGACY_V0`, SOCKS5 inbound is not enabled. Keep using HTTP forward proxy, or complete migration before switching to `V1`. When `RESIN_PROXY_TOKEN=\"\"`, SOCKS5 also allows unauthenticated access.\n\nIf your client supports overriding `BASE_URL`, you can also use reverse-proxy mode.\nURL format: `\u002Ftoken\u002FPlatform(optional).Account(optional)\u002Fprotocol\u002Ftarget`.\nExample request to `https:\u002F\u002Fapi.ipify.org`:\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:2260\u002Fmy-token\u002F.\u002Fhttps\u002Fapi.ipify.org\n```\n\n> Choosing forward vs reverse proxy: when possible, reverse proxy is recommended for better observability. If your client cannot change BaseURL, or requires scenarios better served by forward proxy (such as uTLS or non-WebAPI traffic), use forward proxy.\n\n### Filter nodes\n\nIf your service needs specific nodes (for example by region, subscription source, or name regex), use Resin's Platform feature.\n\nOpen `http:\u002F\u002F127.0.0.1:2260\u002Fui\u002Fplatforms` and create a Platform. For example, to use only US and HK nodes, create `MyPlatform` and set region filters to:\n\n```\nus\nhk\n```\n\nFor forward proxy (HTTP \u002F SOCKS5), include Platform in the auth info. Examples:\n\n```bash\ncurl -x http:\u002F\u002F127.0.0.1:2260 \\\n  -U \"MyPlatform:my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\n```bash\ncurl --proxy socks5h:\u002F\u002F127.0.0.1:2260 \\\n  -U \"MyPlatform:my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\nFor reverse proxy, include Platform in the URL prefix:\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:2260\u002Fmy-token\u002FMyPlatform\u002Fhttps\u002Fapi.ipify.org\n```\n\n## 📖 Advanced Usage: Sticky Session Proxy\n\nWhen your business depends on IP continuity or long-lived interactions, use Resin's core feature: **sticky proxying**.\n\nFirst, understand two core concepts:\n\n### 🎯 Core Concepts: Platform and Account\n\n- **Platform**: An isolated node pool. You can build it with filters (for example, only US nodes). Resin provides a default `Default` platform containing all available nodes.\n- **Account**: A unique business identity (for example `Tom` or `user_1`). For requests carrying an Account, Resin anchors traffic to a dedicated high-quality outbound node. If that node fails, Resin retries seamlessly and switches to another node with the same IP.\n\n### Sticky proxy access formats\n\n#### Method 1: Forward proxy (HTTP Proxy \u002F SOCKS5)\n\nWith `RESIN_AUTH_VERSION=V1`, HTTP forward proxy and SOCKS5 forward proxy share the same identity format: `Platform.Account:RESIN_PROXY_TOKEN`.\n\n> To keep the legacy V0 format, set `RESIN_AUTH_VERSION=LEGACY_V0` and continue using `RESIN_PROXY_TOKEN:Platform:Account`. SOCKS5 forward proxy is not enabled in that mode.\n\nJust put the identity in proxy authentication:\n\n```bash\n# HTTP forward proxy: bind business account user_tom to a stable dedicated outbound IP\ncurl -x http:\u002F\u002F127.0.0.1:2260 \\\n  -U \"Default.user_tom:my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\n```bash\n# SOCKS5 forward proxy: uses the same identity format as HTTP forward proxy\ncurl --proxy socks5h:\u002F\u002F127.0.0.1:2260 \\\n  -U \"Default.user_tom:my-token\" \\\n  https:\u002F\u002Fapi.ipify.org\n```\n\n#### Method 2: Reverse proxy (URL Account, quick\u002Fmanual debug)\n\nBy replacing your service BaseURL with Resin reverse-proxy URL, traffic goes through Resin directly.\nAdvanced URL format: `http:\u002F\u002Fhost:2260\u002Ftoken\u002Fplatform.account\u002Fprotocol\u002Ftarget`:\n\n```bash\n# Example: user_tom accesses api.ipify.org over https\ncurl \"http:\u002F\u002F127.0.0.1:2260\u002Fmy-token\u002FDefault.user_tom\u002Fhttps\u002Fapi.ipify.org\"\n```\n\n> The URL Account segment is designed for quick use and manual debugging.\n> For long-running production integrations, prefer passing Account by header (`X-Resin-Account`).\n\n#### Method 3: Reverse proxy + `X-Resin-Account` header (recommended production integration)\n\nIf your client\u002FSDK supports custom request headers, pass Account explicitly with `X-Resin-Account`.\nThis is the recommended and most stable method.\n\nAccount source priority: `X-Resin-Account` header > Account in reverse-proxy URL > header extraction rules.\n\nExample:\n\n```bash\ncurl \"http:\u002F\u002F127.0.0.1:2260\u002Fmy-token\u002FMyPlatform\u002Fhttps\u002Fapi.example.com\u002Fv1\u002Forders\" \\\n  -H \"X-Resin-Account: user_tom\"\n```\n\n#### Method 4: Reverse proxy + header rules (zero\u002Flow-intrusion integration)\n\nIf your client cannot set `X-Resin-Account`, Resin can still extract Account from existing business headers (for example API Key, Token, Cookie) via header rules.\n\nAssume your requests already include an `Authorization` header:\n\n1. In Platform Configuration, set `Reverse-proxy empty-account behavior` to `Extract specified request headers as Account`.\n2. Set `Headers used to extract Account` to `Authorization`.\n\nThen even if Account is omitted in URL, Resin can still parse it from headers:\n\n```bash\ncurl \"http:\u002F\u002F127.0.0.1:2260\u002Fmy-token\u002FMyPlatform\u002Fhttps\u002Fapi.example.com\u002Fv1\u002Forders\" \\\n  -H \"Authorization: sk-abc123\"\n```\n\nIn this example, Resin uses `sk-abc123` as Account. Future requests with the same key are intended to stay bound to the same outbound IP whenever routing conditions allow.\n\n> [!TIP]\n> Beyond Platform header config, Resin also supports advanced rules that pick extraction headers by URL prefix. You can ask AI to explain both modes with this README and [DESIGN.md](DESIGN.md).\n\n> Enable header-based Account extraction only when you have a valid legal basis (for example user authorization or contractual permission), and ensure your logging, retention, and access-control policies comply with applicable laws and target-service terms.\n\n---\n\n## 🤖 Integrating Third-party Projects\n\nDifferent clients integrate Resin differently, with different code-intrusion levels.\n\n💡 **If you do not need sticky proxying**\n\n| Access Method | Code Intrusion | Notes |\n| :--- | :--- | :--- |\n| Forward proxy | 🟢 **Zero intrusion** | Just configure an HTTP or SOCKS5 proxy address plus credentials. |\n| Reverse proxy | 🟢 **Zero\u002Flow intrusion** | Usually only requires changing service BaseURL. |\n\n💡 **If you need sticky proxying**\n\n| Access Method | Code Intrusion | Notes |\n| :--- | :--- | :--- |\n| Forward proxy | 🟡 **Medium intrusion** | Per-user requests need different auth info. Under V1, both HTTP and SOCKS5 can use `platform.account:token`. |\n| Reverse proxy | 🟡 **Medium intrusion** | Add `X-Resin-Account` request header or build reverse-proxy URL paths dynamically with account information. |\n| Reverse proxy + header rules | 🟢 **Zero\u002Flow intrusion** | Resin can extract Account from original headers (for example `Authorization`) and bind IP automatically. |\n\n👉 **Fast integration script\u002Fprompt:**\nIf you are a developer and want AI to help modify an existing project for native Resin sticky integration, use:\n\n- [doc\u002Fintegration-prompt.md](doc\u002Fintegration-prompt.md)\n\n---\n\n## Other Deployment Options\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 1: Run prebuilt binary\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nGo to the project's \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FResinat\u002FResin\u002Freleases\">Release\u003C\u002Fa> page and download the package for your OS\u002Farchitecture. After extraction, run the single binary \u003Ccode>resin\u003C\u002Fcode>.\n\n```bash\nRESIN_ADMIN_TOKEN=\u003Cadmin-dashboard-password> \\\nRESIN_AUTH_VERSION=V1 \\\nRESIN_PROXY_TOKEN=\u003Cproxy-password> \\\nRESIN_STATE_DIR=.\u002Fdata\u002Fstate \\\nRESIN_CACHE_DIR=.\u002Fdata\u002Fcache \\\nRESIN_LOG_DIR=.\u002Fdata\u002Flog \\\nRESIN_LISTEN_ADDRESS=0.0.0.0 \\\nRESIN_PORT=2260 \\\n.\u002Fresin\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 2: Build from source\u003C\u002Fb>\u003C\u002Fsummary>\n\u003Cbr>\nPrerequisites: Go 1.25+ and Node.js installed.\n\n```bash\n# 1. Clone Resin source\ngit clone https:\u002F\u002Fgithub.com\u002FResinat\u002FResin.git\n\n# 2. Build WebUI\ncd Resin\u002Fwebui\nnpm install && npm run build\ncd ..\n\n# 3. Build Resin core\ngo build -tags \"with_quic with_wireguard with_grpc with_utls\" -o resin .\u002Fcmd\u002Fresin\n\n# 4. Run\nRESIN_ADMIN_TOKEN=\u003Cadmin-dashboard-password> \\\nRESIN_AUTH_VERSION=V1 \\\nRESIN_PROXY_TOKEN=\u003Cproxy-password> \\\nRESIN_STATE_DIR=.\u002Fdata\u002Fstate \\\nRESIN_CACHE_DIR=.\u002Fdata\u002Fcache \\\nRESIN_LOG_DIR=.\u002Fdata\u002Flog \\\nRESIN_LISTEN_ADDRESS=127.0.0.1 \\\nRESIN_PORT=2260 \\\n.\u002Fresin\n```\n\u003C\u002Fdetails>\n\n---\n\n## 🛠️ FAQ\n\n- **Q: How do I let LAN or localhost targets skip proxy nodes?**\n  - **A**: Set `RESIN_PROXY_BYPASS` to a semicolon\u002Fcomma\u002Fnewline-separated rule list. Matching requests are dialed directly by Resin instead of through a proxy node. Example: `RESIN_PROXY_BYPASS=\"localhost;127.*;10.*;172.16.0.0\u002F12;192.168.*;\u003Clocal>\"`. Supported rules include exact hosts, `*`\u002F`?` wildcards, CIDR ranges, and `\u003Clocal>` for hostnames without dots.\n- **Q: Startup fails with `RESIN_PROXY_TOKEN` undefined?**\n  - **A**: Even if you do not want a proxy password, you must explicitly set it to empty: `RESIN_PROXY_TOKEN=\"\"`.\n- **Q: Startup fails with `RESIN_AUTH_VERSION` undefined?**\n  - **A**: Set it to `LEGACY_V0` or `V1`. For new deployments, use `V1`. For upgrades with legacy data, see [doc\u002Fv1.0.0-migration-guide.md](doc\u002Fv1.0.0-migration-guide.md).\n- **Q: Why can't my SOCKS5 client connect?**\n  - **A**: First confirm that you are running with `RESIN_AUTH_VERSION=V1`; SOCKS5 inbound is not enabled under `LEGACY_V0`. If `RESIN_PROXY_TOKEN` is non-empty, the client must send SOCKS5 username\u002Fpassword authentication. If it is explicitly set to an empty string, `NO AUTH` is also allowed.\n- **Q: How to write reverse-proxy paths for WebSocket (ws\u002Fwss)?**\n  - **A**: In the URL path, the protocol field must still be `http` or `https` (not `ws`\u002F`wss`). Resin auto-detects and handles WebSocket upgrade.\n\n---\n\n## ⚠️ License and Disclaimer\n\n- **License**: This project is licensed under the [MIT License](LICENSE).\n- **Use scope**: This project is provided for technical research and engineering practice in proxy scheduling and management. It does not constitute legal, compliance, audit, or security advice.\n- **Lawful use requirement**: You are responsible for ensuring your usage complies with applicable laws, regulations, target-service Terms of Service (ToS), and data-processing obligations, and for ensuring you have proper authorization for proxy nodes, target resources, and related data.\n- **Prohibited use**: You must not use this project for unauthorized access, control-evasion, fraud, attacks, abusive traffic generation, or other illegal or non-compliant activity.\n- **No warranty**: This project is provided on an \"AS IS\" basis, without express or implied warranties, including but not limited to merchantability, fitness for a particular purpose, and non-infringement.\n- **Limitation of liability**: To the maximum extent permitted by applicable law, authors and contributors are not liable for any direct, indirect, incidental, special, exemplary, or consequential damages arising from use of, or inability to use, this project.\n","Resin 是一个高性能智能代理池网关，旨在管理和优化大规模的代理节点。其核心功能包括支持10万+代理节点的高并发处理能力、智能调度与熔断机制（通过被动加主动健康检查和延迟分析精准剔除不良节点）、业务友好的会话粘性代理（确保同一业务账号绑定到稳定的出口IP），以及多种接入模式（如HTTP正向代理、SOCKS5正向代理及基于URL的反向代理）。此外，Resin还提供了详细的监控指标与日志记录，并配备了一个直观的Web界面用于查询和审计。该项目非常适合需要对大量不稳定代理资源进行整合管理并提供稳定访问入口的企业级应用场景。",2,"2026-06-11 03:50:15","high_star"]