https://github.com/quakeworld/masterstat
Get server addresses from QuakeWorld master servers.
https://github.com/quakeworld/masterstat
quake quakeworld servers
Last synced: 10 months ago
JSON representation
Get server addresses from QuakeWorld master servers.
- Host: GitHub
- URL: https://github.com/quakeworld/masterstat
- Owner: quakeworld
- License: mit
- Created: 2024-04-25T13:41:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-27T18:59:51.000Z (11 months ago)
- Last Synced: 2025-02-28T03:16:15.323Z (11 months ago)
- Topics: quake, quakeworld, servers
- Language: Rust
- Homepage: https://crates.io/crates/masterstat
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# masterstat [](https://github.com/quakeworld/masterstat/actions/workflows/test.yml) [](https://crates.io/crates/masterstat) [](https://docs.rs/masterstat/)
> Get server addresses from QuakeWorld master servers
## Installation
```shell
cargo add masterstat
```
## Usage
**Get server addresses from a single master server**
```rust
use std::time::Duration;
async fn test() {
let master = "master.quakeworld.nu:27000";
let timeout = Duration::from_secs(2);
match masterstat::server_addresses(&master, timeout).await {
Ok(result) => { println!("found {} server addresses", result.len()) },
Err(e) => { eprintln!("error: {}", e); }
}
}
```
**Get server addresses from multiple master servers** (async, in parallel)
```rust
use std::time::Duration;
async fn test() {
let masters = ["master.quakeworld.nu:27000", "master.quakeservers.net:27000"];
let timeout = Duration::from_secs(2);
let result = masterstat::server_addresses_from_many(&masters, timeout).await;
println!("found {} server addresses", result.len());
}
```
## See also
* [masterstat](https://github.com/vikpe/masterstat) - golang version
* [masterstat-cli](https://github.com/vikpe/masterstat-cli) - CLI version