#grpc-client #grpc #database-client #mysql #client #vitess

vitess-grpc

Vitess gRPC client library, auto-generated from the Vitess proto files using tonic-build

5 unstable releases

0.3.0+vitess-18.0.0 Nov 11, 2023
0.2.0+vitess-17.0.1 Aug 16, 2023
0.1.2+vitess-16.0.2 Jun 19, 2023
0.1.1 Jun 19, 2023
0.1.0 Jun 5, 2023

#2702 in Database interfaces

MIT/Apache

785KB
16K SLoC

gRPC Client for Vitess

Crates.io Docs.rs Tests Checks

This is a Rust gRPC client for Vitess. It is generated from the Vitess proto files using tonic.

Usage

To use this crate, add the following to your Cargo.toml:

[dependencies]
vitess-grpc = "0.3"
tokio = { version = "1.0", features = ["full"] }

Example

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.

Versioning

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.

License

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.

Vitess Update Process

When a new version of Vitess is released, the following steps should be taken to update this crate:

  1. Update the version in vitess-grpc/Cargo.toml to the new Vitess version.
  2. Run script/update-protos to update the proto files in the vitess-grpc/proto directory.
  3. Run cargo build to make sure the crate builds.
  4. Run scripts/start-vttestserver to start a local Vitess cluster used for testing.
  5. Run cargo test to make sure the tests pass.
  6. Stop the local Vitess cluster by running scripts/stop-vttestserver.
  7. Commit the changes and push them to GitHub.
  8. Create a new release on GitHub.
  9. Publish the crate to crates.io with cargo publish.

Dependencies

~4–10MB
~98K SLoC