1mod client;
5pub mod http;
6pub mod session;
7mod utils;
8pub mod ws;
9
10pub use client::Client;
11pub use http::{HttpBlockingSession, HttpCallbackSession, HttpChannelSession, HttpClient, HttpResponseMessage};
12pub use reifydb_client_derive::FromFrame;
13pub use reifydb_type as r#type;
14use reifydb_type::diagnostic::Diagnostic;
15pub use reifydb_type::{
16 Frame, FrameColumn, FrameColumnData, FrameError, FrameRow, FrameRows, FromFrameError, FromValueError,
17 OrderedF32, OrderedF64, Params, TryFromValue, TryFromValueCoerce, Type, Value,
18};
19use serde::{Deserialize, Serialize};
20pub use session::{CommandResult, QueryResult};
21pub use ws::{
22 ChannelResponse, ResponseMessage, WsBlockingSession, WsCallbackSession, WsChannelSession, client::WsClient,
23};
24
25#[derive(Debug, Serialize, Deserialize)]
30pub struct Request {
31 pub id: String,
32 #[serde(flatten)]
33 pub payload: RequestPayload,
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37#[serde(tag = "type", content = "payload")]
38pub enum RequestPayload {
39 Auth(AuthRequest),
40 Command(CommandRequest),
41 Query(QueryRequest),
42}
43
44#[derive(Debug, Serialize, Deserialize)]
45pub struct AuthRequest {
46 pub token: Option<String>,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct CommandRequest {
51 pub statements: Vec<String>,
52 pub params: Option<Params>,
53}
54
55#[derive(Debug, Serialize, Deserialize)]
56pub struct QueryRequest {
57 pub statements: Vec<String>,
58 pub params: Option<Params>,
59}
60
61#[derive(Debug, Serialize, Deserialize)]
66pub struct Response {
67 pub id: String,
68 #[serde(flatten)]
69 pub payload: ResponsePayload,
70}
71
72#[derive(Debug, Serialize, Deserialize)]
73#[serde(tag = "type", content = "payload")]
74pub enum ResponsePayload {
75 Auth(AuthResponse),
76 Err(ErrResponse),
77 Command(CommandResponse),
78 Query(QueryResponse),
79}
80
81#[derive(Debug, Serialize, Deserialize)]
82pub struct AuthResponse {}
83
84#[derive(Debug, Serialize, Deserialize)]
85pub struct ErrResponse {
86 pub diagnostic: Diagnostic,
87}
88
89#[derive(Debug, Serialize, Deserialize)]
90pub struct CommandResponse {
91 pub frames: Vec<WebsocketFrame>,
92}
93
94#[derive(Debug, Serialize, Deserialize)]
95pub struct QueryResponse {
96 pub frames: Vec<WebsocketFrame>,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct WebsocketFrame {
101 pub row_numbers: Vec<u64>,
102 pub columns: Vec<WebsocketColumn>,
103}
104
105#[derive(Debug, Clone, Serialize, Deserialize)]
106pub struct WebsocketColumn {
107 pub namespace: Option<String>,
108 pub store: Option<String>,
109 pub name: String,
110 pub r#type: Type,
111 pub data: Vec<String>,
112}