# How Bindings Work

The language bindings in `ant-sdk` are clients for the `antd` daemon. They share the same daemon surface, but they do not expose identical constructors, transports, or helper APIs.

## Architecture

Each binding translates language-native inputs into requests to `antd`, then maps daemon responses back into that language's models and errors.

The pattern is:

1. your application talks to a language client
2. the language client talks to `antd`
3. `antd` talks to the Autonomi network through `ant-core`

## Defaults

The daemon defaults are:

* REST: `http://localhost:8082`
* gRPC: `localhost:50051`

Bindings usually default to those same endpoints when you do not supply an override.

## Transport Split

* JavaScript and TypeScript are documented as REST-based
* Python, Go, and Rust document both REST and gRPC support
* other bindings vary by package and docs coverage

Check the individual page before assuming a transport is available in your language.

## Discovery helpers

Several bindings include daemon discovery helpers based on the `daemon.port` file written by `antd` on startup.

Examples from the current packages:

* JavaScript: `RestClient.autoDiscover()`
* Python: `discover_daemon_url()` and `discover_grpc_target()`
* Go: `NewClientAutoDiscover()`
* Rust: `discover_daemon_url()` and `discover_grpc_target()`

Some bindings use discovery only through explicit helper APIs rather than by default constructors.

## Naming Differences

The bindings use different entry points:

| Language   | Current entry point                                               |
| ---------- | ----------------------------------------------------------------- |
| JavaScript | `createClient()` or `new RestClient(...)`                         |
| TypeScript | `createClient()` with exported types from the same `antd` package |
| Python     | `AntdClient()` / `AsyncAntdClient()`                              |
| Go         | `NewClient(...)`                                                  |
| Rust       | `Client::new(...)` from the `antd-client` crate                   |

Use the package-specific page when you need exact constructors, install commands, or transport notes.

## Related pages

* [Python SDK](/developers/sdk/install/reference/language-bindings/python.md)
* [JavaScript SDK](/developers/sdk/install/reference/language-bindings/javascript.md)
* [TypeScript SDK](/developers/sdk/install/reference/language-bindings/typescript.md)
* [Rust SDK](/developers/sdk/install/reference/language-bindings/rust.md)
* [Go SDK](/developers/sdk/install/reference/language-bindings/go.md)
* [REST API](/developers/sdk/install/reference/rest-api.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
