{"id":15522014,"url":"https://github.com/hyperxpro/sourceenginequerycacher","last_synced_at":"2025-04-14T12:43:07.506Z","repository":{"id":39663037,"uuid":"242405670","full_name":"hyperxpro/SourceEngineQueryCacher","owner":"hyperxpro","description":"Source Engine Query Cacher","archived":false,"fork":false,"pushed_at":"2024-07-14T12:03:32.000Z","size":288,"stargazers_count":39,"open_issues_count":1,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T01:53:30.678Z","etag":null,"topics":["a2s","a2s-info","a2s-packets","query-cacher","source-engine"],"latest_commit_sha":null,"homepage":"","language":"Java","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/hyperxpro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"hyperxpro"}},"created_at":"2020-02-22T20:17:35.000Z","updated_at":"2025-03-03T01:55:21.000Z","dependencies_parsed_at":"2024-07-14T13:24:47.051Z","dependency_job_id":"d0ab8aa4-20f8-450c-a5d1-e7779888703e","html_url":"https://github.com/hyperxpro/SourceEngineQueryCacher","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperxpro%2FSourceEngineQueryCacher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperxpro%2FSourceEngineQueryCacher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperxpro%2FSourceEngineQueryCacher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperxpro%2FSourceEngineQueryCacher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperxpro","download_url":"https://codeload.github.com/hyperxpro/SourceEngineQueryCacher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248883235,"owners_count":21177184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["a2s","a2s-info","a2s-packets","query-cacher","source-engine"],"created_at":"2024-10-02T10:39:06.198Z","updated_at":"2025-04-14T12:43:07.484Z","avatar_url":"https://github.com/hyperxpro.png","language":"Java","funding_links":["https://github.com/sponsors/hyperxpro"],"categories":[],"sub_categories":[],"readme":"# Source Engine Query Cacher\n![Downloads](\nhttps://img.shields.io/github/downloads/hyperxpro/SourceEngineQueryCacher/total)\n\n\u003cp\u003e High-Performance Source Engine Query Cacher for caching and responding A2S_INFO and A2S_PLAYER packets. \u003c/p\u003e\n\u003cp\u003e Features:\n  \u003col\u003e\n    \u003cli\u003e Built on top of Netty. \u003c/li\u003e\n    \u003cli\u003e Uses Direct Buffers to minimize memory copy and garbage creation in JVM. \u003c/li\u003e\n    \u003cli\u003e Truely Asynchronous. \u003c/li\u003e\n    \u003cli\u003e Uses native Epoll Transport. \u003c/li\u003e\n    \u003cli\u003e In-Memory Cache for storing A2S_PLAYER challenge codes. \u003c/li\u003e\n    \u003cli\u003e Multi-threaded with configurable thread count for maximum performance \u003c/li\u003e\n    \u003cli\u003e Highly configurable using Configuration file or Process arguments. \u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/p\u003e\n\n## Requirements:\nJava 11 and Linux Kernel 3.9+.\n\n## How to run:\n1. [Download](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/what-is-corretto-11.html) and Install Java 11.\n2. Download Source Engine Query Cacher Binary.\n3. Execute the following command: `java -jar SourceEngineQueryCacher-1.6.6.jar`\n4. Source Engine Query Cacher will start and display 'Server Started on Socket: IP:PORT'.\n5. Configure IPTables for routing Query Packets and everything is done.\n\n## Redirect Query Packets to Query Cacher in Linux using IPTables\n```\niptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF54|' -j REDIRECT --to-ports 9110\niptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF55|' -j REDIRECT --to-ports 9110\niptables -t nat -A PREROUTING -p udp --dport 27015 --match string --algo kmp --hex-string '|FFFFFFFF41|' -j REDIRECT --to-ports 9110\n```\n## Configuration\n### Configuration File\nExecute the following command to load configuration file: `java -jar SourceEngineQueryCacher-1.6.6.jar -c Config.conf\n```\nThreads: Number of Threads\nStatsPPS: Enable Packets per Second Stats\nStatsbPS: Enable Bits per Second Stats\nGameUpdateInterval: Game Server Update rate in Milliseconds\nGameUpdateSocketTimeout: Game Server Update Socket Timeout in Milliseconds\nChallengeCodeTTL: Maximum Validity of Challenge Code in Milliseconds\nLocalServerIPAddress: IP Address on which Cacher Server will bind and listen\nLocalServerPort: Port on which Cacher Server will bind and listen\nGameServerIPAddress: Game Server IP Address\nGameServerPort: Game Server Port\nReceiveBufferSize: Server Receive Buffer Size\nSendBufferSize: Server Send Buffer Size\n```\n### Process Arguments\nExample: Execute the following command to pass Process Arguments: `java -jar SourceEngineQueryCacher-1.6.6.jar -bind 192.168.1.100 -port 27015`\n```\n-b,--bpsStats                          Enable Bits per Second Stats\n-bind \u003carg\u003e                            Local Server IP Address on which Cacher Server will bind and listen\n-c,--config \u003carg\u003e                      Configuration File Path\n-challengeCodeTTL \u003carg\u003e                Maximum Validity of Challenge Code in Milliseconds\n-gameip \u003carg\u003e                          Game Server IP Address\n-gameport \u003carg\u003e                        Game Server Port\n-gameUpdateRate \u003carg\u003e                  Game Server Update rate in  Milliseconds\n-gameUpdateTimeout \u003carg\u003e               Game Server Update Socket Timeout in Milliseconds\n-h,--help                              Display Usages\n-p,--ppsStats                          Enable Packets per Second Stats\n-port \u003carg\u003e                            Local Server Port on which Cacher Server will bind and listen\n-r,--receiveBuf \u003carg\u003e                  Server Receive Buffer Size\n-s,--sendBuf \u003carg\u003e                     Server Send Buffer Size\n-w,--threads \u003carg\u003e                     Number of Threads\n```\n\n# Sponsors\n```\nFATALITY~The ImmortaLs 24x7 PuB [bl4rr0w]\nWeb: https://www.gametracker.com/server_info/146.56.50.40:55555/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperxpro%2Fsourceenginequerycacher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperxpro%2Fsourceenginequerycacher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperxpro%2Fsourceenginequerycacher/lists"}