Skip to main content

basilisk_rust_client/
lib.rs

1//! Basilisk Rust client for gateway registration and service-bus communication.
2
3pub mod basilisk_client;
4pub mod bus_client;
5pub mod error;
6pub mod gateway_api;
7pub mod protocol;
8
9/// Installs a `tracing` subscriber for Basilisk diagnostics.
10///
11/// The subscriber uses the `RUST_LOG` environment variable when it is set and
12/// defaults to the `INFO` level otherwise. Calling this is safe when the host
13/// application has already installed a subscriber; its initialization attempt
14/// is ignored in that case.
15pub fn init_tracing() {
16    use tracing_subscriber::EnvFilter;
17    use tracing_subscriber::layer::SubscriberExt;
18    use tracing_subscriber::util::SubscriberInitExt;
19
20    let (env_filter, filter_source) = match EnvFilter::try_from_default_env() {
21        Ok(filter) => (filter, "RUST_LOG"),
22        Err(_) => (EnvFilter::new("INFO"), "DEFAULT"),
23    };
24
25    let _ = tracing_subscriber::registry()
26        .with(env_filter)
27        .with(tracing_subscriber::fmt::layer())
28        .try_init();
29    tracing::info!(filter_source, "Log verbosity configured");
30}
31
32/// High-level client and configuration.
33pub use basilisk_client::{BasiliskClient, BasiliskClientConfig};
34/// Low-level service-bus client and request/response helper types.
35pub use bus_client::{
36    BusClient, ForwardRequest, RequestHandler, RequestResponder, ServiceBusRequest,
37};
38/// Error model for bus operations.
39pub use error::{ClientError, ClientResult};
40/// Gateway registry API client and payload types.
41pub use gateway_api::{
42    AuthInfo, GatewayApiClient, InstanceInfo, RegistrationRequest, RegistrationResponse,
43};
44/// Service-bus protocol frame and payload types.
45pub use protocol::{
46    ServiceBusEventEnvelope, ServiceBusForwardResponse, ServiceBusProtocolMessage, protocol_types,
47};