origin-sdk 0.2.0

A Rust implementation of the Origin SDK, which is used in games to communicate with the EA Desktop client.
Documentation
use origin_sdk::sdk::{ClientConfig, OriginSdk, ORIGIN_SDK_PORT};

use origin_sdk::protocol::achievements::*;
use origin_sdk::protocol::auth::*;
use origin_sdk::protocol::broadcast::*;
use origin_sdk::protocol::chat::*;
use origin_sdk::protocol::chunk::*;
use origin_sdk::protocol::commerce::*;
use origin_sdk::protocol::common::*;
use origin_sdk::protocol::entitlements::*;
use origin_sdk::protocol::friends::*;
use origin_sdk::protocol::game::*;
use origin_sdk::protocol::groups::*;
use origin_sdk::protocol::invites::*;
use origin_sdk::protocol::overlay::*;
use origin_sdk::protocol::permissions::*;
use origin_sdk::protocol::presence::*;
use origin_sdk::protocol::profile::*;
use origin_sdk::protocol::steam::*;
use origin_sdk::protocol::system::*;
use origin_sdk::protocol::user::*;
use origin_sdk::protocol::voip::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // This configuration defines the game to the Origin SDK server
    let config = ClientConfig {
        content_id: "Origin.OFR.50.0001000".to_string(),
        language: "".to_string(),
        multiplayer_id: "".to_string(),
        title: "".to_string(),
        version_override: None,
    };

    // Connect to the Origin SDK server with the given configuration and the default port
    let (client, _) = OriginSdk::connect(config, ORIGIN_SDK_PORT).await?;

    // let _event_handle = tokio::spawn(async move {
    //     while let Some(event) = event_rx.recv().await {
    //         println!("{:#?}", event.body);
    //     }
    // });

    let info = client.request(GetProfile { index: 0 }).await?;
    let res = client.request(ShowIgo { b_show: true }).await;

    match res {
        Ok(res) => println!("{:#?}", res),
        Err(err) => println!("{:#?}", err),
    }

    tokio::signal::ctrl_c().await?;

    Ok(())
}