1pub mod abi;
4pub mod arena;
5pub mod backpressure;
6pub mod batch;
7pub mod cache;
8pub mod circuit;
9pub mod deps;
10pub mod discovery;
11pub mod error;
12pub mod events;
13pub mod exports;
14pub mod ffi;
15pub mod health;
16pub mod instance;
17pub mod mhash;
18pub mod metrics;
19pub mod panic;
20pub mod pool;
21pub mod profile;
22pub mod reload;
23pub mod resolver;
24pub mod resource;
25pub mod runtime;
26pub mod sandbox;
27pub mod safety;
28pub mod validation;
29pub mod version;
30
31pub use abi::{AbiInfo, AbiVersionError, MEMLINK_ABI_VERSION};
32pub use arena::Arena;
33pub use backpressure::{
34 BackpressureState, ModuleQuota, ModuleResources, ResourceManager, ResourceManagerStats,
35 BP_CRITICAL_THRESHOLD, BP_HIGH_THRESHOLD, BP_LOW_THRESHOLD, BP_MEDIUM_THRESHOLD,
36};
37pub use batch::{BatchConfig, BatchStats, RequestBatch, RequestBatcher, BatchedRequest};
38pub use cache::{CacheConfig, CacheStats, RequestCache};
39pub use circuit::{CircuitBreaker, CircuitConfig, CircuitRegistry, CircuitState, CircuitStats};
40pub use deps::{CallContext, DependencyGraph, DependencyNode, ModuleDependency};
41pub use discovery::{
42 DiscoveryConfig, DiscoveredModule, ModuleDiscovery, ModuleFile, ModuleStatus,
43};
44pub use error::{Error, Result};
45pub use events::{
46 CallMiddleware, EventListener, EventRegistry, MiddlewareChain, ModuleEvent,
47};
48pub use exports::{ExportCategory, OPTIONAL_EXPORTS, REQUIRED_EXPORTS};
49pub use ffi::{ModuleLoader, ModuleSymbols};
50pub use health::{
51 HealthConfig, HealthRegistry, HealthStats, HealthStatus, HealthSummary, HealthTracker,
52};
53pub use instance::{ModuleInstance, ModuleProfile as InstanceProfile};
54pub use mhash::fnv1a_hash;
55pub use metrics::{Counter, Histogram, RuntimeMetrics};
56pub use panic::{safe_call, safe_call_unchecked, PanicError};
57pub use pool::{
58 InstanceStats, LoadBalanceStrategy, ModulePool, PoolConfig, PoolStats, PooledInstance,
59};
60pub use profile::ModuleProfile;
61pub use reload::{ReloadConfig, ReloadState};
62pub use resolver::{ArtifactHandle, ModuleRef, ModuleResolver};
63pub use resource::{
64 AggregateClientStats, ClientId, ClientQuota, ClientRegistry, ClientResources, ClientStats,
65};
66pub use runtime::{ModuleHandle, ModuleRuntime, ModuleUsage, Runtime};
67pub use sandbox::{
68 Permission, Permissions, ResourceTracker, ResourceUsage, SandboxConfig,
69};
70pub use safety::{MemoryTracker, SafetyConfig, StackDepth};
71pub use validation::{validate_module, CachedValidation, ValidationCache, ValidationResult};
72pub use version::{
73 ModuleVersion, TrafficRouting, VersionManager, VersionRegistry, VersionedModule,
74};
75
76pub mod prelude {
77 pub use crate::arena::Arena;
78 pub use crate::error::{Error, Result};
79 pub use crate::instance::ModuleInstance;
80 pub use crate::resolver::ModuleRef;
81 pub use crate::runtime::Runtime;
82 pub use memlink_protocol::{Request, Response, StatusCode};
83}