{"id":21546476,"url":"https://github.com/frkn-dev/pony","last_synced_at":"2026-04-08T19:00:46.310Z","repository":{"id":260132543,"uuid":"870610194","full_name":"frkn-dev/pony","owner":"frkn-dev","description":"Platfrom to manage xray/wireguard/hysteria2","archived":false,"fork":false,"pushed_at":"2026-03-30T18:45:39.000Z","size":7741,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-03T04:54:15.325Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://frkn.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frkn-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-10T10:58:41.000Z","updated_at":"2026-03-30T18:45:43.000Z","dependencies_parsed_at":"2025-12-26T01:07:27.464Z","dependency_job_id":null,"html_url":"https://github.com/frkn-dev/pony","commit_stats":null,"previous_names":["frkn-dev/pony"],"tags_count":123,"template":false,"template_full_name":null,"purl":"pkg:github/frkn-dev/pony","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frkn-dev%2Fpony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frkn-dev%2Fpony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frkn-dev%2Fpony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frkn-dev%2Fpony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frkn-dev","download_url":"https://codeload.github.com/frkn-dev/pony/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frkn-dev%2Fpony/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31569400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T06:12:15.859Z","updated_at":"2026-04-08T19:00:46.304Z","avatar_url":"https://github.com/frkn-dev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Release](https://github.com/frkn-dev/pony/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/frkn-dev/pony/actions/workflows/release.yml) [![Pony Build](https://github.com/frkn-dev/pony/actions/workflows/rust.yml/badge.svg?branch=main)](https://github.com/frkn-dev/pony/actions/workflows/rust.yml)\n\n# Pony - a cluster platform for Xray/Shadowsocks/Hysteria2/Wireguard/MTproto\n\nPony is a lightweight control plane and orchestration platform for modern proxy protocols. It simplifies the deployment and unified management of Xray, Shadowsocks, Hysteria2, MTproto and Wireguard servers, providing a single pane of glass for your network infrastructure.\n\n## Architecture\n\nContains parts\n\n- agent — manages Xray/Wireguard/Hysteria2 connections/users/metrics\n- api — manages cluster of servers, gets API calls and send commands to servers\n- auth — handles auth for Hysteri2 cleints \n- utils — helper to work/debug Bin messages\n\n### As dependencies the platfrom has\n\n- ZeroMQ — communicating bus\n- PostgreSQL — user and node data storage\n- Xray Core\n- Hysteria2\n- MTproto\n- Wireguard\n- Nginx — reverse proxy\n\n### Features\n\n- Standalone Agent — can run without external dependencies: just WG or/and Xray Core and a config file.\n- Automatic Xray Config Parsing — reads xray-config.json to fetch inbounds and settings automatically.\n- Low Resource Usage — works perfectly on low-cost 1 CPU ($5 VPS) machines.\n- Protocol Support — handles VLESS TCP, VLESS gRPC, VLESS Xhttp, Hysteria2 and Wireguard connections.\n- Cluster Management — API manages users and nodes across the entire cluster.\n- Node Health Monitoring — API periodically checks the health and status of all connected nodes.\n- Metrics System — system and logic metrics are collected in Graphite format and stored in Clickhouse for analytics.\n- Trial User Support — supports trial users with daily traffic limitation control.\n\n# Utils — CLI Tool for Working with rkyv Messages and ZeroMQ\n\n## Overview\n\nutils is a command-line utility to generate, verify, and send binary rkyv messages used in the messaging system over ZeroMQ. It helps to easily create valid messages from JSON, serialize them to binary files, and publish them on a ZeroMQ topic.\nUsage\n\nGenerate binary message from JSON\n\n```\ncargo run --bin utils gen -i path/to/input.json -o path/to/output.bin\n\n    -i — path to the JSON file describing the message\n\n    -o — path to save the generated binary file\n\n    The JSON must match the Message struct format.\n```\n\nSend a binary message to ZeroMQ publisher\n\n```\ncargo run --bin utils send -t topic -i path/to/message.bin -a tcp://127.0.0.1:3000\n\n    -t — topic (channel) to publish on\n\n    -i — path to the binary message file\n\n    -a — ZeroMQ publisher address\n```\n\nCombined mode: generate and send in one step\n\n    cargo run --bin utils all -i path/to/input.json -b path/to/output.bin -t topic -a tcp://127.0.0.1:3000`\n\nGenerates binary from JSON, saves it, and immediately publishes it to the given topic and address.\n\n```\nExample JSON for Message\n\n{\n  \"conn_id\": \"9658b391-01cb-4031-a3f5-6cbdd749bcff\",\n  \"action\": \"Create\",\n  \"tag\": \"Wireguard\",\n  \"wg\": {\n    \"keys\": {\n      \"privkey\": \"privatekeyhere\",\n      \"pubkey\": \"publickeyhere\"\n    },\n    \"address\": {\n      \"ip\": \"10.10.0.24\",\n      \"cidr\": 32\n    }\n  },\n  \"password\": null\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrkn-dev%2Fpony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrkn-dev%2Fpony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrkn-dev%2Fpony/lists"}