A type-safe, async-first data processing pipeline framework
Project description
Rivusio
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
906135547b55fb42658a0104716d624b08c7b6d99cffadb160d785f48ccf56cb
|
|
| MD5 |
1f3aa9779866262e6f0d08d202e19252
|
|
| BLAKE2b-256 |
c67659884c1572d6e49f950810fe3c111661635c1de8f18a6647915198c11a3a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d4cd89da07713c2148d2d5db246b0d47d50c7adc245fd470975903d341e41c8
|
|
| MD5 |
8d2e7966c8e6093e3f3a03b22bc8f013
|
|
| BLAKE2b-256 |
80f99171ee6e1d8b753e2428c1d1a1728a786c0751165250994f69dcede5e0cd
|