This is a Rust gRPC client for Vitess. It is generated from the Vitess proto files using tonic.
To use this crate, add the following to your Cargo.toml:
[dependencies]
vitess-grpc = "0.3"
tokio = { version = "1.0", features = ["full"] }
You can find an example of how to use this crate in the examples directory.
Examples can be run with:
cargo run --example <example_name>
Available examples are:
- vstream-consumer: A simple vstream consumer, which prints the events it receives.
Before running the examples, you will need to start Vitess locally. An easy way to do this is to use the scripts/start-vttestserver
script, which will start a local Vitess cluster in Docker (or Podman) and configure a simple schema inside you can use for testing.
The version of the crate is independent of the version of Vitess, but contains a build metadata portion (see SemVer documentation for details) that is set to the Vitess version the crate was generated from. For example, the version 0.3.0+vitess18.0.0
means that the crate was generated from the proto files included in Vitess v18.0.0.
The files in the proto
directory are copied from the Vitess repository and are licensed under the Apache License, Version 2.0. See the
Vitess LICENSE file for more details.
The rest of the code in this repository is licensed under the MIT license. See the LICENSE file for more details.
When a new version of Vitess is released, the following steps should be taken to update this crate:
- Update the
version
in vitess-grpc/Cargo.toml to the new Vitess version. - Run
script/update-protos
to update the proto files in thevitess-grpc/proto
directory. - Run
cargo build
to make sure the crate builds. - Run
scripts/start-vttestserver
to start a local Vitess cluster used for testing. - Run
cargo test
to make sure the tests pass. - Stop the local Vitess cluster by running
scripts/stop-vttestserver
. - Commit the changes and push them to GitHub.
- Change directory to
vitess-grpc
- Publish the crate to crates.io with
cargo publish
.