Skip to main content

forge_runtime/
lib.rs

1//! Forge runtime engine.
2//!
3//! Implements the Axum gateway, job worker, workflow executor, cron scheduler,
4//! daemon runner, reactivity system, cluster coordination, rate limiting,
5//! observability, and product analytics (signals).
6//!
7//! The runtime wires together types from `forge-core` into a production server
8//! started via `Forge::builder().auto_register().build()?.run().await`.
9
10pub use sqlx;
11
12pub mod cluster;
13pub mod cron;
14pub mod daemon;
15pub mod db;
16pub mod function;
17pub mod gateway;
18pub mod jobs;
19pub mod mcp;
20pub mod migrations;
21pub mod observability;
22pub mod rate_limit;
23pub mod realtime;
24pub mod signals;
25pub mod testing;
26pub mod webhook;
27pub mod workflow;
28
29pub use cluster::{
30    GracefulShutdown, HeartbeatConfig, HeartbeatLoop, InFlightGuard, LeaderConfig, LeaderElection,
31    LeaderGuard, NodeCounts, NodeRegistry, ShutdownConfig,
32};
33pub use cron::{CronEntry, CronRecord, CronRegistry, CronRunner, CronStatus};
34pub use daemon::{DaemonEntry, DaemonRegistry, DaemonRunner, DaemonRunnerConfig};
35pub use db::Database;
36pub use function::{FunctionExecutor, FunctionRegistry, FunctionRouter, RouteResult};
37pub use gateway::{
38    AuthMiddleware, GatewayConfig, GatewayServer, RpcError, RpcHandler, RpcRequest, RpcResponse,
39    TracingMiddleware,
40};
41pub use jobs::{
42    JobDispatcher, JobExecutor, JobQueue, JobRecord, JobRegistry, Worker, WorkerConfig,
43};
44pub use mcp::{McpToolEntry, McpToolRegistry};
45pub use migrations::{MigrationExecutor, MigrationGenerator, SchemaDiff};
46pub use observability::{
47    TelemetryConfig, TelemetryError, build_env_filter, init_telemetry, shutdown_telemetry,
48};
49pub use rate_limit::RateLimiter;
50pub use realtime::{
51    AdaptiveTracker, AdaptiveTrackingConfig, AdaptiveTrackingStats, ChangeListener,
52    InvalidationEngine, RealtimeConfig, RealtimeMessage, SessionManager, SessionServer,
53    SubscriptionManager,
54};
55pub use webhook::{WebhookEntry, WebhookRegistry, WebhookState, webhook_handler};
56pub use workflow::{
57    EventStore, WorkflowEntry, WorkflowExecutor, WorkflowRecord, WorkflowRegistry,
58    WorkflowScheduler, WorkflowSchedulerConfig, WorkflowStepRecord,
59};