tentaclio
Unification of data connectors for distributed data tasks
What it is and what it does
Tentaclio is a Python library that abstracts away the differences between reading and writing data across multiple storage backends—local files, FTP, SFTP, S3, HTTP/HTTPS, and databases—by exposing a single unified interface. Instead of learning separate APIs for each protocol, you use `tentaclio.open()` for streams and `tentaclio.db()` for database connections, always working with standard file-like objects and connection clients.
The library handles credential management automatically through environment variables, supports pandas DataFrames directly (read and write CSV, Parquet, etc. to any backend), and provides filesystem-like operations such as `listdir`, `scandir`, and `walk` where the underlying protocol supports them. It includes built-in handlers for file, FTP, SFTP, HTTP, and HTTPS; additional schemes (S3, Google Cloud Storage, Databricks, Snowflake, etc.) are available through optional companion packages. Designed for distributed data tasks, it reduces boilerplate and credential-handling complexity in data pipelines.
Use it for:
- Read CSV or Parquet files from S3 or SFTP into pandas DataFrames without writing protocol-specific code.
- Write processed data to multiple backends (local, S3, database) using the same `tentaclio.open()` call with different URLs.
- Manage credentials centrally via environment variables instead of hardcoding or passing them through application code.
- Copy or move files between different storage systems (e.g., local to S3, SFTP to database) with a single `tentaclio.copy()` call.
- Query databases and write results to cloud storage in a single script without managing separate connection objects.
- List or walk remote directories on S3 or SFTP using familiar Python filesystem patterns.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Tentaclio opens and manages streams across multiple protocols (file, FTP, SFTP, S3, HTTP/HTTPS) and database connections using a unified URL-based interface, with automatic credential injection and pandas integration.
Yes. Tentaclio is actively maintained, has no known vulnerabilities, and solves a genuine pain point in data workflows: abstracting protocol differences behind a clean, consistent API. The low install friction, permissive MIT license, and broad protocol support make it a solid choice for any project that moves data across multiple backends. The pandas integration and automatic credential injection are particularly valuable in distributed or CI/CD environments. Start with the built-in protocols; add optional packages only when you need S3, Google Cloud, or specialized databases.
Install
tentaclio on PyPI
pip
pip install tentacliouv
uv add tentacliopoetry
poetry add tentaclioInstalling tentaclio
Before you install
Low friction installation with a pure-Python wheel. Active maintenance—released 9 days ago with a recent commit on 2026-08-05. Depends on seven well-established libraries (urllib3, requests, sqlalchemy, paramiko, pandas, click, pyyaml), all standard in data workflows.
License in practice
MIT license is permissive; you can use, modify, and distribute tentaclio freely in commercial and private projects with minimal restrictions.
Quickstart
pip install tentaclio
import tentaclio
# Read from S3
with tentaclio.open("s3://my-bucket/file.txt") as reader:
contents = reader.read()
# Write to SFTP
with tentaclio.open("sftp://host/path/file.txt", mode="w") as writer:
writer.write(contents)
Requires Python 3.10 or later. S3, Google Cloud Storage, Google Drive, and some database schemes require optional extra packages (tentaclio-s3, tentaclio-gs, tentaclio-gdrive, etc.). Credentials for protected resources must be configured via TENTACLIO__CONN__* environment variables.
Verify before relying
- Whether the package handles concurrent stream operations safely or has thread-safety guarantees.
- Performance characteristics when copying large files or listing directories with many entries.
- Exact error handling and retry behavior for transient network failures across different protocols.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — urllib3, requests, sqlalchemy, paramiko, pandas, click, pyyaml |
| Maintenance | actively maintained — 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,715,222/month — #3,623 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tentaclio-1.5.1-py3-none-any.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
tentaclio-postgresBundles PostgreSQL connectivity and schema…
permissive · top 15,000 on PyPI
tentaclio-s3Provides S3 storage integration for tentaclio…
unclear · top 5,000 on PyPI
s3pathS3Path provides a pathlib-like interface for…
permissive · top 5,000 on PyPI
dbstreamdbstream is a meta package designed to provide…
permissive · top 15,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
sftprettyA Python3 wrapper around paramiko that…
permissive · top 15,000 on PyPI
universal-pathlibUniversal Pathlib provides a pathlib.Path-like…
permissive · top 1,000 on PyPI
awswranglerAWS SDK for pandas integrates pandas DataFrames…
permissive · top 1,000 on PyPI
fs-s3fsS3FS provides a PyFilesystem interface to…
permissive · top 15,000 on PyPI
s3fss3fs provides a Python filesystem interface to…
permissive · top 100 on PyPI