Skip to main content

appcore_gateway/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/07/26 08:53:09 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/08/02 12:48:56 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Multi-tenant Gateway capability for the AppCore Runtime.
12
13#![deny(missing_docs)]
14
15pub mod authorization;
16pub mod capability;
17pub mod config;
18pub mod connection;
19pub mod error;
20pub mod heartbeat;
21pub mod mesh;
22pub mod metrics;
23pub mod registry;
24pub mod resolver;
25pub mod router;
26pub mod runtime;
27pub mod service;
28pub mod session;
29pub mod socket;
30pub mod state;
31pub mod tenant;
32
33pub use appcore_distributed_contracts::{
34    OpaqueContentEnvelopeV1, OpaqueEnvelopeDecision, OpaqueEnvelopeDeduplicator,
35    OpaqueEnvelopePolicy, OPAQUE_CONTENT_ENVELOPE_SCHEMA_V1,
36};
37pub use authorization::{
38    client_connection_hash, gateway_token_claims, worker_connection_hash,
39    GATEWAY_CONNECTION_TOKEN_TTL_MS,
40};
41pub use capability::{
42    gateway_capability_descriptor, GatewayCapability, GATEWAY_RUNTIME_CAPABILITY,
43};
44pub use config::{GatewayConfig, GATEWAY_ADAPTER_NAME, GATEWAY_PROVIDER_ID};
45pub use connection::{ClientConnection, WorkerConnection, WorkerConnectionKey};
46pub use error::{GatewayError, GatewayResult};
47pub use heartbeat::spawn_heartbeat_pruner;
48pub use mesh::{
49    MeshPeerRequest, MeshPeerResponse, MeshPeerTransport, MESH_HTTP_SCHEMA_V1, MESH_PEER_RELAY_PATH,
50};
51pub use metrics::GatewayMetrics;
52pub use registry::CapabilityRegistry;
53pub use resolver::CapabilityResolver;
54pub use router::EnvelopeRouter;
55pub use runtime::{GatewayRuntime, GatewayRuntimeSnapshot, GatewayRuntimeState};
56pub use service::make_gateway_router;
57pub use session::GatewaySession;
58pub use state::GatewayState;
59pub use tenant::TenantState;
60
61#[cfg(test)]
62mod tests;