steam-vent 0.2.0

Interact with the Steam network via rust
Documentation
# Steam-Vent

### Interact with the Steam network via rust

Allows communication with the steam servers using the same protocol as the regular steam client.

## State

While the project is still very incomplete, the basics of authenticating to steam and sending requests is working.

- [x] Anonymous sessions
- [x] Password Authentication
- [ ] QR Authentication
- [x] Steam guard (device or email) confirmation
- [ ] Device notification confirmation
- [x] Saved machine token confirmation
- [x] Making RPC calls over the connection
- [ ] High level wrappers around the RPC calls 

## Usage

Note that this project is still in early development and api's might see large changes.

```rust
use std::error::Error;
use steam_vent::connection::Connection;
use steam_vent::proto::steammessages_gameservers_steamclient::CGameServers_GetServerList_Request;
use steam_vent::serverlist::ServerList;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let server_list = ServerList::discover().await?;
    let mut connection = Connection::anonymous(server_list).await?;

    let mut req = CGameServers_GetServerList_Request::new();
    req.set_limit(16);
    req.set_filter("\\appid\\440".into());
    let some_tf2_servers = connection.service_method(req).await?;
    for server in some_tf2_servers.servers {
        println!(
            "{}({}) playing {}",
            server.get_name(),
            server.get_addr(),
            server.get_map()
        );
    }

    Ok(())
}
```

## Credit

This is in large parts inspired by and based of [@DoctorMcKay's](https://github.com/DoctorMcKay) work on [SteamUser](https://github.com/DoctorMcKay/node-steam-user/),
massive credits go to all who worked on that.