flow/lib.rs
1// Copyright 2023 Greptime Team
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! This crate manage dataflow in Greptime, including adapter, expr, plan, repr and utils.
16//! It can transform substrait plan into it's own plan and execute it.
17//! It also contains definition of expression, adapter and plan, and internal state management.
18
19#![feature(let_chains)]
20#![allow(dead_code)]
21#![warn(clippy::missing_docs_in_private_items)]
22#![warn(clippy::too_many_lines)]
23
24// TODO(discord9): enable this lint to handle out of bound access
25// #![cfg_attr(not(test), warn(clippy::indexing_slicing))]
26
27// allow unused for now because it should be use later
28mod adapter;
29pub(crate) mod batching_mode;
30mod compute;
31mod df_optimizer;
32pub(crate) mod engine;
33pub mod error;
34mod expr;
35pub mod heartbeat;
36mod metrics;
37mod plan;
38mod repr;
39mod server;
40mod transform;
41mod utils;
42
43#[cfg(test)]
44mod test_utils;
45
46pub use adapter::{FlowConfig, FlowStreamingEngineRef, FlownodeOptions, StreamingEngine};
47pub use batching_mode::frontend_client::{FrontendClient, GrpcQueryHandlerWithBoxedError};
48pub use engine::FlowAuthHeader;
49pub(crate) use engine::{CreateFlowArgs, FlowId, TableName};
50pub use error::{Error, Result};
51pub use server::{
52 get_flow_auth_options, FlownodeBuilder, FlownodeInstance, FlownodeServer,
53 FlownodeServiceBuilder, FrontendInvoker,
54};