[package] name = "pesde" version = "0.6.0" edition = "2021" license = "MIT" authors = ["daimond113 "] description = "A package manager for the Luau programming language, supporting multiple runtimes including Roblox and Lune" homepage = "https://pesde.daimond113.com" repository = "https://github.com/pesde-pkg/pesde" include = ["src/**/*", "Cargo.toml", "Cargo.lock", "README.md", "LICENSE", "CHANGELOG.md"] [features] default = ["wally-compat", "patches"] bin = [ "dep:clap", "dep:dirs", "dep:tracing-subscriber", "dep:indicatif", "dep:inquire", "dep:toml_edit", "dep:console", "dep:anyhow", "dep:keyring", "dep:open", "dep:paste", "dep:serde_json", "dep:windows-registry", "dep:windows", "gix/worktree-mutation", "fs-err/expose_original_error", "tokio/rt", "tokio/rt-multi-thread", "tokio/macros", ] wally-compat = ["dep:serde_json"] patches = ["dep:git2"] version-management = ["bin"] [[bin]] name = "pesde" path = "src/main.rs" required-features = ["bin"] [workspace.lints.clippy] zero_sized_map_values = "warn" while_float = "deny" useless_let_if_seq = "warn" unused_trait_names = "warn" unused_result_ok = "warn" unused_peekable = "warn" unused_async = "warn" unreadable_literal = "warn" unnested_or_patterns = "warn" unneeded_field_pattern = "warn" unnecessary_wraps = "warn" unnecessary_semicolon = "warn" unnecessary_self_imports = "warn" unnecessary_literal_bound = "warn" unnecessary_join = "warn" unnecessary_box_returns = "warn" uninlined_format_args = "warn" type_repetition_in_bounds = "warn" try_err = "warn" trivially_copy_pass_by_ref = "warn" trait_duplication_in_bounds = "warn" todo = "deny" suspicious_operation_groupings = "warn" suboptimal_flops = "deny" struct_field_names = "warn" string_to_string = "warn" string_lit_chars_any = "warn" string_lit_as_bytes = "warn" str_split_at_newline = "warn" stable_sort_primitive = "warn" single_option_map = "warn" single_match_else = "warn" single_char_pattern = "warn" significant_drop_tightening = "warn" significant_drop_in_scrutinee = "warn" set_contains_or_insert = "deny" separated_literal_suffix = "warn" semicolon_inside_block = "warn" semicolon_if_nothing_returned = "warn" self_named_module_files = "warn" same_functions_in_if_condition = "warn" return_and_then = "warn" renamed_function_params = "warn" ref_patterns = "deny" ref_option = "deny" ref_binding_to_reference = "deny" redundant_type_annotations = "deny" redundant_else = "warn" redundant_closure_for_method_calls = "warn" redundant_clone = "deny" read_zero_byte_vec = "warn" rc_buffer = "deny" range_plus_one = "deny" range_minus_one = "deny" pub_without_shorthand = "deny" pub_underscore_fields = "deny" precedence_bits = "deny" pathbuf_init_then_push = "warn" path_buf_push_overwrite = "warn" option_option = "deny" option_as_ref_cloned = "deny" nonstandard_macro_braces = "deny" non_zero_suggestions = "deny" no_effect_underscore_binding = "warn" needless_raw_string_hashes = "warn" needless_pass_by_value = "deny" needless_pass_by_ref_mut = "warn" needless_for_each = "deny" needless_continue = "deny" needless_collect = "deny" needless_bitwise_bool = "deny" mut_mut = "deny" must_use_candidate = "warn" mem_forget = "deny" maybe_infinite_iter = "deny" match_wildcard_for_single_variants = "deny" match_bool = "warn" map_unwrap_or = "warn" map_err_ignore = "warn" manual_midpoint = "warn" manual_let_else = "warn" manual_is_variant_and = "warn" manual_is_power_of_two = "warn" lossy_float_literal = "deny" literal_string_with_formatting_args = "warn" large_types_passed_by_value = "warn" large_stack_frames = "warn" large_stack_arrays = "warn" large_digit_groups = "deny" iter_with_drain = "deny" iter_on_single_items = "deny" iter_on_empty_collections = "deny" iter_filter_is_some = "deny" iter_filter_is_ok = "deny" invalid_upcast_comparisons = "deny" integer_division = "deny" infinite_loop = "deny" inefficient_to_string = "warn" index_refutable_slice = "deny" inconsistent_struct_constructor = "warn" imprecise_flops = "deny" implicit_clone = "warn" if_then_some_else_none = "warn" if_not_else = "warn" get_unwrap = "warn" from_iter_instead_of_collect = "warn" format_push_string = "warn" format_collect = "warn" fn_to_numeric_cast_any = "deny" float_cmp_const = "deny" float_cmp = "deny" float_arithmetic = "warn" flat_map_option = "warn" filter_map_next = "warn" filetype_is_file = "deny" explicit_iter_loop = "warn" explicit_into_iter_loop = "warn" explicit_deref_methods = "warn" equatable_if_let = "warn" enum_glob_use = "warn" empty_structs_with_brackets = "warn" empty_enum_variants_with_brackets = "warn" empty_drop = "warn" elidable_lifetime_names = "warn" doc_link_with_quotes = "warn" doc_link_code = "warn" doc_include_without_cfg = "warn" disallowed_script_idents = "warn" derive_partial_eq_without_eq = "warn" deref_by_slicing = "warn" default_numeric_fallback = "warn" dbg_macro = "deny" comparison_chain = "warn" collection_is_never_read = "warn" cloned_instead_of_copied = "warn" clear_with_drain = "warn" cfg_not_test = "warn" cast_sign_loss = "deny" cast_precision_loss = "deny" cast_possible_wrap = "deny" case_sensitive_file_extension_comparisons = "warn" branches_sharing_code = "warn" bool_to_int_with_if = "warn" assigning_clones = "warn" as_underscore = "warn" [lints] workspace = true [dependencies] serde = { version = "1.0.217", features = ["derive"] } toml = "0.8.20" gix = { version = "0.70.0", default-features = false, features = ["blocking-http-transport-reqwest-rust-tls", "revparse-regex", "credentials", "parallel"] } semver = { version = "1.0.25", features = ["serde"] } reqwest = { version = "0.12.12", default-features = false, features = ["rustls-tls", "stream", "json"] } tokio-tar = "0.3.1" async-compression = { version = "0.4.18", features = ["tokio", "gzip"] } pathdiff = "0.2.3" relative-path = { version = "1.9.3", features = ["serde"] } tracing = { version = "0.1.41", features = ["attributes"] } thiserror = "2.0.11" tokio = { version = "1.43.0", features = ["process", "macros"] } tokio-util = "0.7.13" async-stream = "0.3.6" futures = "0.3.31" full_moon = { version = "1.2.0", features = ["luau"] } url = { version = "2.5.4", features = ["serde"] } jiff = { version = "0.1.29", default-features = false, features = ["serde", "std"] } sha2 = "0.10.8" tempfile = "3.16.0" wax = { version = "0.6.0", default-features = false } fs-err = { version = "3.1.0", features = ["tokio"] } urlencoding = "2.1.3" async_zip = { version = "0.0.17", features = ["tokio", "deflate", "deflate64", "tokio-fs"] } # TODO: remove this when gitoxide adds support for: committing, pushing, adding git2 = { version = "0.20.0", optional = true } serde_json = { version = "1.0.138", optional = true } anyhow = { version = "1.0.95", optional = true } open = { version = "5.3.2", optional = true } keyring = { version = "3.6.1", features = ["crypto-rust", "windows-native", "apple-native", "sync-secret-service"], optional = true } console = { version = "0.15.10", optional = true } toml_edit = { version = "0.22.23", optional = true } clap = { version = "4.5.28", features = ["derive"], optional = true } dirs = { version = "6.0.0", optional = true } tracing-subscriber = { version = "0.3.19", features = ["env-filter"], optional = true } indicatif = { version = "0.17.11", optional = true } inquire = { version = "0.7.5", default-features = false, features = ["console", "one-liners"], optional = true } paste = { version = "1.0.15", optional = true } [target.'cfg(target_os = "windows")'.dependencies] windows-registry = { version = "0.4.0", optional = true } windows = { version = "0.59.0", features = ["Win32_Storage", "Win32_Storage_FileSystem", "Win32_Security"], optional = true } [dev-dependencies] schemars = { git = "https://github.com/daimond113/schemars", rev = "bc7c7d6", features = ["semver1", "url2"] } [workspace] resolver = "2" members = ["registry"] [profile.dev.package.full_moon] opt-level = 3 [profile.dev.package.miniz_oxide] opt-level = 3 [profile.release] opt-level = "s" lto = true incremental = true codegen-units = 1 panic = "abort" [profile.release.package.pesde-registry] # add debug symbols for Sentry stack traces debug = "full"