# SDKs

TIP

Examples used in this documentation can be found in immudb examples repository (opens new window).

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 make it comfortable to talk to the server from your favorite language, without having to deal with details about how to talk to it.

The most well-known and recommended immudb SDK is written in Golang (opens new window), but there are other SDKs available, both maintained by the internal team and by the community.

Language Maintainer Immdb version link Notes
go immudb team 1.3.0 link (opens new window)
python immudb team 1.2.4 link (opens new window)
JAVA immudb team 1.2.1 link (opens new window) Verification is not working
NODE immudb team 1.2.1 link (opens new window) Verification is not working
JS immudb team 1.2.1 link (opens new window) Verification is not working
ruby Community (Ankane (opens new window)) 1.2.1 link (opens new window) Verification is not working

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.

SDK Architecture

# immugw communication

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

immugw can be found in its own repository (opens new window)

immugw proxies REST client communication and gRPC server interface. For security reasons, immugw should not run on the same server as immudb. The following diagram shows how the communication works:

immugw communication explained