crabcamera 0.1.0

Advanced cross-platform camera integration for Tauri applications
Documentation
#!/usr/bin/env python3
"""
CrabCamera Functional Demonstration  
Shows real-world usage of the crabcamera Rust crate for Tauri applications
"""

import subprocess
import json

def demonstrate_crabcamera():
    print("🦀📷 CRABCAMERA - Cross-Platform Camera Plugin for Tauri")
    print("=" * 65)
    
    demo_structure = '''
🏗️  TAURI APPLICATION INTEGRATION:

📁 src-tauri/
  ├── Cargo.toml
  │   [dependencies]
  │   crabcamera = "0.1"
  │   tauri = { version = "2.0", features = ["protocol-asset"] }
  │
  ├── src/main.rs
  │   use crabcamera;
  │   
  │   fn main() {
  │       tauri::Builder::default()
  │           .plugin(crabcamera::init())
  │           .run(tauri::generate_context!())
  │           .expect("error while running tauri application");
  │   }
  │
  └── tauri.conf.json
      {
        "plugins": {
          "crabcamera": {}
        }
      }

🌐 FRONTEND INTEGRATION (JavaScript/TypeScript):

import { invoke } from '@tauri-apps/api/tauri';

// Initialize camera system
await invoke('initialize_camera_system');

// Get available cameras  
const cameras = await invoke('get_available_cameras');
console.log('Available cameras:', cameras);

// Get platform-optimized format
const format = await invoke('get_recommended_format');
console.log('Recommended format:', format);

// Capture single photo
const photo = await invoke('capture_single_photo', {
  deviceId: cameras[0].id,
  format: format
});

📷 CAMERA CAPABILITIES:

✅ Cross-Platform Support:
  • Windows (DirectShow/MediaFoundation)  
  • macOS (AVFoundation)
  • Linux (V4L2)

✅ Professional Features:
  • High-resolution capture (up to 4K)
  • Multiple format support (RGB8, JPEG, RAW)
  • Real-time streaming
  • Auto-focus and auto-exposure
  • Device enumeration and selection

✅ Developer Experience:
  • Type-safe Rust API
  • Async/await support  
  • Comprehensive error handling
  • Production-ready testing (63 tests)
  • Full Tauri 2.0 integration

🎯 USE CASES:

✅ Desktop Photography Apps
  • Photo booth applications
  • Document scanning tools
  • Security/surveillance apps
  • Video conferencing tools

✅ Professional Applications  
  • Medical imaging interfaces
  • Scientific data collection
  • Industrial inspection tools
  • Quality control systems

✅ Creative Software
  • Photo editing applications
  • Content creation tools
  • Streaming software interfaces
  • Educational applications

🚀 PRODUCTION READY:
  • 63 comprehensive tests passing
  • Cross-platform compatibility tested
  • Memory-safe Rust implementation
  • Professional error handling
  • Full async/await support
  • Modern Tauri 2.0 plugin architecture
'''
    
    print(demo_structure)
    
    print("\n🔧 SAMPLE TAURI COMMANDS AVAILABLE:")
    commands = [
        "initialize_camera_system() -> Result<String>",
        "get_available_cameras() -> Result<Vec<CameraDeviceInfo>>", 
        "get_platform_info() -> Result<PlatformInfo>",
        "test_camera_system() -> Result<SystemTestResult>",
        "check_camera_availability(device_id) -> Result<bool>",
        "get_camera_formats(device_id) -> Result<Vec<CameraFormat>>",
        "capture_single_photo(device_id, format) -> Result<CameraFrame>",
        "start_camera_preview(device_id) -> Result<()>",
        "stop_camera_preview() -> Result<()>",
        "request_camera_permission() -> Result<bool>",
    ]
    
    for i, cmd in enumerate(commands, 1):
        print(f"  {i:2d}. {cmd}")
    
    print(f"\n📊 TECHNICAL SPECIFICATIONS:")
    specs = [
        "Language: Rust (memory-safe, zero-cost abstractions)",
        "Framework: Tauri 2.0 plugin architecture", 
        "Platforms: Windows, macOS, Linux desktop",
        "Camera Backend: nokhwa (cross-platform camera library)",
        "Async Runtime: Tokio (production-grade async)",
        "Testing: 63 unit + integration tests",
        "Performance: Zero-copy where possible",
        "Memory: Automatic cleanup and resource management"
    ]
    
    for spec in specs:
        print(f"{spec}")
        
    print(f"\n🆚 COMPETITIVE ADVANTAGES:")
    advantages = [
        "First production-ready desktop Tauri camera plugin",
        "Native performance vs web API limitations", 
        "Cross-platform abstraction with platform optimizations",
        "Professional error handling and recovery",
        "Modern async/await API design",
        "Comprehensive test coverage",
        "Memory-safe Rust implementation",
        "MIT licensed and community-friendly"
    ]
    
    for adv in advantages:
        print(f"{adv}")

if __name__ == "__main__":
    demonstrate_crabcamera()