Skip to main content

A type-safe, async-first data processing pipeline framework

Project description

Rivusio

codecov PyPI version Documentation Status Python versions License Tests Downloads Ruff Type Checking: mypy Security: bandit

A blazing-fast, type-safe data processing pipeline framework in Python, designed for seamless integration of both synchronous and asynchronous operations, complete with robust parallel execution for ultimate performance and scalability.

🚀 Key Features

  • Type Safety: Comprehensive type hints and runtime validation
  • Flexible Processing: Support for both sync and async operations
  • High Performance: Parallel execution strategies and optimized processing
  • Stream Processing: Built-in support for various windowing strategies
  • Robust Error Handling: Configurable retries and error recovery
  • Monitoring: Built-in metrics collection and monitoring
  • Configuration: Type-safe configuration using Pydantic
  • Extensible: Plugin system for custom components
  • Composable: Easy pipeline composition with the >> operator
  • Comprehensive Documentation: Extensive guides and examples

🛠️ Installation

pip install rivusio

🎯 Quick Start

from typing import Dict, List
from rivusio import AsyncBasePipe, SyncBasePipe, AsyncPipeline

# Define a simple transformation pipe
class NumberFilterPipe(AsyncBasePipe[Dict[str, int], List[int]]):
    async def __call__(self, data: Dict[str, int]) -> List[int]:
        return [v for v in data.values() if v > 100]

# Create and use a pipeline
async def main():
    pipeline = AsyncPipeline([NumberFilterPipe()])
    
    # Process data
    data = {"a": 150, "b": 50, "c": 200}
    result = await pipeline(data)  # [150, 200]
    print(result)

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

📚 Documentation

Visit our comprehensive documentation for:

  • Detailed guides and tutorials
  • API reference
  • Best practices
  • Advanced examples
  • Configuration options

🔧 Development Setup

# Clone the repository
git clone https://github.com/zbytealchemy/rivusio.git
cd rivusio

# Install dependencies
poetry install

# Run tests
poetry run pytest

# Build documentation
poetry install --with docs
make docs

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details on:

  • Code of Conduct
  • Development process
  • Pull request guidelines
  • Testing requirements

📋 Requirements

  • Python 3.10+
  • Poetry for dependency management
  • Git for version control

📈 Performance

Rivusio is designed for high performance:

  • Efficient batch processing
  • Parallel execution capabilities
  • Optimized stream processing
  • Minimal overhead

🔒 Security

  • Regular security audits
  • Type-safe operations
  • Input validation
  • Comprehensive testing

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

Special thanks to all contributors who have helped make Rivusio better.


Built with ❤️ by ZbyteAlchemy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rivusio-0.2.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rivusio-0.2.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file rivusio-0.2.0.tar.gz.

File metadata

  • Download URL: rivusio-0.2.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.16 Linux/6.8.0-1020-azure

File hashes

Hashes for rivusio-0.2.0.tar.gz
Algorithm Hash digest
SHA256 906135547b55fb42658a0104716d624b08c7b6d99cffadb160d785f48ccf56cb
MD5 1f3aa9779866262e6f0d08d202e19252
BLAKE2b-256 c67659884c1572d6e49f950810fe3c111661635c1de8f18a6647915198c11a3a

See more details on using hashes here.

File details

Details for the file rivusio-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rivusio-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.16 Linux/6.8.0-1020-azure

File hashes

Hashes for rivusio-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d4cd89da07713c2148d2d5db246b0d47d50c7adc245fd470975903d341e41c8
MD5 8d2e7966c8e6093e3f3a03b22bc8f013
BLAKE2b-256 80f99171ee6e1d8b753e2428c1d1a1728a786c0751165250994f69dcede5e0cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page