[workspace] resolver = "3" members = ["crates/*"] [workspace.package] edition = "2024" rust-version = "1.94" license-file = "LICENSE.md" publish = false [workspace.dependencies] flix = { path = "crates/flix", version = "=0.1.1", default-features = false } flix-cli = { path = "crates/cli", version = "=0.1.1", default-features = false } flix-db = { path = "crates/db", version = "=0.1.1", default-features = false } flix-fs = { path = "crates/fs", version = "=0.1.1", default-features = false } flix-model = { path = "crates/model", version = "=0.1.1", default-features = false } flix-mux = { path = "crates/cli-mux", version = "=0.1.1", default-features = false } flix-tmdb = { path = "crates/tmdb", version = "=0.1.1", default-features = false } anyhow = { version = "^1.0.87", default-features = false } async-stream = { version = "^0.3.5", default-features = false } bytes = { version = "^1.7.1", default-features = false } chrono = { version = "^0.4.40", default-features = false } clap = { version = "^4.3.2", default-features = false } console = { version = "^0.16.0", default-features = false } either = { version = "^1.6.1", default-features = false } governor = { version = "^0.10.0", default-features = false } indicatif = { version = "^0.18.0", default-features = false } itertools = { version = "^0.15.0", default-features = false } nonzero_ext = { version = "^0.3.0", default-features = false } redb = { version = "^4.0.0", default-features = false } regex = { version = "^1.11.2", default-features = false } reqwest = { version = "^0.13.0", default-features = false } sea-orm = { version = "^2.0.4", default-features = false } sea-orm-migration = { version = "^2.0.0", default-features = false } seamantic = { version = "^1.0.1", default-features = false } serde = { version = "^1.0.225", default-features = false } serde_json = { version = "^1.0.142", default-features = false } serde_test = { version = "^1.0.0", default-features = false } tempfile = { version = "^3.0.0", default-features = false } thiserror = { version = "^2.0.18", default-features = false } tokio = { version = "^1.48.0", default-features = false } tokio-stream = { version = "^0.1.8", default-features = false } toml = { version = "^1.0.0", default-features = false } tracing = { version = "^0.1.37", default-features = false } tracing-subscriber = { version = "^0.3.17", default-features = false } url = { version = "^2.4.0", default-features = false } url-macro = { version = "^0.2.0", default-features = false } walkdir = { version = "^2.0.0", default-features = false } [workspace.lints.clippy] cargo = { level = "warn", priority = -3 } complexity = { level = "warn", priority = -3 } correctness = { level = "deny", priority = -2 } perf = { level = "warn", priority = -3 } style = { level = "warn", priority = -3 } suspicious = { level = "warn", priority = -3 } absolute_paths = "allow" alloc_instead_of_core = "warn" allow_attributes = "warn" allow_attributes_without_reason = "deny" arbitrary_source_item_ordering = "allow" arithmetic_side_effects = "deny" as_conversions = "deny" as_pointer_underscore = "deny" as_ptr_cast_mut = "deny" as_underscore = "deny" assertions_on_result_states = "warn" assigning_clones = "warn" big_endian_bytes = "allow" bool_to_int_with_if = "warn" borrow_as_ptr = "warn" branches_sharing_code = "warn" case_sensitive_file_extension_comparisons = "warn" cast_lossless = "deny" cast_possible_truncation = "deny" cast_possible_wrap = "deny" cast_precision_loss = "deny" cast_ptr_alignment = "deny" cast_sign_loss = "deny" cfg_not_test = "deny" checked_conversions = "deny" clear_with_drain = "warn" clone_on_ref_ptr = "warn" cloned_instead_of_copied = "warn" coerce_container_to_any = "warn" cognitive_complexity = "allow" collapsible_else_if = "warn" collection_is_never_read = "warn" comparison_chain = "warn" copy_iterator = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "deny" decimal_bitwise_operands = "warn" decimal_literal_representation = "warn" default_numeric_fallback = "warn" default_trait_access = "warn" default_union_representation = "allow" deref_by_slicing = "warn" derive_partial_eq_without_eq = "warn" disallowed_script_idents = "deny" doc_broken_link = "warn" doc_comment_double_space_linebreaks = "warn" doc_include_without_cfg = "warn" doc_link_code = "warn" doc_link_with_quotes = "warn" doc_markdown = "warn" doc_paragraphs_missing_punctuation = "warn" duration_suboptimal_units = "warn" elidable_lifetime_names = "warn" else_if_without_else = "warn" empty_drop = "warn" empty_enum_variants_with_brackets = "warn" empty_enums = "warn" empty_structs_with_brackets = "warn" enum_glob_use = "warn" equatable_if_let = "warn" error_impl_error = "warn" exhaustive_enums = "warn" exhaustive_structs = "warn" exit = "warn" expect_used = "warn" expl_impl_clone_on_copy = "warn" explicit_deref_methods = "warn" explicit_into_iter_loop = "warn" explicit_iter_loop = "warn" fallible_impl_from = "warn" field_scoped_visibility_modifiers = "warn" filetype_is_file = "warn" filter_map_next = "warn" flat_map_option = "warn" float_arithmetic = "warn" float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "allow" fn_to_numeric_cast_any = "warn" format_collect = "warn" format_push_string = "warn" future_not_send = "warn" get_unwrap = "warn" host_endian_bytes = "allow" if_not_else = "warn" if_then_some_else_none = "warn" ignore_without_reason = "warn" ignored_unit_patterns = "warn" impl_trait_in_params = "warn" implicit_clone = "warn" implicit_hasher = "warn" implicit_return = "allow" imprecise_flops = "warn" inconsistent_struct_constructor = "warn" index_refutable_slice = "deny" indexing_slicing = "deny" inefficient_to_string = "warn" infinite_loop = "warn" inline_always = "warn" inline_asm_x86_att_syntax = "warn" inline_asm_x86_intel_syntax = "warn" inline_modules = "allow" inline_trait_bounds = "allow" integer_division = "deny" integer_division_remainder_used = "deny" into_iter_without_iter = "warn" invalid_upcast_comparisons = "warn" ip_constant = "warn" items_after_statements = "warn" iter_filter_is_ok = "warn" iter_filter_is_some = "warn" iter_not_returning_iterator = "warn" iter_on_empty_collections = "warn" iter_on_single_items = "warn" iter_over_hash_type = "warn" iter_with_drain = "warn" iter_without_into_iter = "warn" large_digit_groups = "warn" large_futures = "warn" large_include_file = "warn" large_stack_arrays = "warn" large_stack_frames = "warn" large_types_passed_by_value = "warn" let_underscore_must_use = "warn" let_underscore_untyped = "warn" linkedlist = "warn" literal_string_with_formatting_args = "warn" little_endian_bytes = "allow" lossy_float_literal = "warn" macro_use_imports = "warn" manual_assert = "warn" manual_assert_eq = "warn" manual_ilog2 = "warn" manual_instant_elapsed = "warn" manual_is_power_of_two = "warn" manual_is_variant_and = "warn" manual_let_else = "warn" manual_midpoint = "warn" manual_string_new = "warn" many_single_char_names = "warn" map_err_ignore = "warn" map_unwrap_or = "warn" map_with_unused_argument_over_ranges = "warn" match_bool = "warn" match_same_arms = "warn" match_wild_err_arm = "warn" match_wildcard_for_single_variants = "warn" maybe_infinite_iter = "warn" mem_forget = "warn" min_ident_chars = "allow" mismatching_type_param_order = "warn" missing_assert_message = "warn" missing_asserts_for_indexing = "warn" missing_const_for_fn = "warn" missing_docs_in_private_items = "warn" missing_errors_doc = "warn" missing_fields_in_debug = "warn" missing_inline_in_public_items = "warn" missing_panics_doc = "warn" missing_trait_methods = "warn" mixed_read_write_in_expression = "warn" mod_module_files = "allow" module_name_repetitions = "warn" modulo_arithmetic = "warn" multiple_crate_versions = "allow" multiple_inherent_impl = "warn" multiple_unsafe_ops_per_block = "warn" must_use_candidate = "warn" mut_mut = "warn" mutex_atomic = "warn" mutex_integer = "warn" naive_bytecount = "warn" needless_bitwise_bool = "warn" needless_collect = "warn" needless_continue = "warn" needless_for_each = "warn" needless_pass_by_ref_mut = "warn" needless_pass_by_value = "warn" needless_raw_string_hashes = "warn" needless_raw_strings = "warn" needless_type_cast = "warn" no_effect_underscore_binding = "warn" no_mangle_with_rust_abi = "warn" non_ascii_literal = "allow" non_send_fields_in_send_ty = "warn" non_std_lazy_statics = "warn" non_zero_suggestions = "warn" nonminimal_bool = "warn" nonstandard_macro_braces = "warn" option_as_ref_cloned = "warn" option_if_let_else = "warn" option_option = "warn" or_fun_call = "warn" overly_complex_bool_expr = "allow" panic = "warn" panic_in_result_fn = "warn" partial_pub_fields = "warn" path_buf_push_overwrite = "warn" pathbuf_init_then_push = "warn" pattern_type_mismatch = "allow" pointer_format = "warn" precedence_bits = "warn" print_stderr = "warn" print_stdout = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" ptr_offset_by_literal = "warn" pub_underscore_fields = "warn" pub_use = "allow" pub_with_shorthand = "allow" pub_without_shorthand = "warn" question_mark_used = "allow" range_minus_one = "warn" range_plus_one = "warn" rc_buffer = "warn" rc_mutex = "warn" read_zero_byte_vec = "warn" redundant_clone = "warn" redundant_closure_for_method_calls = "warn" redundant_else = "warn" redundant_pub_crate = "allow" redundant_test_prefix = "warn" redundant_type_annotations = "warn" ref_as_ptr = "warn" ref_binding_to_reference = "warn" ref_option = "warn" ref_option_ref = "warn" ref_patterns = "warn" renamed_function_params = "warn" rest_pat_in_fully_bound_structs = "warn" return_and_then = "warn" return_self_not_must_use = "warn" same_functions_in_if_condition = "warn" same_length_and_capacity = "warn" same_name_method = "warn" search_is_some = "warn" self_named_module_files = "warn" self_only_used_in_recursion = "warn" semicolon_if_nothing_returned = "warn" semicolon_inside_block = "warn" semicolon_outside_block = "allow" separated_literal_suffix = "allow" set_contains_or_insert = "warn" shadow_reuse = "allow" shadow_same = "allow" shadow_unrelated = "allow" should_panic_without_expect = "warn" significant_drop_in_scrutinee = "warn" significant_drop_tightening = "warn" similar_names = "allow" single_call_fn = "allow" single_char_lifetime_names = "allow" single_char_pattern = "allow" single_match_else = "warn" single_option_map = "warn" stable_sort_primitive = "warn" std_instead_of_alloc = "warn" std_instead_of_core = "warn" str_split_at_newline = "warn" str_to_string = "warn" string_add = "warn" string_add_assign = "warn" string_lit_as_bytes = "warn" string_lit_chars_any = "warn" string_slice = "warn" struct_excessive_bools = "allow" struct_field_names = "warn" suboptimal_flops = "warn" suspicious_operation_groupings = "warn" suspicious_xor_used_as_pow = "warn" tests_outside_test_module = "warn" todo = "warn" too_long_first_doc_paragraph = "allow" too_many_lines = "allow" trailing_empty_array = "warn" trait_duplication_in_bounds = "warn" transmute_ptr_to_ptr = "warn" transmute_undefined_repr = "warn" trivial_regex = "warn" trivially_copy_pass_by_ref = "warn" try_err = "warn" tuple_array_conversions = "warn" type_repetition_in_bounds = "warn" unchecked_time_subtraction = "deny" undocumented_unsafe_blocks = "deny" unicode_not_nfc = "warn" unimplemented = "warn" uninhabited_references = "warn" uninlined_format_args = "warn" unnecessary_box_returns = "warn" unnecessary_debug_formatting = "warn" unnecessary_join = "warn" unnecessary_literal_bound = "warn" unnecessary_safety_comment = "warn" unnecessary_safety_doc = "warn" unnecessary_self_imports = "warn" unnecessary_semicolon = "warn" unnecessary_struct_initialization = "warn" unnecessary_trailing_comma = "warn" unnecessary_wraps = "warn" unneeded_field_pattern = "warn" unnested_or_patterns = "warn" unreachable = "allow" unreadable_literal = "warn" unsafe_derive_deserialize = "warn" unseparated_literal_suffix = "warn" unused_async = "warn" unused_async_trait_impl = "warn" unused_peekable = "warn" unused_result_ok = "warn" unused_rounding = "warn" unused_self = "warn" unused_trait_names = "warn" unwrap_in_result = "warn" unwrap_used = "warn" use_debug = "warn" use_self = "warn" used_underscore_binding = "warn" used_underscore_items = "warn" useless_let_if_seq = "warn" verbose_bit_mask = "warn" verbose_file_reads = "warn" volatile_composites = "warn" while_float = "warn" wildcard_enum_match_arm = "warn" wildcard_imports = "warn" with_capacity_zero = "warn" zero_sized_map_values = "warn" [workspace.lints.rust] deprecated_safe = { level = "forbid", priority = -1 } future_incompatible = { level = "deny", priority = -2 } keyword_idents = { level = "deny", priority = -2 } let_underscore = { level = "warn", priority = -3 } nonstandard_style = { level = "warn", priority = -3 } refining_impl_trait = { level = "warn", priority = -3 } rust_2018_compatibility = { level = "deny", priority = -2 } rust_2018_idioms = { level = "deny", priority = -2 } rust_2021_compatibility = { level = "deny", priority = -2 } rust_2024_compatibility = { level = "deny", priority = -2 } unknown_or_malformed_diagnostic_attributes = { level = "deny", priority = -2 } unused = { level = "warn", priority = -3 } ambiguous_glob_reexports = "warn" ambiguous_negative_literals = "deny" ambiguous_wide_pointer_comparisons = "warn" arithmetic_overflow = "deny" asm_sub_register = "warn" async_fn_in_trait = "warn" bad_asm_style = "warn" binary_asm_labels = "deny" bindings_with_variant_name = "deny" break_with_label_and_loop = "warn" c_void_returns = "warn" clashing_extern_declarations = "warn" closure_returning_async_block = "warn" confusable_idents = "warn" const_item_interior_mutations = "warn" const_item_mutation = "warn" dangerous_implicit_autorefs = "deny" dangling_pointers_from_locals = "warn" dangling_pointers_from_temporaries = "warn" dead_code_pub_in_binary = "warn" deprecated = "warn" deprecated_in_future = "allow" deprecated_where_clause_location = "warn" deref_into_dyn_supertrait = "warn" deref_nullptr = "deny" double_negations = "warn" drop_bounds = "warn" dropping_copy_types = "warn" dropping_references = "warn" duplicate_features = "deny" duplicate_macro_attributes = "warn" dyn_drop = "warn" enum_intrinsics_non_enums = "deny" explicit_builtin_cfgs_in_flags = "deny" exported_private_dependencies = "warn" ffi_unwind_calls = "warn" for_loops_over_fallibles = "warn" forgetting_copy_types = "warn" forgetting_references = "warn" function_casts_as_integer = "warn" function_item_references = "warn" hidden_glob_reexports = "warn" impl_trait_redundant_captures = "warn" improper_ctypes = "warn" improper_ctypes_definitions = "warn" improper_gpu_kernel_arg = "warn" incomplete_features = "warn" incomplete_include = "deny" ineffective_unstable_trait_impl = "deny" inline_no_sanitize = "warn" integer_to_ptr_transmutes = "warn" internal_features = "warn" invalid_atomic_ordering = "deny" invalid_doc_attributes = "warn" invalid_from_utf8 = "warn" invalid_from_utf8_unchecked = "deny" invalid_nan_comparisons = "warn" invalid_null_arguments = "deny" invalid_reference_casting = "deny" invalid_runtime_symbol_definitions = "deny" invalid_value = "warn" irrefutable_let_patterns = "warn" large_assignments = "warn" linker_info = "allow" linker_messages = "warn" long_running_const_eval = "deny" macro_use_extern_crate = "warn" meta_variable_misuse = "warn" mismatched_lifetime_syntaxes = "warn" missing_abi = "warn" missing_copy_implementations = "warn" missing_debug_implementations = "warn" missing_docs = "warn" missing_gpu_kernel_export_name = "warn" mixed_script_confusables = "warn" mutable_transmutes = "deny" named_arguments_used_positionally = "warn" named_asm_labels = "deny" no_mangle_const_items = "deny" no_mangle_generic_items = "warn" non_ascii_idents = "deny" non_contiguous_range_endpoints = "warn" non_local_definitions = "warn" non_shorthand_field_patterns = "warn" noop_method_call = "warn" opaque_hidden_inferred_bound = "warn" overflowing_literals = "deny" overlapping_range_endpoints = "warn" private_bounds = "warn" private_interfaces = "warn" ptr_to_integer_transmute_in_consts = "warn" redundant_imports = "warn" redundant_lifetimes = "warn" renamed_and_removed_lints = "warn" rtsan_nonblocking_async = "warn" single_use_lifetimes = "warn" special_module_name = "warn" stable_features = "warn" suspicious_double_ref_op = "warn" suspicious_runtime_symbol_definitions = "warn" text_direction_codepoint_in_comment = "deny" text_direction_codepoint_in_literal = "deny" trivial_bounds = "warn" trivial_casts = "warn" trivial_numeric_casts = "warn" type_alias_bounds = "warn" uncommon_codepoints = "warn" unconditional_panic = "deny" unconditional_recursion = "warn" undropped_manually_drops = "deny" unexpected_cfgs = "warn" unfulfilled_lint_expectations = "warn" ungated_async_fn_track_caller = "warn" unit_bindings = "warn" unknown_crate_types = "deny" unknown_lints = "warn" unnameable_test_items = "warn" unnameable_types = "warn" unnecessary_transmutes = "warn" unpredictable_function_pointer_comparisons = "warn" unreachable_cfg_select_predicates = "warn" unreachable_pub = "warn" unsafe_code = "forbid" unstable_features = "forbid" unused_associated_type_bounds = "warn" unused_comparisons = "warn" unused_crate_dependencies = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" unused_qualifications = "warn" unused_results = "warn" useless_deprecated = "deny" useless_ptr_null_checks = "warn" uses_power_alignment = "warn" variant_size_differences = "warn" warnings = "warn" while_true = "warn" # unstable lints # default_overrides_default_fields = "deny" # deprecated_llvm_intrinsic = "warn" # implicit_provenance_casts = "deny" # multiple_supertrait_upcastable = "warn" # must_not_suspend = "warn" # non_exhaustive_omitted_patterns = "warn" # resolving_to_items_shadowing_supertrait_items = "warn" # shadowing_supertrait_items = "warn" # tail_call_track_caller = "warn" # test_unstable_lint = "deny" # unqualified_local_imports = "deny" [workspace.lints.rustdoc] bare_urls = "warn" broken_intra_doc_links = "warn" invalid_codeblock_attributes = "warn" invalid_html_tags = "warn" invalid_rust_codeblocks = "warn" missing_crate_level_docs = "warn" private_doc_tests = "warn" private_intra_doc_links = "warn" redundant_explicit_links = "warn" unescaped_backticks = "warn" # unstable lints # missing_doc_code_examples = "warn" [profile.release] opt-level = 3 strip = "debuginfo" overflow-checks = true lto = "fat" codegen-units = 1