> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lancedb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Choose a LanceDB SDK and find the API reference for your language.

Use a LanceDB SDK to create tables, add data, build indexes and run searches
from your application. Python, TypeScript and Rust work with both LanceDB
Embedded and LanceDB Enterprise. LanceDB Embedded runs in your application's
process; your data can live on local disk or in object storage. LanceDB
Enterprise distributes query execution, indexing, maintenance and refresh
work across the service, outside your application.

The [quickstart](https://docs.lancedb.com/oss/v0-41-0/quickstart.md) includes installation instructions and complete
examples in all three languages. For connection settings, see
[Connect to LanceDB](https://docs.lancedb.com/oss/v0-41-0/basics/catalog.md).

## Client versions for these guides

The database release and the client SDK version are separate choices. These
guides use the following client baselines:

| Client | Embedded 0.41.0 | Enterprise 1.12.0 |
| - | - | - |
| Python | `lancedb==0.41.0` | `lancedb==0.42.0b8` from the LanceDB preview index |
| TypeScript | `@lancedb/lancedb@0.41.0` | `@lancedb/lancedb@0.42.0-beta.8` |
| Rust | `lancedb` 0.41.0 for the general API; standalone quickstart examples pin 0.31.0 | Enable `remote`; examples use the pinned client revision below |

Install the Python or TypeScript client used by the Enterprise examples:

```bash Python icon="python" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
pip install --extra-index-url https://pypi.fury.io/lancedb/ "lancedb==0.42.0b8"
```

```bash TypeScript icon="square-js" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
npm install @lancedb/lancedb@0.42.0-beta.8
```

The Rust Function examples use the client revision bundled with Enterprise 1.12.0:

```bash theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
cargo add lancedb --git https://github.com/lancedb/lancedb \
  --rev bff93ff314eee34f625d05bd92b73d95867fe787 --features remote
```

The released Rust 0.41.0 crate also includes APIs for registering, listing,
fetching and dropping Functions. The source pin above selects the bundled
client as the example baseline. A newer SDK does not add server capabilities:
these guides still describe the limits of server 1.12.0.

## Official SDKs

| SDK | API reference |
| - | - |
| Python | [Python reference](https://lancedb.github.io/lancedb/python/python/) |
| TypeScript | [TypeScript reference](https://lancedb.github.io/lancedb/js/) |
| Rust | [Rust reference](https://docs.rs/lancedb/latest/lancedb/index.html) |

Guides show the available language examples together. Use the API reference for
method signatures and options; SDKs do not expose every feature through the same
methods. In Rust, enable the `remote` feature to connect to Enterprise.

For SQL joins, aggregations and window functions, use
[SQL](https://docs.lancedb.com/oss/v0-41-0/basics/sql.md). Python provides a SQL client, and applications in other
languages can use a Flight SQL client. TypeScript's table query API does not
provide a SQL execution method.

## Lance Namespace SDKs

LanceDB Enterprise's catalog and table operations follow the
[Lance Namespace Client SDK Specification](https://lance.org/format/namespace),
an open specification for describing access to tables in a multimodal
lakehouse. Any client that implements it can integrate with LanceDB this
way, not only the official SDKs above -- useful for a language or tool
without a LanceDB SDK. For SQL queries, connect through
[Flight SQL](https://docs.lancedb.com/oss/v0-41-0/basics/sql.md) instead.

| Language | Package | Used by |
| - | - | - |
| Java | `org.lance:lance-namespace-core` | Spark, Flink, Kafka, Trino, Presto; also LanceDB's Java client |
| Python | `lance-namespace` | Core interface and connect functionality |
| Rust | `lance-namespace` | Core interface, in [lance-format/lance](https://github.com/lance-format/lance) |

LanceDB's Java client builds on this Lance Namespace Java core: table creation,
listing and most other catalog operations go through the generated
`LanceNamespace` interface talking to Enterprise's Namespace endpoint.
The [real time engine](https://docs.lancedb.com/oss/v0-41-0/tables/realtime-engine.md) is the one area with its own,
LanceDB-specific Java client on top, since RTE's LSM write path is not part of
the Lance Namespace Client SDK Specification.

See [lance.org/format/namespace](https://lance.org/format/namespace) for the
full specification and its other catalog implementations (Directory, Apache Polaris,
Unity Catalog, Apache Hive Metastore, Apache Iceberg REST Catalog, and more).

## Community SDKs

These clients are maintained by the community. Check each project's supported
features, installation instructions and releases before choosing one.

| Language | Project |
| - | - |
| Go | [lancedb-go](https://pkg.go.dev/github.com/lancedb/lancedb-go/pkg/lancedb) |
| Ruby | [Lancelot](https://github.com/scientist-labs/lancelot) |
| Swift | [LanceDbSwiftKit](https://github.com/RyanLisse/LanceDbSwiftKit) |
| R | [lancedb](https://github.com/CathalByrneGit/lancedb) |
| Flutter | [flutter\_lancedb](https://github.com/Alexcn/flutter_lancedb) |

## Related guides

> [card] [SQL](https://docs.lancedb.com/oss/v0-41-0/basics/sql.md)
>
> Query Enterprise tables with SQL from Python or a Flight SQL client.

> [card] [PyTorch Data Loader](https://docs.lancedb.com/oss/v0-41-0/training/data-loading.md)
>
> Use LanceDB tables in a DataLoader, including multiple worker processes.

> [card] [Agentic Skills](https://docs.lancedb.com/oss/v0-41-0/basics/agentic-skills.md)
>
> Use the LanceDB plugin to help a coding agent work with your data.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.