This application connects to your YugabyteDB instance via the
libpq driver and performs basic SQL
operations. The instructions below are provided for YugabyteDB Aeon deployments.
If you use a different type of deployment, then update the sample-app.c file with proper connection parameters.
- A 32-bit (x86) or 64-bit (x64) architecture machine. Use Rosetta to build and run on the Apple silicon.
- gcc 4.1.2 or later, clang 3.4 or later installed.
- libpq driver.
- OpenSSL library (used by libpq to establish secured SSL connections).
- Command line tool or your favourite IDE, such as Visual Studio Code.
- Start YugabyteDB Aeon instance. You can use the free tier at no cost.
- Add an IP address of your machine/laptop to the IP allow list
Clone the repository and change dirs into it:
git clone https://github.com/YugabyteDB-Samples/yugabyte-simple-c-app.git && cd yugabyte-simple-c-appLocate and define the following configuration-related macros in the sample-app.c file:
HOST- the hostname of your instance.USER- the username for your instance.PASSWORD- the database password.SSL_MODE- the SSL mode to use. YugabyteDB Aeon requires SSL connections; useverify-full.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 Aeon dashboard:
-
Install the libpq driver via Homebrew package manager or using a different method.
-
Replace the
{libpq-install-dir}placeholder with your libpq installation root dir and build the application withgccorclang:gcc sample-app.c -o sample-app -I{libpq-install-dir}/libpq/include -L{libpq-install-dir}/libpq/lib -lpq -
Run the application:
./sample-app
Upon successful execution, you will see output similar to the following:
>>>> Connecting to YugabyteDB!
>>>> 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 = 9800Congrats! You've successfully executed a simple C app that works with YugabyteDB.
Now, explore the source code of sample-app.c:
connectfunction - establishes a connection with your cloud instance via the libpq driver.createDatabasefunction - creates a table and populates it with sample data.selectAccountsfunction - queries the data with SQLSELECTstatements.transferMoneyBetweenAccountsfunction - updates records consistently with distributed transactions.
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!
