# Getting started with immudb Development

This guide provides developers with the first steps of using immudb from their application and from their favourite programming language:

  • Connect to the database
  • Insert and retrieve data

TIP

To learn how to develop for immudb with Python in a guiden online environment, visit the immudb Playground at https://play.codenotary.com (opens new window)

# Clients

In the most common scenario, you would perform write and read operations on the database talking to the server. In this case your application will be a client to immudb.

# SDKs

The immudb server manages the requests from the outside world to the store. In order to insert or retrieve data, you need to talk with the server.

SDKs make it comfortable to talk to the server from your favourite language, without having to deal with details about how to talk to it.

SDK Architecture

The most well-known immudb SDK is written in Golang (opens new window), but there are SDKs available for Python, NodeJS, Java and others.

For other unsupported programming languages, immugw (opens new window) provides a REST gateway that can be used to talk to the server via generic HTTP.

# Getting immudb running

You may download the immudb binary from the latest releases on Github (opens new window). Once you have downloaded immudb, rename it to immudb, make sure to mark it as executable, then run it. The following example shows how to obtain v0.9.2 for linux amd64:

wget https://github.com/vchain-us/immudb/releases/download/v0.9.2/immudb-v0.9.2-linux-amd64
mv immudb-v0.9.2-linux-amd64 immudb
chmod +x immudb

# run immudb in the foreground to see all output
./immudb

# or run immudb in the background
./immudb -d

Alternatively, you may use Docker to run immudb in a ready-to-use container. In a terminal type:

docker run -ti -p 3322:3322 codenotary/immudb:latest

(you can add the -d --rm --name immudb options to send it to the background).

# Connecting from your programming language

# Importing the SDK

In order to use the SDK, you need to download and import the libraries:

# Connection and authentication

The first step is to connect to the database, which listens by default in port 3322, authenticate using the default user and password (immudb / immudb), and get a token which can be used in subsequent requests:

Note: You can change the server default options using environment variables, flags or the immudb.toml configuration file.

# Tamperproof read and write

You can write with built-in cryptographic verification. The client implements the mathematical validations, while your application uses a traditional read or write function.

# To get going quickly:

  • Get the immudb-client-example code (opens new window). Note: Only Golang SDK is currently upgraded for immudb 0.9.0
  • Learn about the basic coding you will use to interact with your immudb client and database. This guide goes from start to finish, in creating a new client instance, writing and reading data, and much more. Take a look at the SDKs api page.

# Conclusion

Congratulations for completing the development quick start guide. You've been guided through the essentials you need to know to begin using CodeNotary's immudb solution.

You now have:

  • An immudb database server and are familiar with basic authentication.
  • An immudb client.
  • A new immudb database.
  • An instance of the immudb client running.
  • Gone through reading and writing data with and without cryptographic verification.

We've only scratched the surface of immudb's capabilities. Here are some additional resources you might find helpful: