/yugabyte-simple-rust-app

A simple Rust application that connects to a YugabyteDB database cluster and performs basic CRUD operations.

Primary LanguageRustApache License 2.0Apache-2.0

Simple Rust Application for YugabyteDB

This application connects to your YugabyteDB instance via the Rust driver for PostgreSQL and performs basic SQL operations. The instructions below are provided for YugabyteDB Managed deployments. If you use a different type of deployment, then update the src/sample-app.rs file with proper connection parameters.

Prerequisite

  • Rust development environment. The sample application was created for Rust 1.58 but should work for earlier and later versions.
  • Command line tool or your favourite IDE, such as Visual Studio Code.

Start YugabyteDB Managed Cluster

Clone Application Repository

Clone the repository and change dirs into it:

git clone https://github.com/yugabyte/yugabyte-simple-rust-app && cd yugabyte-simple-rust-app

Provide Cluster Connection Parameters

Update the following connection parameters in the src/sample-app.rs file:

  • HOST - the hostname of your instance.
  • USER - the username for your instance.
  • PASSWORD - the database password.
  • SSL_MODE - make sure it's set to SslMode::Require for YugabyteDB Managed.
  • SSL_ROOT_CERT - a full path to your CA root cert (for example, /Users/dmagda/certificates/root.crt).

Note, you can easily find all the settings on the YugabyteDB Managed dashboard:

image

Run the Application

Build and run the application:

cargo run

The Rust PostgreSQL driver will be installed automatically during the first execution of the command. The driver is listed in the dependencies list of the Cargo.toml file.

Upon successful execution, you will see output similar to the following:

>>>> Connecting to YugabyteDB!
>>>> Successfully connected to YugabyteDB!
>>>> Successfully created table DemoAccount.
>>>> Selecting accounts:
name = Jessica, age = 28, country = USA, balance = 10000
name = John, age = 28, country = Canada, balance = 9000
>>>> Transferred 800 between accounts
>>>> Selecting accounts:
name = Jessica, age = 28, country = USA, balance = 9200
name = John, age = 28, country = Canada, balance = 9800

Explore Application Logic

Congrats! You've successfully executed a simple Rust app that works with YugabyteDB.

Now, explore the source code of src/sample-app.rs:

  1. connect function - establishes a connection with your cloud instance via the Rust PostgreSQL driver.
  2. create_database function - creates a table and populates it with sample data.
  3. select_accounts function - queries the data with SQL SELECT statements.
  4. transfer_money_between_accounts function - updates records consistently with distributed transactions.

Questions or Issues?

Having issues running this application or want to learn more from Yugabyte experts?

Join our Slack channel, or raise a question on StackOverflow and tag the question with yugabytedb!