Expand description
CrabCamera: Advanced cross-platform camera integration for Tauri applications
This crate provides unified camera access across desktop platforms with real-time processing capabilities and professional camera controls.
It aims to be “The Standard” for high-quality, professional-grade camera applications on desktop platforms.
§Strict Engineering Standards
This codebase enforces:
- Complete Documentation (
#![warn(missing_docs)]) - Safe Code (no
unwrap()orexpect()in library code viaclippy::unwrap_used) - Idiomatic Rust Practices (
clippy::pedantic)
§Features
- Cross-platform camera access (Windows, macOS, Linux)
- Real-time camera streaming and capture
- Platform-specific optimizations
- Professional camera controls
- Thread-safe camera management
- Multiple camera format support (RGB, YUYV, MJPEG)
§Usage
Add this to your Cargo.toml:
[dependencies]
crabcamera = { version = "0.8", features = ["recording", "audio"] }
tauri = { version = "2.0", features = ["protocol-asset"] }Then in your Tauri app:
ⓘ
use crabcamera;
fn main() {
tauri::Builder::default()
.plugin(crabcamera::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}Re-exports§
pub use errors::CameraError;pub use platform::CameraSystem;pub use platform::PlatformCamera;pub use types::CameraDeviceInfo;pub use types::CameraFormat;pub use types::CameraFrame;pub use types::CameraInitParams;pub use types::FrameMetadata;pub use types::Platform;
Modules§
- commands
- Tauri command handlers.
- config
- Configuration management. Configuration management for CrabCamera
- constants
- Global constants. Global constants for CrabCamera
- errors
- Error types.
- focus_
stack - Automatic focus stacking.
- invariant_
ppt - Invariant checks for PPT. Invariant PPT Testing Framework
- permissions
- Permission management.
- platform
- Platform abstraction layer. Platform-specific camera implementations with unified interface
- preview
- Preview stream module.
- quality
- Image quality analysis.
- registry
- System capabilities registry and manifest (Source of Truth). System Registry & Feature Manifest
- testing
- Testing utilities. Testing utilities for CrabCamera
- tests
- Integration tests and test utilities.
- types
- Common data types and structures.
Macros§
- assert_
invariant - Assert an invariant and log it for contract testing.
Structs§
- Crate
Info - Crate information structure
Constants§
- DESCRIPTION
- A brief description of the crate.
- NAME
- The name of the crate.
- VERSION
- Version information
Functions§
- current_
platform - Detect the current platform using the Platform enum
- current_
platform_ string - Get current platform as string (legacy compatibility)
- get_
info - Get crate information
- init
- Initialize the
CrabCameraplugin with all commands - init_
logging - Initialize logging for the camera system