IronRDP/Cargo.toml
Marc-André Lureau dd787af5a0 feat(benches): add perfenc
Make some internal APIs publicly visible thanks to "visibility" when
compiling with the "__bench" feature.

("testsuite-core" also learned "__bench", because fast_path.rs is a
shared file)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-29 13:00:07 +02:00

151 lines
4.6 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[workspace]
members = [
"crates/*",
"benches",
"xtask",
"ffi",
]
resolver = "2"
# FIXME: fix compilation
exclude = [
"crates/ironrdp-client-glutin",
"crates/ironrdp-glutin-renderer",
"crates/ironrdp-replay-client",
]
[workspace.package]
edition = "2021"
license = "MIT OR Apache-2.0"
homepage = "https://github.com/Devolutions/IronRDP"
repository = "https://github.com/Devolutions/IronRDP"
authors = ["Devolutions Inc. <infos@devolutions.net>", "Teleport <goteleport.com>"]
keywords = ["rdp", "remote-desktop", "network", "client", "protocol"]
categories = ["network-programming"]
[workspace.dependencies]
# Note that for better cross-tooling interactions, do not use workspace
# dependencies for anything that is not "workspace internal" (e.g.: mostly
# dev-dependencies). E.g.: release-plz cant detect that a dependency has been
# updated in a way warranting a version bump in the dependant if no commit is
# touching a file associated to the crate. It is technically okay to use that
# for "private" (i.e.: not used in the public API) dependencies too, but we
# still want to make follow-up releases to stay up to date with the community,
# even for private dependencies.
expect-test = "1"
proptest = "1.4"
rstest = "0.18"
# Note: we are trying to move away from using these crates.
# They are being kept around for now for legacy compatibility,
# but new usage should be avoided.
lazy_static = "1.4" # Legacy crate; prefer std::sync::LazyLock or LazyCell
num-derive = "0.4"
num-traits = "0.2"
[workspace.lints.rust]
# == Safer unsafe == #
unsafe_op_in_unsafe_fn = "warn"
invalid_reference_casting = "warn"
# == Style, readability == #
elided_lifetimes_in_paths = "warn" # https://quinedot.github.io/rust-learning/dont-hide.html
absolute_paths_not_starting_with_crate = "warn"
single_use_lifetimes = "warn"
unreachable_pub = "warn"
unused_lifetimes = "warn"
unused_qualifications = "warn"
keyword_idents = "warn"
noop_method_call = "warn"
# missing_docs = "warn" # TODO: NOTE(@CBenoit): we probably want to ensure this in core tier crates only
# == Compile-time / optimization == #
unused_crate_dependencies = "warn"
unused_macro_rules = "warn"
[workspace.lints.clippy]
# == Safer unsafe == #
undocumented_unsafe_blocks = "warn"
multiple_unsafe_ops_per_block = "warn"
transmute_ptr_to_ptr = "warn"
as_ptr_cast_mut = "warn"
cast_ptr_alignment = "warn"
fn_to_numeric_cast_any = "warn"
ptr_cast_constness = "warn"
# == Correctness == #
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_sign_loss = "warn"
float_cmp = "warn"
as_underscore = "warn"
# TODO: unwrap_used = "warn" # Lets either handle `None`, `Err` or use `expect` to give a reason.
large_stack_frames = "warn"
# == Style, readability == #
semicolon_outside_block = "warn" # With semicolon-outside-block-ignore-multiline = true
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "warn"
trait_duplication_in_bounds = "warn"
type_repetition_in_bounds = "warn"
checked_conversions = "warn"
get_unwrap = "warn"
similar_names = "warn" # Reduce risk of confusing similar names together, and protects against typos when variable shadowing was intended.
str_to_string = "warn"
string_to_string = "warn"
std_instead_of_core = "warn"
separated_literal_suffix = "warn"
unused_self = "warn"
useless_let_if_seq = "warn"
string_add = "warn"
range_plus_one = "warn"
# TODO: self_named_module_files = "warn"
# TODO: partial_pub_fields = "warn" (should we enable only in pdu crates?)
# == Compile-time / optimization == #
inline_always = "warn"
or_fun_call = "warn"
unnecessary_box_returns = "warn"
# == Extra-pedantic clippy == #
collection_is_never_read = "warn"
copy_iterator = "warn"
expl_impl_clone_on_copy = "warn"
implicit_clone = "warn"
large_types_passed_by_value = "warn"
redundant_clone = "warn"
alloc_instead_of_core = "warn"
empty_drop = "warn"
return_self_not_must_use = "warn"
wildcard_dependencies = "warn"
# == Lets not merge unintended eprint!/print! statements in libraries == #
print_stderr = "warn"
print_stdout = "warn"
dbg_macro = "warn"
[profile.dev]
opt-level = 1
[profile.production]
inherits = "release"
lto = true
[profile.production-wasm]
inherits = "release"
opt-level = "s"
lto = true
[profile.test.package.proptest]
opt-level = 3
[profile.test.package.rand_chacha]
opt-level = 3
[patch.crates-io]
# FIXME: We need to catch up with Diplomat upstream again, but this is a significant amount of work.
# In the meantime, we use this forked version which fixes an undefined behavior in the code expanded by the bridge macro.
diplomat = { git = "https://github.com/CBenoit/diplomat", rev = "6dc806e80162b6b39509a04a2835744236cd2396" }