Skip to main content
Where your data lives is chosen by the connect URI:
db = infino.connect("memory://")              # in-process, ephemeral
db = infino.connect("./data")                 # local disk (durable)
db = infino.connect("s3://bucket/prefix")     # object storage (durable)
const db = connect("memory://");              // in-process, ephemeral
const db = connect("./data");                 // local disk (durable)
const db = connect("s3://bucket/prefix");     // object storage (durable)
use infino::connect;

let db = connect("memory://")?;               // in-process, ephemeral
let db = connect("./data")?;                  // local disk (durable)
let db = connect("s3://bucket/prefix")?;      // object storage (durable)
Data is stored as standard Apache Parquet at that location, so anything that reads Parquet can read it.
memory:// is in-process and ephemeral. update and delete require durable storage (a path or s3:// URI).

Object-storage configuration

Credentials go in storage_options (storageOptions in Node.js), keyed by the standard object_store config strings — aws_* for S3, azure_* for Azure Blob (the same names the AWS and Azure SDKs use). Infino reads no credentials from the environment; omit them to use ambient cloud identity (an IAM instance role or Azure managed identity).
# S3
db = infino.connect(
    "s3://bucket/prefix",
    storage_options={
        "aws_access_key_id": "...",
        "aws_secret_access_key": "...",
        "aws_region": "us-east-1",
    },
    cache_dir="/var/cache/infino",   # local disk cache for remote-backed tables
    cache_budget_bytes=2_000_000_000,
    validate=True,                   # probe the store now, not on first query
)

# Azure Blob
db = infino.connect(
    "az://container/prefix",
    storage_options={
        "azure_storage_account_name": "...",
        "azure_storage_account_key": "...",
    },
)
// S3
const db = connect("s3://bucket/prefix", {
  storageOptions: {
    aws_access_key_id: "...",
    aws_secret_access_key: "...",
    aws_region: "us-east-1",
  },
  cacheDir: "/var/cache/infino",   // local disk cache for remote-backed tables
  cacheBudgetBytes: 2_000_000_000,
  validate: true,                  // probe the store now, not on first query
});

// Azure Blob
const db = connect("az://container/prefix", {
  storageOptions: {
    azure_storage_account_name: "...",
    azure_storage_account_key: "...",
  },
});
use infino::{connect_with, ConnectOptions};

// S3
let db = connect_with(
    "s3://bucket/prefix",
    ConnectOptions::new()
        .with_storage_option("aws_access_key_id", "...")
        .with_storage_option("aws_secret_access_key", "...")
        .with_storage_option("aws_region", "us-east-1")
        .with_cache_dir("/var/cache/infino")     // local disk cache for remote-backed tables
        .with_cache_budget_bytes(2_000_000_000)
        .with_validate(true),                    // probe the store now, not on first query
)?;

// Azure Blob
let db = connect_with(
    "az://container/prefix",
    ConnectOptions::new()
        .with_storage_option("azure_storage_account_name", "...")
        .with_storage_option("azure_storage_account_key", "..."),
)?;
Common credential keys:
BackendKeys
S3aws_access_key_id, aws_secret_access_key, aws_region, aws_session_token, aws_endpoint
Azureazure_storage_account_name, azure_storage_account_key, azure_storage_sas_key, azure_storage_client_id, azure_storage_client_secret, azure_storage_tenant_id
The full set is whatever object_store accepts for the backend; an unknown key is rejected at connect. For an S3-compatible endpoint (MinIO / R2 / Ceph), set aws_endpoint (add aws_allow_http: "true" for plain HTTP) alongside the credentials.
Pass validate (with_validate(true) in Rust) to probe the backend during connect, so wrong credentials or an unreachable bucket fail there instead of on the first query. The local cache keeps hot superfiles on disk so warm queries don’t re-fetch from object storage.

Connect options

Option (Python / Node.js / Rust)Description
storage_options / storageOptions / with_storage_option(k, v)cloud credentials & tuning, keyed by object_store’s aws_* / azure_* config strings
validate / validate / with_validate(bool)probe the object store at connect to fail fast on bad credentials (default off)
cache_dir / cacheDir / with_cache_dirlocal disk-cache directory for remote-backed tables
cache_budget_bytes / cacheBudgetBytes / with_cache_budget_bytesdisk-cache budget, in bytes
cold_fetch_mode / coldFetchMode / with_cold_fetch_modehow cold-cache misses are serviced

Limitations

  • memory:// is ephemeral and can’t be mutated. update/delete need a path or s3:// URI.
  • Object-storage reads are cached locally. Cold queries fetch from the store; size the cache (cache_budget_bytes) for your working set.

See also

Last modified on July 6, 2026