Skip to main content

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 configuration
  • config.json - JSON configuration
  • config.toml - TOML configuration
  • config.cfg - INI-style configuration
  • .env - Environment variables

API Documentation

Core Classes

  • SnapQRServer - Server-side screen sharing
  • SnapQRClient - Client-side connection
  • QRGenerator - QR code creation and customization
  • StreamManager - Video stream handling
  • SecurityManager - Security and encryption
  • ConsentManager - 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:

  1. Encryption: AES-256-GCM, RSA-4096, ChaCha20-Poly1305
  2. Authentication: OAuth 2.0, JWT, 2FA, Biometric
  3. Authorization: Role-based access control (RBAC)
  4. Consent: Explicit user permission required
  5. Rate Limiting: DDoS protection
  6. 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 setup
  • advanced_client.py - Client with custom features
  • secure_connection.py - Encrypted connections
  • multi_device.py - Multiple device handling
  • plugin_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


Download files

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

Source Distribution

snapqrpy-0.1.0.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

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

snapqrpy-0.1.0-py3-none-any.whl (5.7 MB view details)

Uploaded Python 3

File details

Details for the file snapqrpy-0.1.0.tar.gz.

File metadata

  • Download URL: snapqrpy-0.1.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

Hashes for snapqrpy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d36aa22949c4725aafb3f917c258bb2257dedd7f16bb8a972f61eef27acd38dd
MD5 deecd2355a7d2ba772335a93b31ccf3e
BLAKE2b-256 c580bf40cb3dca7c9a090a5b7e463aa70c7b61b9e9db49dfc85c5b0e24256efb

See more details on using hashes here.

File details

Details for the file snapqrpy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: snapqrpy-0.1.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

Hashes for snapqrpy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ec0580802440b9a91c3cc55bad97c4a0581b66a18ca4704d1c2bfda64f27ac4
MD5 b54cc3262d4d3682b0718a3620331451
BLAKE2b-256 e88ebc220e3af855c30d9ac655bc2b011dcc137e97fc706ddd29da522073719f

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