[package] categories = [ "command-line-utilities", "multimedia" ] default-run = "cli" description = "MPV Remote Control - CLI and server for controlling MPV via IPC" edition = "2024" keywords = [ "mpv", "media", "player", "control", "ipc" ] license = "MPL-2.0" name = "mpvrc" readme = true repository = "https://github.com/notashelf/mpvrc" rust-version = "1.92.0" version = "0.3.0" # CLI implementation for terminal usage [[bin]] name = "cli" path = "src/cli.rs" # Server implementation for remote usage [[bin]] name = "server" path = "src/server.rs" [dependencies] anstyle = "1.0.14" anyhow = "1.0.102" clap = { version = "4.6.0", features = [ "derive", "cargo" ] } clap_complete = "4.6.0" clap_derive = "4.6.0" dirs = "6.0.0" ipc-channel = "0.21.0" native-tls = "0.2.18" rustyline = "18.0.0" serde = { version = "1.0.228", features = [ "derive" ] } serde_json = "1.0.149" thiserror = "2.0.18" tokio = { version = "1.50.0", features = [ "full" ] } tokio-native-tls = "0.3.1" tracing = "0.1.44" tracing-subscriber = "0.3.23" [profile.dev] opt-level = 1 [profile.release] codegen-units = 1 lto = "thin" opt-level = "s" panic = "abort" strip = true [lints.clippy] cargo = { level = "warn", priority = -1 } complexity = { level = "warn", priority = -1 } nursery = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } perf = { level = "warn", priority = -1 } style = { level = "warn", priority = -1 } # The lint groups above enable some less-than-desirable rules, we should manually # enable those to keep our sanity. absolute_paths = "allow" alloc_instead_of_core = "allow" allow_attributes_without_reason = "allow" arbitrary_source_item_ordering = "allow" arithmetic_side_effects = "allow" as_conversions = "allow" as_pointer_underscore = "allow" as_underscore = "allow" big_endian_bytes = "allow" blanket_clippy_restriction_lints = "allow" clone_on_ref_ptr = "allow" dbg_macro = "allow" disallowed_script_idents = "allow" else_if_without_else = "allow" empty_drop = "warn" empty_structs_with_brackets = "warn" error_impl_error = "allow" exhaustive_enums = "allow" exhaustive_structs = "allow" exit = "warn" expect_used = "allow" field_scoped_visibility_modifiers = "allow" filetype_is_file = "warn" float_arithmetic = "allow" get_unwrap = "warn" host_endian_bytes = "allow" impl_trait_in_params = "allow" implicit_return = "allow" indexing_slicing = "allow" infinite_loop = "warn" inline_asm_x86_intel_syntax = "allow" integer_division = "allow" integer_division_remainder_used = "allow" large_include_file = "allow" let_underscore_must_use = "allow" let_underscore_untyped = "allow" little_endian_bytes = "allow" map_err_ignore = "allow" map_with_unused_argument_over_ranges = "warn" match_same_arms = "allow" missing_assert_message = "allow" missing_docs_in_private_items = "allow" missing_errors_doc = "allow" missing_inline_in_public_items = "allow" missing_panics_doc = "allow" missing_trait_methods = "allow" mod_module_files = "allow" multiple_crate_versions = "allow" # :( multiple_inherent_impl = "allow" mutex_atomic = "allow" mutex_integer = "allow" non_ascii_literal = "allow" non_std_lazy_statics = "warn" panic = "allow" panic_in_result_fn = "allow" partial_pub_fields = "allow" pathbuf_init_then_push = "warn" pattern_type_mismatch = "allow" print_stderr = "allow" print_stdout = "allow" pub_use = "allow" pub_with_shorthand = "allow" pub_without_shorthand = "allow" question_mark_used = "allow" rc_buffer = "warn" rc_mutex = "warn" ref_patterns = "allow" renamed_function_params = "allow" rest_pat_in_fully_bound_structs = "warn" same_name_method = "allow" semicolon_outside_block = "allow" separated_literal_suffix = "allow" shadow_reuse = "allow" shadow_same = "allow" shadow_unrelated = "allow" similar_names = "allow" single_call_fn = "allow" single_char_lifetime_names = "allow" single_match_else = "allow" std_instead_of_alloc = "allow" std_instead_of_core = "allow" string_add = "allow" string_slice = "allow" todo = "allow" too_long_first_doc_paragraph = "allow" too_many_lines = "allow" try_err = "allow" undocumented_unsafe_blocks = "warn" unimplemented = "allow" unnecessary_safety_comment = "allow" unnecessary_safety_doc = "allow" unreachable = "allow" unused_result_ok = "warn" unused_trait_names = "allow" unwrap_in_result = "allow" unwrap_used = "allow" use_debug = "allow" wildcard_enum_match_arm = "allow"