---
title: "Connect to LanceDB"
sidebarTitle: "Connect"
description: "Connect to an embedded database in a local directory or in object storage, or to a LanceDB Enterprise deployment."
icon: plug
keywords: ["connect", "uri", "embedded", "object storage", "s3", "enterprise", "db://"]
---
import {
PyConnect,
PyConnectAsync,
PyConnectEnterpriseQuickstart,
PyConnectObjectStorage,
PyConnectObjectStorageAsync,
RsConnect,
TsConnect,
TsConnectEnterpriseQuickstart,
TsConnectObjectStorage,
} from '/snippets/connection.mdx';
The URI you pass to `connect` decides where the work runs. The same Python,
TypeScript and Rust SDKs open all three kinds;
[OSS and Enterprise](/basics/offerings) describes how the two offerings differ.
| URI | Where queries run |
| --- | --- |
| A local path, such as `./data` | OSS: in your process |
| `s3://`, `gs://` or `az://` | OSS: in your process, reading object storage |
| `db://` | Enterprise: on the deployment |
## A local directory {#local}
Embedded in your application, LanceDB reads and writes the tables in a
directory on disk.
{PyConnect}
{PyConnectAsync}
{ "import * as lancedb from \"@lancedb/lancedb\";\n\n" }
{TsConnect}
{ "use lancedb::connect;\n" }
{ "\n" }
{RsConnect}
## Object storage {#object-storage}
With an object storage URI the library is still embedded: your process runs
every query and reads and writes the bucket directly, with the credentials from
its environment or its storage options. [Configuring storage](/deployment/storage)
covers credentials, endpoints and provider options.
{PyConnectObjectStorage}
{PyConnectObjectStorageAsync}
{TsConnectObjectStorage}
In Rust, pass the same URI to `connect`.
## LanceDB Enterprise {#enterprise}
A `db://` URI connects to a deployment, which runs each operation for you. Get
the database URI, API key, region and endpoint from the deployment's
administrator. These examples read them from `LANCEDB_URI`, `LANCEDB_API_KEY`,
`LANCEDB_REGION` and `LANCEDB_HOST_OVERRIDE`, which keeps the API key out of
source, and pass the endpoint as `host_override`.
{PyConnectEnterpriseQuickstart}
{ "import * as lancedb from \"@lancedb/lancedb\";\n\n" }
{TsConnectEnterpriseQuickstart}
In Rust, the connection builder takes the same settings through `api_key`,
`region` and `host_override`. To use OAuth instead of an API key, see
[Authentication](/enterprise/authentication); for every connection option, see
[Database](/management/database#deployment).