feat: update tonic/prost and simplify build requirements (#130)

* feat: update tonic/prost and simplify build requirements

* doc: update readme for protoc installtion
This commit is contained in:
Ning Sun
2022-08-04 23:11:39 +08:00
committed by GitHub
parent fb4495eb46
commit 97be052b33
8 changed files with 109 additions and 57 deletions

View File

@@ -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:

View File

@@ -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

123
Cargo.lock generated
View File

@@ -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",

View File

@@ -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
```

View File

@@ -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"

View File

@@ -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"] }

View File

@@ -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"]}

View File

@@ -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"