[package] name = "readur" version = "2.5.3" edition = "2021" [[bin]] name = "readur" path = "src/main.rs" [[bin]] name = "test_runner" path = "src/bin/test_runner.rs" [[bin]] name = "analyze-webdav-performance" path = "src/bin/analyze-webdav-performance.rs" [dependencies] tokio = { version = "1", features = ["full"] } axum = { version = "0.8", features = ["multipart", "ws"] } tower = { version = "0.5", features = ["util"] } tower-http = { version = "0.6", features = ["cors", "fs"] } serde = { version = "1", features = ["derive"] } serde_json = "1" sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "sqlite", "chrono", "uuid", "migrate"] } regex = "1.11" uuid = { version = "1", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } bcrypt = "0.17" base64ct = "=1.8.1" jsonwebtoken = "9" anyhow = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio-util = { version = "0.7", features = ["io"] } futures-util = "0.3" futures = "0.3" notify = "8" mime_guess = "2" infer = "0.19" tesseract = { version = "0.15", optional = true } image = { version = "0.25", features = ["png", "jpeg", "tiff", "bmp"], optional = true } imageproc = { version = "0.25", optional = true } thiserror = "2.0" sysinfo = "0.37" raw-cpuid = { version = "11", optional = true } reqwest = { version = "0.12", features = ["json", "multipart"] } quick-xml = { version = "0.37", features = ["serialize"] } urlencoding = "2.1" oauth2 = "5.0" url = "2.4" dotenvy = "0.15" hostname = "0.4" walkdir = "2" clap = { version = "4", features = ["derive"] } async-trait = "0.1" once_cell = "1.21" utoipa = { version = "5", features = ["axum_extras", "chrono", "uuid"] } aws-config = { version = "1.8", optional = true } aws-sdk-s3 = { version = "1.92", optional = true } aws-credential-types = { version = "1.2", optional = true } aws-types = { version = "1.3", optional = true } sha2 = "0.10" utoipa-swagger-ui = { version = "9", features = ["axum"] } testcontainers = { version = "0.24", optional = true } testcontainers-modules = { version = "0.12", features = ["postgres"], optional = true } # Office document support - now using XML extraction only zip = "0.6" # Still needed for other archive handling rand = "0.8" [features] default = ["ocr", "s3"] ocr = ["tesseract", "image", "imageproc", "raw-cpuid"] s3 = ["aws-config", "aws-sdk-s3", "aws-credential-types", "aws-types"] test-utils = ["testcontainers", "testcontainers-modules"] stress-testing = ["test-utils"] [dev-dependencies] tempfile = "3" wiremock = "0.6" tokio-test = "0.4" futures = "0.3" rand = "0.8" # Database testing dependencies testcontainers = "0.24" testcontainers-modules = { version = "0.12", features = ["postgres"] } # Dependencies for creating proper test Office documents rust_xlsxwriter = "0.92" # For creating proper XLSX test files # Enable test-utils feature for all tests readur = { path = ".", features = ["test-utils"] } [profile.test] incremental = false debug = false # Test configuration to prevent resource contention [[test]] name = "integration_smart_sync_deep_scan" path = "tests/integration_smart_sync_deep_scan.rs" harness = true # WebDAV Stress Testing configuration [[test]] name = "webdav_stress_tests" path = "tests/webdav_stress_tests.rs" required-features = ["stress-testing"] harness = true