pub mod abi;
pub mod arena;
pub mod backpressure;
pub mod batch;
pub mod cache;
pub mod circuit;
pub mod deps;
pub mod discovery;
pub mod error;
pub mod events;
pub mod exports;
pub mod ffi;
pub mod health;
pub mod instance;
pub mod mhash;
pub mod metrics;
pub mod panic;
pub mod pool;
pub mod profile;
pub mod reload;
pub mod resolver;
pub mod resource;
pub mod runtime;
pub mod sandbox;
pub mod safety;
pub mod validation;
pub mod version;
pub use abi::{AbiInfo, AbiVersionError, MEMLINK_ABI_VERSION};
pub use arena::Arena;
pub use backpressure::{
BackpressureState, ModuleQuota, ModuleResources, ResourceManager, ResourceManagerStats,
BP_CRITICAL_THRESHOLD, BP_HIGH_THRESHOLD, BP_LOW_THRESHOLD, BP_MEDIUM_THRESHOLD,
};
pub use batch::{BatchConfig, BatchStats, RequestBatch, RequestBatcher, BatchedRequest};
pub use cache::{CacheConfig, CacheStats, RequestCache};
pub use circuit::{CircuitBreaker, CircuitConfig, CircuitRegistry, CircuitState, CircuitStats};
pub use deps::{CallContext, DependencyGraph, DependencyNode, ModuleDependency};
pub use discovery::{
DiscoveryConfig, DiscoveredModule, ModuleDiscovery, ModuleFile, ModuleStatus,
};
pub use error::{Error, Result};
pub use events::{
CallMiddleware, EventListener, EventRegistry, MiddlewareChain, ModuleEvent,
};
pub use exports::{ExportCategory, OPTIONAL_EXPORTS, REQUIRED_EXPORTS};
pub use ffi::{ModuleLoader, ModuleSymbols};
pub use health::{
HealthConfig, HealthRegistry, HealthStats, HealthStatus, HealthSummary, HealthTracker,
};
pub use instance::{ModuleInstance, ModuleProfile as InstanceProfile};
pub use mhash::fnv1a_hash;
pub use metrics::{Counter, Histogram, RuntimeMetrics};
pub use panic::{safe_call, safe_call_unchecked, PanicError};
pub use pool::{
InstanceStats, LoadBalanceStrategy, ModulePool, PoolConfig, PoolStats, PooledInstance,
};
pub use profile::ModuleProfile;
pub use reload::{ReloadConfig, ReloadState};
pub use resolver::{ArtifactHandle, ModuleRef, ModuleResolver};
pub use resource::{
AggregateClientStats, ClientId, ClientQuota, ClientRegistry, ClientResources, ClientStats,
};
pub use runtime::{ModuleHandle, ModuleRuntime, ModuleUsage, Runtime};
pub use sandbox::{
Permission, Permissions, ResourceTracker, ResourceUsage, SandboxConfig,
};
pub use safety::{MemoryTracker, SafetyConfig, StackDepth};
pub use validation::{validate_module, CachedValidation, ValidationCache, ValidationResult};
pub use version::{
ModuleVersion, TrafficRouting, VersionManager, VersionRegistry, VersionedModule,
};
pub mod prelude {
pub use crate::arena::Arena;
pub use crate::error::{Error, Result};
pub use crate::instance::ModuleInstance;
pub use crate::resolver::ModuleRef;
pub use crate::runtime::Runtime;
pub use memlink_protocol::{Request, Response, StatusCode};
}