https://github.com/in-line/source_query_cacher
https://developer.valvesoftware.com/wiki/Server_queries queries cacher. Currently supports A2S_INFO and A2S_PLAYER queries.
https://github.com/in-line/source_query_cacher
Last synced: 11 months ago
JSON representation
https://developer.valvesoftware.com/wiki/Server_queries queries cacher. Currently supports A2S_INFO and A2S_PLAYER queries.
- Host: GitHub
- URL: https://github.com/in-line/source_query_cacher
- Owner: In-line
- License: gpl-3.0
- Created: 2018-08-29T21:39:51.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-07-26T01:16:19.000Z (almost 5 years ago)
- Last Synced: 2025-04-07T15:54:44.057Z (about 1 year ago)
- Language: Rust
- Homepage:
- Size: 97.7 KB
- Stars: 15
- Watchers: 0
- Forks: 4
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# source_query_cacher [](https://travis-ci.org/In-line/source_query_cacher) [](https://ci.appveyor.com/project/In-line/source-query-cacher/branch/master)
Written in Rust, with love and care using Tokio framework. Should be as fast as hell, or slow as hell. I don't know, but you should try to use it anyway :)
Program is intended to prevent some types of DoS attacks targeted to `SRCDS`/`HLDS` servers by caching some requests before they even arrive to the server. To function properly it needs iptables rule to intercept incoming packets.
```
$ ./target/debug/bin --help
source_query_cacher 0.1.X
Alik Aslanyan
USAGE:
bin [OPTIONS] --list ...
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
--challenge-number-expire
Challenge number expire time in milliseconds. [default: 1000]
-c, --chunk-size
Number of servers to dispatched on the same thread. [default: 5]
--client-queue-expire
Client queue expire time in milliseconds. [default: 1000]
--ignore-unknown-challenge_numbers
Ignore unknown challenge numbers. Some monitorings violate protocol and don't request challenge numbers from
server. [default: false]
-l, --list ...
List of strings specified in "PROXY_IP:PORT SERVER_IP:PORT" format
-p, --update-period
Update period in milliseconds. [default: 1000]
```
Example usage:
```
$ ./source_query_cacher -p 1000 -c 5 -l "127.0.0.1:27015 127.0.0.1:27016" "127.0.0.1:27018 127.0.0.1:27019"
```
### Credits
Rust community! Especially [Rust Tokio](https://t.me/tokio_rust) and [Rust](https://t.me/rustlang_ru) russian telegram chats for the great help and support ։)