diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 49bf57001c..4f9b1d2420 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -2,8 +2,8 @@ on: pull_request: push: branches: - - 'main' - - 'develop' + - "main" + - "develop" name: Code coverage @@ -15,6 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: arduino/setup-protoc@v1 - name: Install toolchain uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 0dd3e90a63..c47d7b9cdc 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -11,6 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: arduino/setup-protoc@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal @@ -26,6 +27,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: arduino/setup-protoc@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal @@ -46,6 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: arduino/setup-protoc@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal @@ -62,6 +65,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: arduino/setup-protoc@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal diff --git a/Cargo.lock b/Cargo.lock index 10fabc50eb..98017cb3f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -71,8 +71,8 @@ checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" name = "api" version = "0.1.0" dependencies = [ - "prost", - "tonic", + "prost 0.11.0", + "tonic 0.8.0", "tonic-build", ] @@ -621,16 +621,7 @@ dependencies = [ "common-error", "snafu", "tokio", - "tonic", -] - -[[package]] -name = "cmake" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" -dependencies = [ - "cc", + "tonic 0.8.0", ] [[package]] @@ -777,9 +768,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24cb05777feccbb2642d4f2df44d0505601a2cd88ca517d8c913f263a5a8dc8b" dependencies = [ - "prost", - "prost-types", - "tonic", + "prost 0.10.4", + "prost-types 0.10.1", + "tonic 0.7.2", "tracing-core", ] @@ -795,13 +786,13 @@ dependencies = [ "futures", "hdrhistogram", "humantime", - "prost-types", + "prost-types 0.10.1", "serde", "serde_json", "thread_local", "tokio", "tokio-stream", - "tonic", + "tonic 0.7.2", "tracing", "tracing-core", "tracing-subscriber", @@ -1188,7 +1179,7 @@ dependencies = [ "tempdir", "tokio", "tokio-stream", - "tonic", + "tonic 0.8.0", "tower", "tower-http", ] @@ -2904,26 +2895,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.10.1", +] + +[[package]] +name = "prost" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" +dependencies = [ + "bytes", + "prost-derive 0.11.0", ] [[package]] name = "prost-build" -version = "0.10.4" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" dependencies = [ "bytes", - "cfg-if", - "cmake", "heck 0.4.0", "itertools", "lazy_static", "log", "multimap", "petgraph", - "prost", - "prost-types", + "prost 0.11.0", + "prost-types 0.11.1", "regex", "tempfile", "which", @@ -2942,6 +2941,19 @@ dependencies = [ "syn", ] +[[package]] +name = "prost-derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "prost-types" version = "0.10.1" @@ -2949,7 +2961,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" dependencies = [ "bytes", - "prost", + "prost 0.10.4", +] + +[[package]] +name = "prost-types" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" +dependencies = [ + "bytes", + "prost 0.11.0", ] [[package]] @@ -3587,7 +3609,7 @@ dependencies = [ "log-store", "object-store", "planus", - "prost", + "prost 0.11.0", "rand 0.8.5", "regex", "serde", @@ -3596,7 +3618,7 @@ dependencies = [ "store-api", "tempdir", "tokio", - "tonic", + "tonic 0.8.0", "tonic-build", "uuid", ] @@ -3897,10 +3919,11 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.2" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" dependencies = [ + "autocfg", "bytes", "libc", "memchr", @@ -4019,8 +4042,40 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", - "prost-derive", + "prost 0.10.4", + "prost-derive 0.10.1", + "tokio", + "tokio-stream", + "tokio-util 0.7.1", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498f271adc46acce75d66f639e4d35b31b2394c295c82496727dafa16d465dd2" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.0", + "prost-derive 0.11.0", "tokio", "tokio-stream", "tokio-util 0.7.1", @@ -4033,9 +4088,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9263bf4c9bfaae7317c1c2faf7f18491d2fe476f70c414b73bf5d445b00ffa1" +checksum = "2fbcd2800e34e743b9ae795867d5f77b535d3a3be69fd731e39145719752df8c" dependencies = [ "prettyplease", "proc-macro2", diff --git a/README.md b/README.md index 9e92365081..d44fdb4a2e 100644 --- a/README.md +++ b/README.md @@ -9,23 +9,16 @@ GreptimeDB: the next-generation hybrid timeseries/analytics processing database ### Prerequisites To compile GreptimeDB from source, you'll need the following: - Rust -- C++ toolchain -- cmake +- Protobuf - OpenSSL #### Rust The easiest way to install Rust is to use [`rustup`](https://rustup.rs/), which will check our `rust-toolchain` file and install correct Rust version for you. -#### C++ toolchain -The [`prost-build`](https://github.com/tokio-rs/prost/tree/master/prost-build) dependency requires `C++ toolchain` and `cmake` to build its bundled `protoc`. For more info on what the required dependencies are check [`here`](https://github.com/protocolbuffers/protobuf/blob/master/src/README.md). - -#### cmake -Follow the instructions for your operating system on the [`cmake`](https://cmake.org/install/) site. - -For macOS users, you can also use `homebrew` to install `cmake`. -```bash -brew install cmake -``` +#### Protobuf +`protoc` is required for compiling `.proto` files. `protobuf` is available from +major package manager on macos and linux distributions. You can find an +installation instructions [here](https://grpc.io/docs/protoc-installation/). #### OpenSSL @@ -60,4 +53,3 @@ OR // Start datanode with `log-dir` and `log-level` options. cargo run -- --log-dir=logs --log-level=debug datanode start ``` - diff --git a/src/api/Cargo.toml b/src/api/Cargo.toml index 7def8aec3b..5931652f80 100644 --- a/src/api/Cargo.toml +++ b/src/api/Cargo.toml @@ -6,8 +6,8 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -prost = "0.10" -tonic = "0.7" +prost = "0.11" +tonic = "0.8" [build-dependencies] -tonic-build = "0.7" +tonic-build = "0.8" diff --git a/src/client/Cargo.toml b/src/client/Cargo.toml index 8e789ec744..a7b9cbfcf8 100644 --- a/src/client/Cargo.toml +++ b/src/client/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" api = { path = "../api" } common-error = { path = "../common/error" } snafu = { version = "0.7", features = ["backtraces"] } -tonic = "0.7" +tonic = "0.8" [dev-dependencies] tokio = { version = "1.0", features = ["full"] } diff --git a/src/datanode/Cargo.toml b/src/datanode/Cargo.toml index 5d8915d283..1c2afbf6f6 100644 --- a/src/datanode/Cargo.toml +++ b/src/datanode/Cargo.toml @@ -28,7 +28,7 @@ store-api = { path = "../store-api" } table = { path = "../table" } table-engine = { path = "../table-engine" } tokio = { version = "1.18", features = ["full"] } -tonic = "0.7" +tonic = "0.8" tokio-stream = { version = "0.1.8", features = ["net"] } tower = { version = "0.4", features = ["full"]} tower-http = { version ="0.3", features = ["full"]} diff --git a/src/storage/Cargo.toml b/src/storage/Cargo.toml index 0ceaff3232..6214a1c10d 100644 --- a/src/storage/Cargo.toml +++ b/src/storage/Cargo.toml @@ -23,14 +23,14 @@ lazy_static = "1.4" log-store = { path = "../log-store" } object-store = { path = "../object-store" } planus = "0.2" -prost = "0.10" +prost = "0.11" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" snafu = { version = "0.7", features = ["backtraces"] } store-api = { path = "../store-api" } regex = "1.5" tokio = { version = "1.18", features = ["full"] } -tonic = "0.7" +tonic = "0.8" uuid = { version = "1.1" , features=["v4"]} [dev-dependencies] @@ -40,7 +40,7 @@ rand = "0.8" tempdir = "0.3" [build-dependencies] -tonic-build = "0.7" +tonic-build = "0.8" [[bench]] name = "bench_main"