Skip to main content

barbacane_plugin_sdk/
lib.rs

1//! SDK for building Barbacane WASM plugins.
2//!
3//! Provides `Request`, `Response`, and `Action` types, along with
4//! `#[barbacane_middleware]` and `#[barbacane_dispatcher]` macros
5//! that generate the required WASM export glue.
6//!
7//! # Example
8//!
9//! ```ignore
10//! use barbacane_plugin_sdk::prelude::*;
11//!
12//! #[barbacane_middleware]
13//! #[derive(serde::Deserialize)]
14//! struct RateLimiter {
15//!     quota: u32,
16//!     window: u32,
17//! }
18//!
19//! impl RateLimiter {
20//!     fn on_request(&mut self, req: Request) -> Action<Request> {
21//!         Action::Continue(req)
22//!     }
23//!
24//!     fn on_response(&mut self, resp: Response) -> Response {
25//!         resp
26//!     }
27//! }
28//! ```
29
30pub mod body;
31pub mod types;
32
33/// Re-export proc macros for plugin development.
34pub use barbacane_plugin_macros::{barbacane_dispatcher, barbacane_middleware};
35
36pub mod prelude {
37    pub use crate::body::*;
38    pub use crate::types::*;
39    pub use crate::{barbacane_dispatcher, barbacane_middleware};
40}