Skip to main content

this/server/
mod.rs

1//! Server module for building HTTP servers with auto-registered routes
2//!
3//! This module provides a `ServerBuilder` that automatically registers:
4//! - CRUD routes for all entities declared in modules
5//! - Link routes for bidirectional entity relationships
6//! - Introspection routes for API discovery
7//!
8//! The server architecture is modular and supports multiple exposure types:
9//! - REST (implemented)
10//! - GraphQL (available with 'graphql' feature)
11//! - gRPC (available with 'grpc' feature)
12//! - WebSocket (available with 'websocket' feature)
13//! - OpenAPI (planned)
14
15pub mod builder;
16pub mod entity_registry;
17pub mod exposure;
18pub mod host;
19pub mod router;
20
21pub use builder::ServerBuilder;
22pub use entity_registry::{EntityDescriptor, EntityRegistry};
23pub use exposure::RestExposure;
24pub use host::ServerHost;
25
26#[cfg(feature = "graphql")]
27pub use exposure::GraphQLExposure;
28
29#[cfg(feature = "websocket")]
30pub use exposure::WebSocketExposure;
31
32#[cfg(feature = "grpc")]
33pub use exposure::GrpcExposure;
34
35#[cfg(feature = "grpc")]
36pub use router::combine_rest_and_grpc;