bevy_ehttp

Crates.iobevy_ehttp
lib.rsbevy_ehttp
version0.7.0
created_at2024-02-12 17:37:07.903673+00
updated_at2026-01-17 21:08:59.723783+00
descriptionA ehttp client plugin for Bevy
homepage
repositoryhttps://github.com/Leinnan/bevy_ehttp
max_upload_size
id1137202
size183,655
MevLyshkin (Leinnan)

documentation

README

bevy_ehttp

Crates.io Documentation MIT/Apache 2.0

A ehttp Bevy Plugin that works both on native and on WASM.

Simple request will invoke OnResponseString(pub Result<Response, String>) event once completed.

There is also option to call typed request that will allow to deserialize response to given type by using RequestBundle<T>. More details available in typed.rs example.

Example

use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_ehttp::prelude::*;

fn main() {
    App::new()
        .add_plugins((MinimalPlugins, HttpPlugin))
        .add_systems(
            Update,
            send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
        )
        .add_observer(on_response)
        .run();
}

fn send_request(mut commands: Commands) {
    commands.spawn(HttpRequest::get("https://api.ipify.org?format=json"));
}

fn on_response(t: On<OnResponseString>) {
    match &**t {
        Ok(response) => println!("[{:?}]: {:?}", t.url(), response.text()),
        Err(e) => println!("response error: {:?}", e),
    }
}

Thanks

Big thanks to the creators of the Bevy Engine and to the foxzool user for creating bevy_http_client that this plugin is based on.

License

bevy_ehttp is dual-licensed under MIT and Apache 2.0 at your option.

Bevy compatibility table

Bevy version Crate version
0.18 0.7
0.17 0.6
0.16 0.5
0.15 0.4
0.14 0.3
0.13 0.2
0.12 0.1
Commit count: 25

cargo fmt