webpage_quality_analyzer 1.0.2

High-performance webpage quality analyzer with 115 comprehensive metrics - Rust library with WASM, C++, and Python bindings
Documentation
//! FFI (Foreign Function Interface) module for C/C++ bindings
//!
//! This module provides C-compatible functions that enable the webpage quality analyzer
//! to be used from C and C++ applications with 100% feature parity.
//!
//! # Architecture
//!
//! The FFI layer uses three-tier architecture:
//! 1. **Rust Core** (`src/lib.rs`) - Async API with tokio
//! 2. **FFI Boundary** (`src/ffi/`) - C-compatible blocking wrappers
//! 3. **C++ Wrapper** (`bindings/cpp/`) - RAII classes and exceptions
//!
//! # Safety
//!
//! All FFI functions follow these safety rules:
//! - Null pointers are checked and return error codes
//! - Memory is managed through explicit alloc/free functions
//! - Strings use null-terminated C strings (const char*)
//! - Errors are stored thread-locally and retrieved via getters
//!
//! # Example Usage (C)
//!
//! ```c
//! CReport* report = wqa_analyze("https://example.com", NULL);
//! if (report) {
//!     float score = wqa_report_get_score(report);
//!     printf("Score: %.2f\n", score);
//!     wqa_free_report(report);
//! }
//! ```

pub mod accessors;
pub mod batch;
pub mod builder;
pub mod config;
pub mod conversions;
pub mod core;
pub mod errors;
pub mod output;
pub mod output_custom;
pub mod penalties;
pub mod types;

// Re-export main types for convenience
pub use accessors::*;
pub use batch::*;
pub use builder::*;
pub use config::*;
pub use core::*;
pub use errors::{wqa_clear_error, wqa_free_string, wqa_get_last_error, CErrorCode};
pub use output::*;
pub use output_custom::*;
pub use penalties::*;
pub use types::*;