piskvorky/smart_open

Utils for streaming large files (S3, HDFS, gzip, bz2...)

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 53 minutes ago
Added to GitGenius on September 20th, 2026
Created on January 2nd, 2015
Open Issues & Pull Requests: 3 (+0)
GitHub issues: Enabled
Number of forks: 389
Total Stargazers: 3,458 (+0)
Total Subscribers: 42 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,066 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (14)
  • housekeeping (12)
  • bug (6)
  • enhancement (5)
  • performance (5)
  • Hacktoberfest (4)
  • good first issue (3)
  • question (3)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

smart_open is a Python library for efficient streaming of very large files from and to remote storage systems such as S3, GCS, Azure Blob Storage, HDFS, WebHDFS, HTTP, SFTP, and local filesystems.

The library solves the problem of cumbersome boilerplate code when working with remote files through storage libraries like boto3. Rather than requiring developers to construct file-like object wrappers and manage upload and download operations manually, smart_open provides a unified Pythonic API that works as a drop-in replacement for Python's built-in open() function. It handles the underlying complexity of different storage backends while supporting transparent on-the-fly compression and decompression for formats including gzip, bz2, lz4, xz, and zst.

Developers should choose smart_open when working with large remote files and wanting to minimize boilerplate code. The tool suits projects that need to read from or write to multiple storage backends without rewriting code for each one. Since smart_open is fully compatible with Python's built-in open() and falls back to native open() where possible, it integrates seamlessly into existing codebases. The library uses optional dependencies, allowing users to install only the storage backends they need, which keeps the base installation lightweight.

The project maintains a well-tested and well-documented codebase with an API reference available through Python's built-in help system. Development activity shows consistent attention to supporting a wide range of storage solutions and compression formats, with explicit handling of external dependencies for specialized authentication methods like Kerberos and GSSAPI. The tool's design prioritizes backward compatibility and simplicity in its Pythonic interface.