[package] name = "pptr" description = "Type-Driven Asynchronous Actor Runtime" license = "Unlicense" version = "0.3.0" authors = ["Rafał Krzyważnia "] edition = "2021" readme = "README.md" repository = "https://github.com/ribelo/pptr" [desc] [dependencies] async-trait = "0.1" strum = { version = "0.26", features = ["derive"] } thiserror = "1.0" tokio = { version = "1.3", features = ["full"] } tracing = "0.1" indexmap = "2.1" rustc-hash = "1.1" anyhow = "1.0" async-recursion = "1.0" atomic-take = "1.1.0" tokio-util = "0.7.10" num_cpus = "1.16.0" [dev-dependencies] actix = "0.13.1" vin = "9.1" ractor = "0.9" criterion = "0.5" coerce = "0.8.10" crossbeam = { version = "0.8.2", features = ["crossbeam-channel"] } parking_lot = "0.12.1" [lints.clippy] all = { level = "warn", priority = -2 } # restriction dbg_macro = "warn" todo = "warn" unimplemented = "warn" # I like the explicitness of this rule as it removes confusion around `clone`. # This increases readability, avoids `clone` mindlessly and heap allocating on accident. clone_on_ref_ptr = "warn" # These two are mutually exclusive, I like `mod.rs` files for better fuzzy searches on module entries. self_named_module_files = "warn" # "-Wclippy::mod_module_files" empty_drop = "warn" empty_structs_with_brackets = "warn" exit = "warn" filetype_is_file = "warn" get_unwrap = "warn" impl_trait_in_params = "warn" rc_buffer = "warn" rc_mutex = "warn" rest_pat_in_fully_bound_structs = "warn" unnecessary_safety_comment = "warn" undocumented_unsafe_blocks = "warn" # I want to write the best Rust code so pedantic is enabled. # We should only disable rules globally if they are either false positives, chaotic, or does not make sense. pedantic = { level = "warn", priority = -1 } # Allowed rules # pedantic # This rule is too pedantic, I don't want to force this because naming things are hard. module_name_repetitions = "allow" # All triggers are mostly ignored in this codebase, so this is ignored globally. struct_excessive_bools = "allow" too_many_lines = "allow" doc_markdown = "allow" # nursery # `const` functions do not make sense for our project because this is not a `const` library. # This rule also confuses new comers and forces them to add `const` blindlessly without any reason. missing_const_for_fn = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow"