barbacane-wasm 0.7.0

WASM plugin runtime for Barbacane API gateway
Documentation
//! WASM plugin runtime for Barbacane API gateway.
//!
//! This crate provides the wasmtime-based runtime for loading and executing
//! WASM plugins (middlewares and dispatchers) according to SPEC-003.

mod body_access;
pub mod broker;
pub mod cache;
mod chain;
mod circuit_breaker;
pub mod crypto;
mod engine;
mod error;
mod host;
mod http_client;
mod instance;
pub mod kafka_client;
mod limits;
mod manifest;
pub mod nats_client;
mod pool;
pub mod rate_limiter;
mod schema;
pub mod secrets;
#[cfg(test)]
mod serde_compat;
mod trap;
mod validate;
pub mod version;
pub mod ws_client;

pub use body_access::BodyAccessControl;
pub use chain::{
    execute_on_request, execute_on_request_with_metrics, execute_on_response,
    execute_on_response_partial, execute_on_response_with_metrics, parse_middleware_output,
    ChainResult, MetricsCallback, MiddlewareChain, MiddlewareConfig, OnRequestResult,
};
pub use engine::WasmEngine;
pub use error::WasmError;
pub use instance::{PluginInstance, RequestContext, StreamEvent};
pub use limits::PluginLimits;
pub use manifest::{Capabilities, PluginManifest, PluginMeta, PluginType};
pub use pool::{InstanceKey, InstancePool};
pub use schema::ConfigSchema;
pub use secrets::{
    collect_secret_references, is_secret_reference, resolve_all_secrets, resolve_config_secrets,
    resolve_secret, SecretsError, SecretsStore,
};
pub use trap::{TrapContext, TrapResult};
pub use validate::{validate_exports, validate_imports};

// Rate limiter for host_rate_limit_check
pub use rate_limiter::{RateLimitResult, RateLimiter, RateLimiterStats};

// Response cache for host_cache_get/set
pub use cache::{CacheEntry, CacheResult, CacheStats, ResponseCache};

// HTTP client for host_http_call
pub use circuit_breaker::{CircuitBreaker, CircuitBreakerConfig, CircuitState};
pub use http_client::{
    HttpClient, HttpClientConfig, HttpClientError, HttpRequest, HttpResponse, TlsConfig,
    TlsConfigError,
};

// Message broker types for event dispatch
pub use broker::{BrokerError, BrokerMessage, PublishResult};

// Kafka publisher for host_kafka_publish
pub use kafka_client::KafkaPublisher;

// NATS publisher for host_nats_publish
pub use nats_client::NatsPublisher;

// WebSocket client for host_ws_upgrade
pub use ws_client::UpstreamWsStream;

/// Re-export plugin SDK types for convenience.
pub use barbacane_plugin_sdk::prelude::{Action, Request, Response};