[workspace] members = [ "main", "common", "api-router", "html-router", "ingestion-pipeline", "retrieval-pipeline", "json-stream-parser", "evaluations" ] resolver = "2" [workspace.dependencies] anyhow = "1.0.94" async-openai = "0.29.3" async-stream = "0.3.6" async-trait = "0.1.88" axum-htmx = "0.7.0" axum_session = "0.16" axum_session_auth = "0.16" axum_session_surreal = "0.4" axum_typed_multipart = "0.16" axum = { version = "0.8", features = ["multipart", "macros"] } chrono-tz = "0.10.1" chrono = { version = "0.4.39", features = ["serde"] } config = "0.15.4" dom_smoothie = "0.10.0" futures = "0.3.31" headless_chrome = "1.0.17" include_dir = "0.7.4" mime = "0.3.17" mime_guess = "2.0.5" minijinja-autoreload = "2.5.0" minijinja-contrib = { version = "2.6.0", features = ["datetime", "timezone"] } minijinja-embed = { version = "2.8.0" } minijinja = { version = "2.5.0", features = ["loader", "multi_template"] } reqwest = {version = "0.12.12", features = ["charset", "json"]} serde_json = "1.0.128" serde = { version = "1", features = ["derive"] } sha2 = "0.10.8" surrealdb-migrations = "2.2.2" surrealdb = { version = "2", features = ["kv-mem"] } tempfile = "3.12.0" text-splitter = { version = "0.18.1", features = ["markdown", "tokenizers"] } tokenizers = { version = "0.20.4", features = ["http"] } unicode-normalization = "0.1.24" thiserror = "1.0.63" tokio-util = { version = "0.7.15", features = ["io"] } tokio = { version = "1", features = ["full"] } tower-http = { version = "0.6.2", features = ["fs", "compression-full"] } tower-serve-static = "0.1.1" tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = { version = "2.5.2", features = ["serde"] } uuid = { version = "1.10.0", features = ["v4", "serde"] } tokio-retry = "0.3.0" base64 = "0.22.1" object_store = { version = "0.11.2" } bytes = "1.7.1" state-machines = "0.2.0" fastembed = { version = "5.2.0", default-features = false, features = ["hf-hub-native-tls", "ort-load-dynamic"] } [profile.dist] inherits = "release" lto = "thin" [workspace.lints.clippy] # Performance-focused lints perf = { level = "warn", priority = -1 } vec_init_then_push = "warn" large_stack_frames = "warn" redundant_allocation = "warn" single_char_pattern = "warn" string_extend_chars = "warn" format_in_format_args = "warn" slow_vector_initialization = "warn" inefficient_to_string = "warn" implicit_clone = "warn" redundant_clone = "warn" # Security-focused lints arithmetic_side_effects = "warn" indexing_slicing = "warn" unwrap_used = "warn" expect_used = "warn" panic = "warn" unimplemented = "warn" todo = "warn" # Async/Network lints async_yields_async = "warn" await_holding_invalid_type = "warn" rc_buffer = "warn" # Maintainability-focused lints cargo = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } clone_on_ref_ptr = "warn" float_cmp = "warn" manual_string_new = "warn" uninlined_format_args = "warn" unused_self = "warn" must_use_candidate = "allow" missing_errors_doc = "allow" missing_panics_doc = "warn" module_name_repetitions = "warn" wildcard_dependencies = "warn" missing_docs_in_private_items = "warn" # Allow noisy lints that don't add value for this project needless_raw_string_hashes = "allow" multiple_bound_locations = "allow" cargo_common_metadata = "allow" multiple-crate-versions = "allow" module_name_repetition = "allow"