Advanced QR-based screen sharing and remote control system with consent management
Project description
SnapQRpy
SnapQRpy is an advanced Python library for QR-based screen sharing and remote device control with comprehensive consent management.
Overview
SnapQRpy provides a secure, efficient, and user-friendly way to share screens and control devices remotely using QR code technology. The library supports multiple platforms including Android, iOS, Windows, macOS, and Linux.
Key Features
- QR Code Generation: Create dynamic QR codes for instant device pairing
- Screen Sharing: Real-time screen mirroring with low latency
- Remote Control: Control devices with explicit user consent
- End-to-End Encryption: Military-grade encryption for all communications
- Cross-Platform: Works on Android, iOS, Windows, macOS, and Linux
- Consent Management: Built-in permission system for user authorization
- WebRTC Support: Peer-to-peer connections for optimal performance
- Multi-Protocol: Support for WebSocket, HTTP/2, gRPC, and more
- Plugin System: Extensible architecture for custom functionality
- Rate Limiting: Protect against abuse with configurable limits
- Session Management: Secure session handling with automatic timeout
- Logging & Analytics: Comprehensive logging and performance metrics
Installation
Basic Installation
pip install SnapQRpy
Full Installation (All Features)
pip install SnapQRpy[full]
Development Installation
pip install SnapQRpy[dev]
Quick Start
Server Side
from snapqrpy import SnapQRServer
server = SnapQRServer(port=8000)
qr_code = server.generate_qr()
qr_code.show()
server.start()
Client Side (Mobile/Desktop)
from snapqrpy import SnapQRClient
client = SnapQRClient()
client.scan_qr()
client.request_permission()
client.start_screen_share()
Command Line Interface
snapqr server --port 8000
snapqr client --scan
snapqr-gui
Advanced Usage
Custom Configuration
from snapqrpy.config import Config
config = Config(
encryption=True,
compression=True,
quality='high',
frame_rate=60,
resolution=(1920, 1080),
consent_timeout=30,
session_lifetime=3600
)
server = SnapQRServer(config=config)
Security Features
from snapqrpy.security import SecurityManager
security = SecurityManager()
security.enable_2fa()
security.set_encryption('AES-256-GCM')
security.require_pin()
Event Handling
from snapqrpy.events import EventManager
events = EventManager()
@events.on('connection_established')
def on_connect(session):
print(f"New connection: {session.id}")
@events.on('permission_granted')
def on_permission(device):
print(f"Permission granted for: {device.name}")
Platform Support
Android
- Screen capture via MediaProjection API
- Remote control via Accessibility Service
- Background service support
iOS
- Screen recording via ReplayKit
- Remote control via system extensions
- Background mode support
Desktop (Windows/macOS/Linux)
- Native screen capture
- Input simulation
- System tray integration
Configuration Files
SnapQRpy supports multiple configuration formats:
config.yaml- YAML configurationconfig.json- JSON configurationconfig.toml- TOML configurationconfig.cfg- INI-style configuration.env- Environment variables
API Documentation
Core Classes
SnapQRServer- Server-side screen sharingSnapQRClient- Client-side connectionQRGenerator- QR code creation and customizationStreamManager- Video stream handlingSecurityManager- Security and encryptionConsentManager- Permission handling
Network Protocols
- WebRTC for P2P connections
- WebSocket for real-time communication
- HTTP/2 for API endpoints
- gRPC for service communication
Security
SnapQRpy implements multiple security layers:
- Encryption: AES-256-GCM, RSA-4096, ChaCha20-Poly1305
- Authentication: OAuth 2.0, JWT, 2FA, Biometric
- Authorization: Role-based access control (RBAC)
- Consent: Explicit user permission required
- Rate Limiting: DDoS protection
- Session Security: Automatic timeout and invalidation
Performance
- Low latency: < 50ms average
- High frame rate: Up to 120 FPS
- Adaptive bitrate: Automatic quality adjustment
- Hardware acceleration: GPU encoding/decoding
- Network optimization: TCP/UDP hybrid protocol
Troubleshooting
Connection Issues
from snapqrpy.diagnostics import NetworkDiagnostics
diag = NetworkDiagnostics()
diag.test_connectivity()
diag.check_firewall()
diag.measure_latency()
Permission Errors
from snapqrpy.utils import PermissionChecker
checker = PermissionChecker()
checker.verify_screen_capture()
checker.verify_input_control()
checker.request_missing_permissions()
Examples
See the examples/ directory for complete usage examples:
basic_server.py- Simple server setupadvanced_client.py- Client with custom featuressecure_connection.py- Encrypted connectionsmulti_device.py- Multiple device handlingplugin_example.py- Custom plugin development
Contributing
Contributions are welcome! Please read our contributing guidelines.
License
MIT License - see LICENSE file for details
Author
MERO
Telegram: @QP4RM
Support
For support and questions:
- Telegram: @QP4RM
- Issues: GitHub Issues
Changelog
Version 0.1.0 (Initial Release)
- QR code generation and scanning
- Screen sharing functionality
- Remote control capabilities
- Consent management system
- Multi-platform support
- End-to-end encryption
- WebRTC integration
- CLI and GUI interfaces
- Comprehensive documentation
Note: This library requires explicit user consent before any screen sharing or remote control operations. Always respect user privacy and comply with local laws and regulations.
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 snapqrpy-0.2.0.tar.gz.
File metadata
- Download URL: snapqrpy-0.2.0.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaa8ccb95757843acdb2aa60dea6ab5421390b9a1eb290e69c73d7c91cb3a299
|
|
| MD5 |
5b50e28598940fb42a93e6cc57bbe14c
|
|
| BLAKE2b-256 |
0cf7318874ffd52be85d5fba0942145d71a7e7f3b2ecc3ece3083b0010ef414d
|
File details
Details for the file snapqrpy-0.2.0-py3-none-any.whl.
File metadata
- Download URL: snapqrpy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22e11f97cd4f87fa8c0a61d7d0049a8ec875b0abd798b785b48cf64d65588203
|
|
| MD5 |
214933e19508e93670e87695448032f6
|
|
| BLAKE2b-256 |
889772d87c9a1879af4e98a8dfc1eb69d5839152d30c2250d3b71e0cc44eba1f
|