Metadata-Version: 2.4
Name: unrealon
Version: 1.1.0
Summary: Advanced browser automation framework with WebSocket bridge for distributed web scraping
Project-URL: Homepage, https://github.com/unrealos/unrealon-rpc
Project-URL: Documentation, https://unrealon-rpc.readthedocs.io
Project-URL: Repository, https://github.com/unrealos/unrealon-rpc.git
Project-URL: Issues, https://github.com/unrealos/unrealon-rpc/issues
Project-URL: Changelog, https://github.com/unrealos/unrealon-rpc/blob/main/CHANGELOG.md
Author-email: UnrealOS Team <dev@unrealos.com>
Maintainer-email: UnrealOS Team <dev@unrealos.com>
License: MIT
License-File: LICENSE
Keywords: async,bridge,browser-automation,html-processing,parsing,playwright,pydantic,stealth,web-scraping,websocket
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Distributed Computing
Classifier: Typing :: Typed
Requires-Python: <4.0,>=3.10
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: asyncio-mqtt>=0.16.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: click>=8.2.0
Requires-Dist: httpx>=0.26.0
Requires-Dist: ipfshttpclient>=0.8.0a2
Requires-Dist: lxml>=5.0.0
Requires-Dist: playwright-stealth<2.0.0,>=1.0.5
Requires-Dist: playwright>=1.40.0
Requires-Dist: pydantic<3.0,>=2.11
Requires-Dist: python-dateutil>=2.8
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: redis>=5.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: tomlkit>=0.13.0
Requires-Dist: websockets>=12.0
Provides-Extra: dev
Requires-Dist: bandit>=1.7.0; extra == 'dev'
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: build>=1.0.0; extra == 'dev'
Requires-Dist: flake8>=6.0.0; extra == 'dev'
Requires-Dist: isort>=5.12.0; extra == 'dev'
Requires-Dist: mkdocs-material>=9.0.0; extra == 'dev'
Requires-Dist: mkdocs>=1.5.0; extra == 'dev'
Requires-Dist: mkdocstrings[python]>=0.22.0; extra == 'dev'
Requires-Dist: mypy>=1.5.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
Requires-Dist: pydocstyle>=6.3.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.10.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: questionary>=2.1.0; extra == 'dev'
Requires-Dist: twine>=4.0.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.22.0; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
Provides-Extra: test
Requires-Dist: factory-boy>=3.2.0; extra == 'test'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
Requires-Dist: pytest-xdist>=3.0.0; extra == 'test'
Requires-Dist: pytest>=7.0; extra == 'test'
Description-Content-Type: text/markdown

# unrealon-rpc

Universal async RPC + mesh + storage over Redis and IPFS with FastAPI WebSocket support.

## Features

- **Generic WebSocket Bridge**: Universal WebSocket-to-Redis communication layer
- **Parser-Specific Bridge**: Domain-specific wrapper for parser orchestration
- **Redis RPC/PubSub**: Asynchronous messaging primitives
- **IPFS Storage**: Decentralized file storage integration
- **Pydantic v2**: Strict type validation and data modeling
- **Modular Architecture**: Clean separation of concerns with dependency injection

## Installation

```bash
pip install unrealon-rpc
```

## Quick Start

### Start WebSocket Server

```bash
# Production mode
ws-server --host localhost --port 8000

# Development mode with auto-reload (port 8001)
ws-dev --host localhost --port 8001
```

### Start Parser Bridge Server

```bash
# Production mode
parser-bridge --redis-url redis://localhost:6379/0

# Development mode with auto-reload (port 8002)
parser-dev --redis-url redis://localhost:6379/0
```

### Python Usage

```python
from bridge_parsers import ParserBridgeServer, ParserBridgeClient

# Server
server = ParserBridgeServer(redis_url="redis://localhost:6379/0")
await server.start()

# Client
client = ParserBridgeClient(
    websocket_url="ws://localhost:8000/ws",
    parser_type="my_parser"
)
await client.connect()
```

## Architecture

The system follows a clean architecture with:

- **Generic Bridge** (`unrealon_rpc.bridge`): WebSocket-to-Redis communication
- **Parser Bridge** (`bridge_parsers`): Domain-specific parser orchestration
- **RPC Layer** (`unrealon_rpc.rpc`): Redis-based RPC implementation
- **PubSub Layer** (`unrealon_rpc.pubsub`): Redis-based publish/subscribe

## Testing

```bash
# Run all tests
python tests/run_tests.py

# Run specific test types
python tests/run_tests.py --type unit
python tests/run_tests.py --type e2e
```

## Documentation

See the `@docs/` directory for comprehensive documentation.

## License

MIT License
