1#[cfg(not(any(feature = "websocket", feature = "quic", feature = "tcp")))]
20compile_error!(
21 "feature `server` requires at least one transport feature: `websocket`, `quic`, or `tcp`"
22);
23
24pub mod auth;
25pub mod builder;
26pub mod config;
27pub mod connection;
28pub mod device;
29pub mod events;
30pub mod handle;
31pub mod heartbeat;
32pub mod transports;
33
34pub use auth::{AuthResult, Authenticator, DefaultAuthenticator};
35pub use builder::{
36 FlareServer, FlareServerBuilder, MessageContext, ObserverServer, ObserverServerBuilder,
37 ServerBuilder, SimpleServer,
38};
39pub use config::ServerConfig;
40pub use connection::{ConnectionInfo, ConnectionManager, ConnectionManagerTrait, ConnectionStats};
41pub use device::{DeviceConflictStrategy, DeviceConflictStrategyBuilder, DeviceManager};
42pub use events::ServerEventHandler;
43pub use handle::{DefaultServerHandle, ServerHandle};
44pub use heartbeat::HeartbeatDetector;
45#[cfg(feature = "quic")]
46pub use transports::QUICServer;
47#[cfg(feature = "tcp")]
48pub use transports::TCPServer;
49#[cfg(feature = "websocket")]
50pub use transports::WebSocketServer;
51pub use transports::{ConnectionHandler, HybridServer, Server};
52
53pub use crate::common::error::Result;
55pub use crate::common::error::ServerError;
56
57pub use crate::common::config_types::TransportProtocol;