Merge pull request #6 from GrepTimeTeam/feat-project-skeleton

feat: Setup project skeleton
This commit is contained in:
dennis zhuang
2022-04-21 15:23:29 +08:00
committed by GitHub
31 changed files with 298 additions and 1 deletions

154
Cargo.lock generated
View File

@@ -2,6 +2,160 @@
# It is not intended for manual editing.
version = 3
[[package]]
name = "async-trait"
version = "0.1.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "common"
version = "0.1.0"
[[package]]
name = "datanode"
version = "0.1.0"
dependencies = [
"snafu",
]
[[package]]
name = "datatypes"
version = "0.1.0"
[[package]]
name = "doc-comment"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]]
name = "heck"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "log"
version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
dependencies = [
"cfg-if",
]
[[package]]
name = "log-store"
version = "0.1.0"
[[package]]
name = "logical-plans"
version = "0.1.0"
[[package]]
name = "object-store"
version = "0.1.0"
[[package]]
name = "proc-macro2"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
dependencies = [
"unicode-xid",
]
[[package]]
name = "query"
version = "0.1.0"
[[package]]
name = "quote"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
dependencies = [
"proc-macro2",
]
[[package]]
name = "snafu"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eba135d2c579aa65364522eb78590cdf703176ef71ad4c32b00f58f7afb2df5"
dependencies = [
"doc-comment",
"snafu-derive",
]
[[package]]
name = "snafu-derive"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a7fe9b0669ef117c5cabc5549638528f36771f058ff977d7689deb517833a75"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "sql"
version = "0.1.0"
dependencies = [
"sqlparser",
]
[[package]]
name = "sqlparser"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e9a527b68048eb95495a1508f6c8395c8defcff5ecdbe8ad4106d08a2ef2a3c"
dependencies = [
"log",
]
[[package]]
name = "syn"
version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "table"
version = "0.1.0"
dependencies = [
"async-trait",
]
[[package]]
name = "unicode-segmentation"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

View File

@@ -1,4 +1,12 @@
[workspace]
members = [
"src/common"
"src/common",
"src/datanode",
"src/datatypes",
"src/log-store",
"src/logical-plans",
"src/object-store",
"src/query",
"src/sql",
"src/table",
]

9
src/datanode/Cargo.toml Normal file
View File

@@ -0,0 +1,9 @@
[package]
name = "datanode"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
snafu = "0.7"

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,8 @@
use snafu::Snafu;
/// business error of datanode.
#[derive(Debug, Snafu)]
#[snafu(display("DataNode error"))]
pub struct Error;
pub type Result<T> = std::result::Result<T, Error>;

21
src/datanode/src/lib.rs Normal file
View File

@@ -0,0 +1,21 @@
mod catalog;
mod error;
mod processors;
mod rpc;
use crate::error::Result;
use crate::rpc::Services;
/// DataNode service.
pub struct DataNode {
services: Services,
}
impl DataNode {
/// Shutdown the datanode service gracefully.
pub async fn shutdown(&self) -> Result<()> {
self.services.shutdown().await?;
unimplemented!()
}
}

View File

@@ -0,0 +1 @@

10
src/datanode/src/rpc.rs Normal file
View File

@@ -0,0 +1,10 @@
use crate::error::Result;
/// All rpc services.
pub struct Services {}
impl Services {
pub async fn shutdown(&self) -> Result<()> {
unimplemented!()
}
}

8
src/datatypes/Cargo.toml Normal file
View File

@@ -0,0 +1,8 @@
[package]
name = "datatypes"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

1
src/datatypes/src/lib.rs Normal file
View File

@@ -0,0 +1 @@
mod schema;

View File

@@ -0,0 +1 @@

8
src/log-store/Cargo.toml Normal file
View File

@@ -0,0 +1,8 @@
[package]
name = "log-store"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

1
src/log-store/src/lib.rs Normal file
View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,8 @@
[package]
name = "logical-plans"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,8 @@
[package]
name = "object-store"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@@ -0,0 +1 @@

8
src/query/Cargo.toml Normal file
View File

@@ -0,0 +1,8 @@
[package]
name = "query"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@@ -0,0 +1 @@

4
src/query/src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
mod executor;
mod logical_optimizer;
mod physical_optimizer;
mod physical_planner;

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

9
src/sql/Cargo.toml Normal file
View File

@@ -0,0 +1,9 @@
[package]
name = "sql"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
sqlparser = "0.16.0"

1
src/sql/src/ast.rs Normal file
View File

@@ -0,0 +1 @@

3
src/sql/src/lib.rs Normal file
View File

@@ -0,0 +1,3 @@
mod ast;
mod parser;
mod planner;

1
src/sql/src/parser.rs Normal file
View File

@@ -0,0 +1 @@

1
src/sql/src/planner.rs Normal file
View File

@@ -0,0 +1 @@

9
src/table/Cargo.toml Normal file
View File

@@ -0,0 +1,9 @@
[package]
name = "table"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
async-trait = "0.1"

3
src/table/src/engine.rs Normal file
View File

@@ -0,0 +1,3 @@
/// Table engine abstraction.
#[async_trait::async_trait]
pub trait Engine {}

5
src/table/src/lib.rs Normal file
View File

@@ -0,0 +1,5 @@
mod engine;
/// Table abstraction.
#[async_trait::async_trait]
pub trait Table: Send + Sync {}