Skip to main content

krabka_app_sdk/
lib.rs

1//! Krabka application SDK for Rust.
2//!
3//! This crate implements the cross-language application SDK contract used by
4//! serverless app code. It deliberately sits beside, not above, the native
5//! Kafka-shaped `krabka-client-*` crates: use this SDK for the portable app
6//! surface, and use the native crates for Kafka protocol administration,
7//! producing, consuming, and stream-processing internals.
8
9pub mod client;
10pub mod connect_client;
11pub mod error;
12pub mod messaging;
13pub mod stubs;
14
15pub use self::{
16    client::{KrabkaClient, KrabkaClientBuilder},
17    error::KrabkaError,
18    messaging::{
19        CloudEvent, Filter, Inbound, MessageStream, MessagingClient, PublishOptions, RecordResult,
20    },
21    stubs::{
22        AcquireOptions, AuthClient, BlobClient, DatabaseClient, QueueAckEntry, QueueAckResult,
23        QueueAckType, QueueAcquireResult, QueueMessage, QueueRenewEntry, QueuesClient,
24    },
25};
26
27/// Generated gateway protobuf messages.
28#[allow(clippy::pedantic, clippy::style)]
29pub mod pb {
30    include!(concat!(env!("OUT_DIR"), "/krabka.gateway.v1.rs"));
31}
32
33#[cfg(test)]
34mod tests {
35    #[test]
36    fn generated_gateway_messages_are_visible() {
37        let request = crate::pb::SendRequest::default();
38        assert2::assert!(request.records == Vec::<crate::pb::Record>::new());
39    }
40}