grafbase_sdk/
lib.rs

1#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
2#![doc = "# Features"]
3#![doc = document_features::document_features!()]
4#![deny(missing_docs, unused_crate_dependencies)]
5
6mod cbor;
7mod component;
8#[doc(hidden)]
9pub mod extension;
10pub mod host_io;
11#[cfg(feature = "jq-selection")]
12pub mod jq_selection;
13#[cfg(feature = "test-utils")]
14pub mod test;
15pub mod types;
16
17pub use component::SdkError;
18pub use extension::{
19    AuthenticationExtension, AuthorizationExtension, IntoQueryAuthorization, ResolverExtension, Subscription,
20};
21pub use grafbase_sdk_derive::{AuthenticationExtension, AuthorizationExtension, ResolverExtension};
22
23use component::Component;
24
25#[cfg(target_arch = "wasm32")]
26#[unsafe(link_section = "sdk:minimum-gateway-version")]
27#[doc(hidden)]
28pub static MINIMUM_GATEWAY_VERSION: [u8; 6] =
29    *include_bytes!(concat!(env!("OUT_DIR"), "/minimum_gateway_version_bytes"));
30
31#[cfg(target_arch = "wasm32")]
32#[unsafe(link_section = "sdk:version")]
33#[doc(hidden)]
34pub static SDK_VERSION: [u8; 6] = *include_bytes!(concat!(env!("OUT_DIR"), "/sdk_version_bytes"));
35
36#[doc(hidden)]
37mod wit {
38    #![expect(missing_docs)]
39
40    wit_bindgen::generate!({
41        skip: ["register-extension"],
42        path: "./wit/since_0_10_0/",
43        world: "sdk",
44    });
45
46    pub use exports::grafbase::sdk::authentication::{Guest as AuthenticationGuest, Token};
47    pub use exports::grafbase::sdk::authorization::{
48        AuthorizationDecisions, AuthorizationDecisionsDenySome, Guest as AuthorizationGuest,
49    };
50    pub use exports::grafbase::sdk::init::Guest as InitGuest;
51    pub use exports::grafbase::sdk::resolver::{FieldOutput, Guest as ResolverGuest};
52
53    pub use grafbase::sdk::access_log::*;
54    pub use grafbase::sdk::cache::*;
55    pub use grafbase::sdk::directive::*;
56    pub use grafbase::sdk::error::*;
57    pub use grafbase::sdk::headers::*;
58    pub use grafbase::sdk::http_client::*;
59    pub use grafbase::sdk::nats_client::*;
60}
61
62wit::export!(Component with_types_in wit);
63
64mod sealed {
65    pub trait Sealed {}
66}