bevy_http_client

Crates.iobevy_http_client
lib.rsbevy_http_client
version0.6.0
sourcesrc
created_at2023-08-28 10:22:14.739458
updated_at2024-07-05 02:31:49.627908
descriptionA simple HTTP client for Bevy
homepage
repositoryhttps://github.com/foxzool/bevy_http_client
max_upload_size
id956817
size133,072
ZoOL (foxzool)

documentation

README

bevy_http_client

Crates.io Downloads Documentation MIT/Apache 2.0

A simple HTTP client Bevy Plugin for both native and WASM.

Example

use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_http_client::prelude::*;
use serde::Deserialize;

#[derive(Debug, Clone, Deserialize, Default)]
pub struct IpInfo {
    pub ip: String,
}

fn main() {
    let mut app = App::new();
    app.add_plugins((MinimalPlugins, HttpClientPlugin))
        .add_systems(Update, handle_response)
        .add_systems(
            Update,
            send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
        );
    app.register_request_type::<IpInfo>();
    app.run();
}

fn send_request(mut ev_request: EventWriter<TypedRequest<IpInfo>>) {
    ev_request.send(
        HttpClient::new()
            .get("https://api.ipify.org?format=json")
            .with_type::<IpInfo>(),
    );
}

fn handle_response(mut ev_response: EventReader<TypedResponse<IpInfo>>) {
    for response in ev_response.read() {
        println!("ip: {}", response.ip);
    }
}

Supported Versions

bevy bevy_http_client
0.14 0.6
0.13 0.4, 0,5
0.12 0.3
0.11 0.1

License

Dual-licensed under either:

at your option. This means that when using this crate in your game, you may choose which license to use.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 44

cargo fmt