35 lines
1.2 KiB
Rust
35 lines
1.2 KiB
Rust
use bevy::prelude::*;
|
|
use tracing_subscriber::EnvFilter;
|
|
|
|
use substrate::config::AppConfig;
|
|
use substrate::observability::ObservabilityPlugin;
|
|
use substrate::transport;
|
|
use substrate::world::WorldPlugin;
|
|
|
|
fn main() {
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter(
|
|
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")),
|
|
)
|
|
.init();
|
|
|
|
// rustls 0.23 requires an explicit default crypto provider. Quinn's
|
|
// ServerConfig::with_single_cert otherwise panics at first use.
|
|
rustls::crypto::aws_lc_rs::default_provider()
|
|
.install_default()
|
|
.expect("install rustls default crypto provider");
|
|
|
|
let config = AppConfig::load("config.toml").expect("Failed to load config");
|
|
tracing::info!(?config, "substrate starting");
|
|
|
|
// Plugin order matters: EcsQuicTransportPlugin inserts the TokioHandle
|
|
// resource ObservabilityPlugin reads in its `build()`.
|
|
App::new()
|
|
.insert_resource(config)
|
|
.add_plugins(MinimalPlugins)
|
|
.add_plugins(transport::ecs::EcsQuicTransportPlugin)
|
|
.add_plugins(WorldPlugin)
|
|
.add_plugins(ObservabilityPlugin)
|
|
.run();
|
|
}
|