Skip to main content

laser_sdk/
lib.rs

1#![forbid(unsafe_code)]
2
3#[cfg(doctest)]
4#[doc = include_str!("../README.md")]
5mod crate_readme {}
6
7#[cfg(doctest)]
8#[doc = include_str!("../../README.md")]
9mod workspace_readme {}
10
11#[cfg(feature = "a2a-bridge")]
12pub mod a2a;
13#[cfg(feature = "agent")]
14pub mod agent;
15#[cfg(feature = "agui")]
16pub mod agui;
17#[cfg(feature = "agent")]
18pub mod batching;
19#[cfg(feature = "agent")]
20pub mod blob;
21// The `bridge_hops` loop guard both protocol bridges stamp.
22#[cfg(any(feature = "a2a-bridge", feature = "mcp-bridge"))]
23mod bridge_hops;
24pub mod capabilities;
25#[cfg(feature = "streaming")]
26mod connect_options;
27#[cfg(feature = "agent")]
28pub mod context;
29#[cfg(feature = "agent")]
30pub mod context_scope;
31// The shared control-command publish path, used by the projection registry
32// and session source registration.
33#[cfg(any(feature = "projections", feature = "agent"))]
34mod control;
35#[cfg(feature = "agent")]
36pub mod crash_context;
37#[cfg(feature = "streaming")]
38pub mod cursor;
39#[cfg(feature = "destinations")]
40pub mod destinations;
41#[cfg(any(feature = "a2a-bridge", feature = "mcp-bridge"))]
42pub mod edge_auth;
43pub mod error;
44pub mod filters;
45pub mod fork;
46#[cfg(feature = "agent")]
47pub mod govern;
48#[cfg(feature = "graph")]
49pub mod graph;
50#[cfg(feature = "agent")]
51pub mod intent;
52pub mod kv;
53#[cfg(feature = "streaming")]
54pub mod laser;
55#[cfg(any(
56    feature = "filters",
57    feature = "fork",
58    feature = "destinations",
59    feature = "graph",
60    feature = "kv",
61    feature = "projections",
62    feature = "query",
63    feature = "rbac"
64))]
65mod managed;
66#[cfg(feature = "streaming")]
67mod managed_route;
68#[cfg(feature = "mcp-bridge")]
69pub mod mcp;
70#[cfg(feature = "agent")]
71pub mod memory;
72#[cfg(feature = "streaming")]
73pub mod message;
74#[cfg(feature = "streaming")]
75mod poll;
76pub mod prelude;
77#[cfg(feature = "projections")]
78pub mod projections;
79pub mod provenance;
80#[cfg(feature = "streaming")]
81mod publish_options;
82pub mod query;
83#[cfg(feature = "rbac")]
84pub mod rbac;
85mod retry;
86#[cfg(feature = "schema-codecs")]
87pub mod schema_codecs;
88#[cfg(feature = "sign")]
89pub mod sign;
90pub mod snapshot;
91#[cfg(feature = "agent")]
92pub mod state_store;
93#[cfg(feature = "streaming")]
94pub mod stream;
95#[cfg(feature = "agent")]
96pub mod swarm;
97#[cfg(feature = "agent")]
98pub mod testing;
99#[cfg(feature = "streaming")]
100pub mod typed;
101pub mod types;
102#[cfg(feature = "watch")]
103pub mod watch;
104
105pub use error::LaserError;
106// The wire contract crate, re-exported whole as `laser_sdk::wire::*` (the
107// per-module shims above keep the historical paths working too).
108pub use laser_wire as wire;
109// The underlying Apache Iggy client crate, re-exported whole as
110// `laser_sdk::iggy::*`. The SDK's own surface hands back iggy types (a
111// `Laser::client()` handle, an `iggy_consumer_group()` builder, `Identifier`,
112// `PollingStrategy`, header keys), so a consumer that drops to that seam names
113// them through here at the exact version the SDK builds against, instead of
114// adding a separate `iggy` dependency that must be kept version-matched by hand.
115pub use iggy;