pdk_classy/
hl.rs

1// Copyright (c) 2025, Salesforce, Inc.,
2// All rights reserved.
3// For full license text, see the LICENSE.txt file
4
5//! The PDK High Level Framework.
6//!
7//! The PDK High Level Framework is the foundation for writting single-threaded
8//! non-blocking filters as main building block for custom policies.
9//!
10//! `pdk::hl` relies on a reduced portion of the Rust async ecosystem, due to the limitations
11//! of the underlying WebAssembly platform and their single-threaded nature.
12//! Despite being single-threaded, `pdk::hl` supports concurrent execution of
13//! multiple incoming HTTP flows (Request/Response pairs).
14
15mod body;
16mod body_stream;
17mod bootstrap;
18pub mod context;
19mod dynamic_exchange;
20mod early_response;
21mod entity;
22mod entrypoint;
23mod flow;
24mod headers;
25#[cfg(feature = "experimental_enable_stop_iteration")]
26mod headers_body;
27mod request;
28mod request_data;
29mod response;
30
31pub use super::bootstrap::{LaunchError, Launcher};
32pub use super::Configuration;
33pub use body_stream::{BodyStream, BodyStreamAsyncReader};
34pub use bootstrap::{on_request, on_response};
35pub use early_response::Response;
36#[cfg(feature = "experimental_enable_stop_iteration")]
37pub use entity::IntoHeadersBodyState;
38pub use entity::{
39    BodyError, BodyHandler, BodyState, BodyStreamState, Chunk, EntityState, HeadersBodyHandler,
40    HeadersBodyState, HeadersHandler, HeadersState, IntoBodyState, IntoBodyStreamState,
41};
42pub use flow::{Flow, IntoFlow};
43#[cfg(feature = "experimental_enable_stop_iteration")]
44pub use request::RequestHeadersBodyState;
45pub use request::{RequestBodyState, RequestBodyStreamState, RequestHeadersState, RequestState};
46pub use request_data::RequestData;
47#[cfg(feature = "experimental_enable_stop_iteration")]
48pub use response::ResponseHeadersBodyState;
49pub use response::{
50    ResponseBodyState, ResponseBodyStreamState, ResponseHeadersState, ResponseState,
51};
52
53pub use super::grpc;
54pub use super::timer;
55
56pub use crate::client::{
57    HttpClient, HttpClientError, HttpClientResponse, InvalidUri, Service, Uri,
58};
59pub use crate::stream::{PropertyAccessor, StreamProperties};