# Q3Tool
A Rust library for interacting with ioq3 (Quake 3) based game servers.
[](https://github.com/dogue/q3tool-rs/actions/workflows/rust.yml)
[](https://GitHub.com/dogue/q3tool-rs/issues/)
[](https://lbesson.mit-license.org/)
## Getting Started
### Quick Example
```rust
use q3tool::Q3Tool;
fn main() {
let q = Q3Tool::new("someserverhost:27960");
let server_info = q.get_status().unwrap();
// Print all public server c_vars
for (k, v) in server_info.vars() {
println!("{}: {}", k, v);
}
// Print all players
for player in server_info.players() {
println!("Name: {}, Score: {}, Ping: {}", player.name(), player.score(), player.ping());
}
}
```
## Current Status
Q3Tool is still very early in development. So far it seems to work fine, but there are likely to be breaking changes in the future.
Error handling is currently non-existent. This is being worked on.
## Running the tests
Tests are somwhat lacking at the moment, but this is being worked on.
`cargo test`
## Versioning
We use [Semantic Versioning](http://semver.org/) for versioning.
## License
This project is licensed under the [MIT License](LICENSE)