[package] name = "gupax" version = "1.3.10" authors = ["hinto-janai "] description = "GUI for P2Pool+XMRig" documentation = "https://github.com/hinto-janai/gupax" edition = "2021" [profile.release] panic = "abort" debug = false strip = "symbols" codegen-units = 1 lto = true [profile.dev] opt-level = 1 debug = true strip = "none" debug-assertions = true overflow-checks = true incremental = true [features] default = [] distro = [] [dependencies] anyhow = "1.0.83" arti-client = { version = "0.18.0", features = ["static"] } arti-hyper = "0.18.0" benri = "0.1.12" bytes = "1.6.0" dirs = "5.0.1" #-------------------------------------------------------------------------------- egui = "0.27.2" egui_extras = { version = "0.27.2", features = ["image"] } ## 2023-12-28: https://github.com/hinto-janai/gupax/issues/68 ## ## 2024-03-18: Both `glow` and `wgpu` seem to crash: ## ## `wgpu` seems to crash on less computers though so... eframe = { version = "0.27.2", features = ["wgpu"] } ## 2023-02-06: The below gets fixed by using the [wgpu] backend instead of [glow] ## It also fixes crashes on CPU-based graphics. Only used for Windows. ## Using [wgpu] actually crashes macOS (fixed in 0.20.x though). ## [external/egui/crates/eframe/src/native/run.rs] line 41: [.with_srgb(true)] ## This line causes a [panic!] inside a Windows VM, from a Linux host. ## There are many issue threads and PRs to fix it but for now, ## this is here for convenience sake when I'm testing. ## The only change is [.with_srgb()] is set to [false]. #eframe = { path = "external/egui/crates/eframe" } #egui = { path = "external/egui/crates/egui" } #egui_glow = { path = "external/egui/crates/egui_glow"} #egui_extras = { path = "external/egui/crates/egui_extras", features = ["image"] } #-------------------------------------------------------------------------------- env_logger = "0.10.0" figment = { version = "0.10.18", features = ["toml"] } hyper = "0.14.26" hyper-tls = "0.5.0" image = { version = "0.25.1", features = ["png"] } log = "0.4.21" num-format = { version = "0.4.4", default-features = false } once_cell = "1.19.0" portable-pty = "0.8.1" rand = "0.8.5" regex = { version = "1.10.4", default-features = false, features = ["perf"] } rfd = "0.14.1" serde = { version = "1.0.201", features = ["rc", "derive"] } serde_json = "1.0" sysinfo = { version = "0.29.0", default-features = false } tls-api = "0.9.0" tokio = { version = "1.21.2", features = ["rt", "time", "macros", "process"] } toml = { version = "0.7.4", features = ["preserve_order"] } tor-rtcompat = "0.18.0" walkdir = "2.5.0" zeroize = "1.7.0" strsim = "0.11.1" strip-ansi-escapes = "0.2.0" # Unix dependencies [target.'cfg(unix)'.dependencies] tar = "0.4.40" flate2 = "1.0" sudo = "0.6.0" # macOS [target.'cfg(target_os = "macos")'.dependencies] # On apple-darwin targets there is an issue with the native and rustls # tls implementation so this makes it fall back to the openssl variant. # # https://gitlab.torproject.org/tpo/core/arti/-/issues/715 tls-api-openssl = "0.9.0" # `arti-client` with `static` doesn't actually # statically link OpenSSL on macOS, both x64 + ARM. # Should probably file a bug report. openssl = { version = "0.10", features = ["vendored"] } # We don't even use `xz` in `flate2` but this gets dynamically # linked as well which causes problems, so statically link it. lzma-sys = { version = "0.1", features = ["static"] } [target.'cfg(not(target_os = "macos"))'.dependencies] tls-api-native-tls = "0.9.0" # Windows dependencies [target.'cfg(windows)'.dependencies] zip = "1" is_elevated = "0.1.2" wgpu = { version = "0.19.4", features = ["angle"] } # For Windows build (icon) [target.'cfg(windows)'.build-dependencies] winres = "0.1.12" static_vcruntime = "2.0" # For macOS build (cargo-bundle) [package.metadata.bundle] name = "Gupax" identifier = "com.github.hinto-janai.gupax" icon = ["images/icons/icon@2x.png"] category = "public.app-category.utilities" [workspace.lints.clippy] borrow_as_ptr = "deny" case_sensitive_file_extension_comparisons = "deny" cast_lossless = "deny" cast_ptr_alignment = "deny" checked_conversions = "deny" cloned_instead_of_copied = "deny" const_is_empty = "deny" doc_lazy_continuation = "deny" doc_link_with_quotes = "deny" duplicated_attributes = "deny" empty_enum = "deny" enum_glob_use = "deny" expl_impl_clone_on_copy = "deny" explicit_into_iter_loop = "deny" filter_map_next = "deny" flat_map_option = "deny" from_iter_instead_of_collect = "deny" if_not_else = "deny" ignored_unit_patterns = "deny" inconsistent_struct_constructor = "deny" index_refutable_slice = "deny" inefficient_to_string = "deny" invalid_upcast_comparisons = "deny" iter_filter_is_ok = "deny" iter_filter_is_some = "deny" implicit_clone = "deny" legacy_numeric_constants = "deny" manual_c_str_literals = "deny" manual_pattern_char_comparison = "deny" manual_instant_elapsed = "deny" manual_inspect = "deny" manual_is_variant_and = "deny" manual_let_else = "deny" manual_ok_or = "deny" manual_string_new = "deny" manual_unwrap_or_default = "deny" map_unwrap_or = "deny" match_bool = "deny" match_same_arms = "deny" match_wildcard_for_single_variants = "deny" mismatching_type_param_order = "deny" missing_transmute_annotations = "deny" mut_mut = "deny" needless_bitwise_bool = "deny" needless_character_iteration = "deny" needless_continue = "deny" needless_for_each = "deny" needless_maybe_sized = "deny" needless_raw_string_hashes = "deny" no_effect_underscore_binding = "deny" no_mangle_with_rust_abi = "deny" option_as_ref_cloned = "deny" option_option = "deny" ptr_as_ptr = "deny" ptr_cast_constness = "deny" pub_underscore_fields = "deny" redundant_closure_for_method_calls = "deny" ref_as_ptr = "deny" ref_option_ref = "deny" same_functions_in_if_condition = "deny" semicolon_if_nothing_returned = "deny" trivially_copy_pass_by_ref = "deny" uninlined_format_args = "deny" unnecessary_join = "deny" unnested_or_patterns = "deny" unused_async = "deny" unused_self = "deny" used_underscore_binding = "deny" zero_sized_map_values = "deny" as_ptr_cast_mut = "deny" clear_with_drain = "deny" collection_is_never_read = "deny" debug_assert_with_mut_call = "deny" derive_partial_eq_without_eq = "deny" empty_line_after_doc_comments = "deny" empty_line_after_outer_attr = "deny" equatable_if_let = "deny" iter_on_empty_collections = "deny" iter_on_single_items = "deny" iter_with_drain = "deny" needless_collect = "deny" needless_pass_by_ref_mut = "deny" negative_feature_names = "deny" non_send_fields_in_send_ty = "deny" nonstandard_macro_braces = "deny" path_buf_push_overwrite = "deny" read_zero_byte_vec = "deny" redundant_clone = "deny" redundant_feature_names = "deny" trailing_empty_array = "deny" trait_duplication_in_bounds = "deny" type_repetition_in_bounds = "deny" uninhabited_references = "deny" unnecessary_struct_initialization = "deny" unused_peekable = "deny" unused_rounding = "deny" use_self = "deny" useless_let_if_seq = "deny" wildcard_dependencies = "deny" unseparated_literal_suffix = "deny" unnecessary_safety_doc = "deny" unnecessary_safety_comment = "deny" unnecessary_self_imports = "deny" string_to_string = "deny" rest_pat_in_fully_bound_structs = "deny" redundant_type_annotations = "deny" infinite_loop = "deny" zero_repeat_side_effects = "deny" cast_possible_truncation = "deny" cast_possible_wrap = "deny" cast_precision_loss = "deny" cast_sign_loss = "deny" copy_iterator = "deny" doc_markdown = "deny" explicit_deref_methods = "deny" explicit_iter_loop = "deny" float_cmp = "deny" fn_params_excessive_bools = "deny" into_iter_without_iter = "deny" iter_without_into_iter = "deny" iter_not_returning_iterator = "deny" large_digit_groups = "deny" large_types_passed_by_value = "deny" manual_assert = "deny" maybe_infinite_iter = "deny" missing_fields_in_debug = "deny" needless_pass_by_value = "deny" range_minus_one = "deny" range_plus_one = "deny" redundant_else = "deny" ref_binding_to_reference = "deny" return_self_not_must_use = "deny" single_match_else = "deny" string_add_assign = "deny" transmute_ptr_to_ptr = "deny" unchecked_duration_subtraction = "deny" unnecessary_box_returns = "deny" unnecessary_wraps = "deny" branches_sharing_code = "deny" fallible_impl_from = "deny" missing_const_for_fn = "deny" significant_drop_in_scrutinee = "deny" significant_drop_tightening = "deny" try_err = "deny" lossy_float_literal = "deny" let_underscore_must_use = "deny" iter_over_hash_type = "deny" get_unwrap = "deny" error_impl_error = "deny" empty_structs_with_brackets = "deny" empty_enum_variants_with_brackets = "deny" empty_drop = "deny" clone_on_ref_ptr = "deny" upper_case_acronyms = "deny" allow_attributes = "deny" # inline_always = "deny" # large_futures = "deny" # large_stack_arrays = "deny" # linkedlist = "deny" # missing_errors_doc = "deny" # missing_panics_doc = "deny" # should_panic_without_expect = "deny" # similar_names = "deny" # too_many_lines = "deny" # unreadable_literal = "deny" # wildcard_imports = "deny" # allow_attributes_without_reason = "deny" # missing_assert_message = "deny" # missing_docs_in_private_items = "deny" undocumented_unsafe_blocks = "deny" # multiple_unsafe_ops_per_block = "deny" # single_char_lifetime_names = "deny" # wildcard_enum_match_arm = "deny" [workspace.lints.rust] future_incompatible = { level = "deny", priority = -1 } nonstandard_style = { level = "deny", priority = -1 } absolute_paths_not_starting_with_crate = "deny" explicit_outlives_requirements = "deny" keyword_idents_2018 = "deny" keyword_idents_2024 = "deny" missing_abi = "deny" non_ascii_idents = "deny" non_local_definitions = "deny" redundant_lifetimes = "deny" single_use_lifetimes = "deny" trivial_casts = "deny" trivial_numeric_casts = "deny" unsafe_op_in_unsafe_fn = "deny" unused_crate_dependencies = "deny" unused_import_braces = "deny" unused_lifetimes = "deny" unused_macro_rules = "deny" ambiguous_glob_imports = "deny" unused_unsafe = "deny" let_underscore = { level = "deny", priority = -1 } unreachable_pub = "deny" unused_qualifications = "deny" variant_size_differences = "deny" non_camel_case_types = "deny" # unused_results = "deny" # non_exhaustive_omitted_patterns = "deny" # missing_docs = "deny" # missing_copy_implementations = "deny"