--- 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).