Metadata-Version: 2.1
Name: unistream
Version: 0.1.1
Summary: Library for creating stream data producer / consumer client library.
Home-page: https://github.com/MacHu-GWU/unistream-project
Download-URL: https://pypi.python.org/pypi/unistream/0.1.1#downloads
Author: Sanhe Hu
Author-email: husanhe@gmail.com
Maintainer: Sanhe Hu
Maintainer-email: husanhe@gmail.com
License: MIT
Platform: Windows
Platform: MacOS
Platform: Unix
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.7
License-File: LICENSE.txt
License-File: AUTHORS.rst
Requires-Dist: tenacity<9.0.0,>=8.2.0
Provides-Extra: tests
Requires-Dist: pytest; extra == "tests"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: boto_session_manager<2.0.0,>=1.6.1; extra == "tests"
Requires-Dist: func_args<1.0.0,>=0.1.1; extra == "tests"
Requires-Dist: moto; extra == "tests"
Requires-Dist: rich; extra == "tests"
Provides-Extra: docs
Requires-Dist: Sphinx==5.3.0; extra == "docs"
Requires-Dist: sphinx-jinja==2.0.2; extra == "docs"
Requires-Dist: sphinx-copybutton==0.5.1; extra == "docs"
Requires-Dist: sphinx-design==0.5.0; extra == "docs"
Requires-Dist: furo==2023.03.27; extra == "docs"
Requires-Dist: nbsphinx==0.8.12; extra == "docs"
Requires-Dist: rstobj==1.2.1; extra == "docs"
Requires-Dist: pygments==2.15.1; extra == "docs"
Requires-Dist: ipython==8.10.0; extra == "docs"
Requires-Dist: docfly==2.0.1; extra == "docs"
Requires-Dist: boto_session_manager<2.0.0,>=1.6.1; extra == "docs"
Requires-Dist: func_args<1.0.0,>=0.1.1; extra == "docs"
Provides-Extra: aws
Requires-Dist: boto_session_manager<2.0.0,>=1.6.1; extra == "aws"


.. image:: https://readthedocs.org/projects/unistream/badge/?version=latest
    :target: https://unistream.readthedocs.io/en/latest/
    :alt: Documentation Status

.. image:: https://github.com/MacHu-GWU/unistream-project/workflows/CI/badge.svg
    :target: https://github.com/MacHu-GWU/unistream-project/actions?query=workflow:CI

.. image:: https://codecov.io/gh/MacHu-GWU/unistream-project/branch/main/graph/badge.svg
    :target: https://codecov.io/gh/MacHu-GWU/unistream-project

.. image:: https://img.shields.io/pypi/v/unistream.svg
    :target: https://pypi.python.org/pypi/unistream

.. image:: https://img.shields.io/pypi/l/unistream.svg
    :target: https://pypi.python.org/pypi/unistream

.. image:: https://img.shields.io/pypi/pyversions/unistream.svg
    :target: https://pypi.python.org/pypi/unistream

.. image:: https://img.shields.io/badge/Release_History!--None.svg?style=social
    :target: https://github.com/MacHu-GWU/unistream-project/blob/main/release-history.rst

.. image:: https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
    :target: https://github.com/MacHu-GWU/unistream-project

------

.. image:: https://img.shields.io/badge/Link-Document-blue.svg
    :target: https://unistream.readthedocs.io/en/latest/

.. image:: https://img.shields.io/badge/Link-API-blue.svg
    :target: https://unistream.readthedocs.io/en/latest/py-modindex.html

.. image:: https://img.shields.io/badge/Link-Install-blue.svg
    :target: `install`_

.. image:: https://img.shields.io/badge/Link-GitHub-blue.svg
    :target: https://github.com/MacHu-GWU/unistream-project

.. image:: https://img.shields.io/badge/Link-Submit_Issue-blue.svg
    :target: https://github.com/MacHu-GWU/unistream-project/issues

.. image:: https://img.shields.io/badge/Link-Request_Feature-blue.svg
    :target: https://github.com/MacHu-GWU/unistream-project/issues

.. image:: https://img.shields.io/badge/Link-Download-blue.svg
    :target: https://pypi.org/pypi/unistream#files


Welcome to ``unistream`` Documentation
==============================================================================
📔 See `Full Documentation HERE <https://unistream.readthedocs.io/>`_.

.. image:: https://unistream.readthedocs.io/en/latest/_static/unistream-logo.png
    :target: https://unistream.readthedocs.io/

The library at hand provides a powerful abstraction for data producers and consumers—clients responsible for interfacing with stream processing systems. These clients handle the task of sending data to stream processing systems and pulling data from various streams, including but not limited to Apache Kafka, Apache Pulsar, AWS Kinesis, AWS SQS, and AWS CloudWatch logs.

This library offers a comprehensive set of business-critical features out of the box:

1. **Efficient Record Buffering:** It intelligently groups records into micro-batches, optimizing network bandwidth utilization for enhanced performance.
2. **Data Integrity:** To ensure data integrity, the library leverages a local write-ahead log mechanism, mitigating the risk of unexpected errors and data loss during the data transfer process.
3. **Automatic Retrying:** With an integrated automatic retry mechanism using exponential backoff strategies, transient errors are managed seamlessly, contributing to a robust and reliable data transfer process.
4. **Checkpoint Management:** The library automatically handles checkpoints, allowing for the storage of consumption progress and processing status for each record. This feature enhances traceability and fault tolerance, especially in critical business use cases.


.. _install:

Install
------------------------------------------------------------------------------

``unistream`` is released on PyPI, so all you need is to:

.. code-block:: console

    $ pip install unistream

To upgrade to latest version:

.. code-block:: console

    $ pip install --upgrade unistream
