1#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
2#![deny(missing_docs)]
3#![expect(unsafe_op_in_unsafe_fn)]
4
5mod component;
6#[doc(hidden)]
7pub mod extension;
8pub mod host_io;
9#[cfg(feature = "jq-selection")]
10pub mod jq_selection;
11#[cfg(feature = "test-utils")]
12pub mod test;
13pub mod types;
14
15pub use extension::{resolver::Subscription, Authenticator, Extension, Resolver};
16pub use grafbase_sdk_derive::{AuthenticationExtension, ResolverExtension};
17pub use wit::{Error, Headers, NatsAuth, NatsStreamDeliverPolicy, SharedContext};
18
19use component::Component;
20
21#[cfg(target_arch = "wasm32")]
22#[unsafe(link_section = "sdk:minimum-gateway-version")]
23#[doc(hidden)]
24pub static MINIMUM_GATEWAY_VERSION: [u8; 6] =
25 *include_bytes!(concat!(env!("OUT_DIR"), "/minimum_gateway_version_bytes"));
26
27#[cfg(target_arch = "wasm32")]
28#[unsafe(link_section = "sdk:version")]
29#[doc(hidden)]
30pub static SDK_VERSION: [u8; 6] = *include_bytes!(concat!(env!("OUT_DIR"), "/sdk_version_bytes"));
31
32#[doc(hidden)]
33mod wit {
34 #![expect(missing_docs)]
35
36 wit_bindgen::generate!({
37 skip: ["register-extension"],
38 path: "./wit/world.wit",
39 world: "sdk",
40 });
41
42 pub use exports::grafbase::sdk::extension::Guest;
43 pub use grafbase::sdk::types::*;
44}
45
46wit::export!(Component with_types_in wit);