Skip to main content

link_common/
lib.rs

1//! Shared Rust implementation used by `kalam-client`, `kalam-consumer-wasm`,
2//! and `kalam-link-dart`.
3
4#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
5pub mod auth;
6#[cfg(feature = "tokio-runtime")]
7pub mod client;
8#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
9pub mod compression;
10#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
11pub(crate) mod connection;
12#[cfg(feature = "consumer")]
13pub mod consumer;
14#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
15pub mod credentials;
16#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
17pub mod error;
18#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
19pub mod event_handlers;
20#[path = "models/mod.rs"]
21pub mod models;
22#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
23pub mod query;
24#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
25pub mod seq_tracking;
26#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
27pub mod subscription;
28#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
29pub mod timeouts;
30#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
31pub mod timestamp;
32#[cfg(feature = "wasm")]
33#[path = "wasm/mod.rs"]
34pub mod wasm;
35
36#[cfg(feature = "tokio-runtime")]
37pub use auth::{ArcDynAuthProvider, AuthProvider, DynamicAuthProvider, ResolvedAuth};
38#[cfg(feature = "tokio-runtime")]
39pub use client::{KalamLinkClient, QueryUploadFile};
40#[cfg(all(feature = "tokio-runtime", feature = "consumer"))]
41pub use consumer::ConsumerConfig;
42#[cfg(feature = "consumer")]
43pub use consumer::{
44    AutoOffsetReset, CommitMode, CommitResult, ConsumerOffsets, ConsumerRecord, PayloadMode,
45    TopicOp,
46};
47#[cfg(all(feature = "tokio-runtime", feature = "consumer"))]
48pub use consumer::{ConsumerBuilder, TopicConsumer};
49#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
50pub use credentials::{CredentialStore, Credentials, MemoryCredentialStore};
51#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
52pub use error::{KalamLinkError, Result};
53#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
54pub use event_handlers::{ConnectionError, DisconnectReason, EventHandlers, MessageDirection};
55#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
56pub use kalamdb_commons::ids::SeqId;
57#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
58pub use kalamdb_commons::Role;
59pub use kalamdb_commons::UserId;
60pub use models::{
61    parse_i64, FieldFlag, FieldFlags, FileRef, KalamCellValue, KalamDataType, RowData, SchemaField,
62};
63#[cfg(feature = "consumer")]
64pub use models::{AckResponse, ConsumeMessage, ConsumeRequest, ConsumeResponse};
65#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
66pub use models::{
67    ChangeEvent, ClusterHealthResponse, ClusterNodeHealth, ConnectionOptions, ErrorDetail,
68    HealthCheckResponse, HttpVersion, LoginRequest, LoginResponse, LoginUserInfo, QueryRequest,
69    QueryResponse, QueryResult, ServerSetupRequest, ServerSetupResponse, SetupStatusResponse,
70    SetupUserInfo, SqlSubscriptionDescriptor, SqlSubscriptionRow, SqlSubscriptionStatus,
71    SubscriptionConfig, SubscriptionInfo, SubscriptionOptions, UploadProgress,
72};
73#[cfg(feature = "tokio-runtime")]
74pub use query::AuthRefreshCallback;
75#[cfg(feature = "tokio-runtime")]
76pub use query::QueryExecutor;
77#[cfg(feature = "tokio-runtime")]
78pub use query::UploadProgressCallback;
79#[cfg(feature = "tokio-runtime")]
80pub use subscription::LiveRowsSubscription;
81#[cfg(feature = "tokio-runtime")]
82pub use subscription::SubscriptionManager;
83#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
84pub use subscription::{LiveRowsConfig, LiveRowsEvent, LiveRowsMaterializer};
85#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
86pub use timeouts::{KalamLinkTimeouts, KalamLinkTimeoutsBuilder};
87#[cfg(any(feature = "tokio-runtime", feature = "wasm"))]
88pub use timestamp::{now, parse_iso8601, TimestampFormat, TimestampFormatter};
89
90pub const VERSION: &str = env!("CARGO_PKG_VERSION");