Files
nexus/rust/vendor/ironrdp-session/Cargo.toml
Andy Dixon 50c0104d57 feat(core): RDP client on IronRDP
clients::rdp connects over any caller-dialled TCP stream (direct, proxy
or SSH tunnel), upgrades to TLS and logs on with NLA (CredSSP/NTLM),
optionally falling back to TLS-only logon for servers without NLA such
as xrdp (credentials are passed so they log straight in). The server
certificate is pinned through a caller check on its SHA256 fingerprint
before any credentials are sent. The desktop decodes into the VNC
client's RGBA framebuffer; input (IronRDP's scancode/Unicode/mouse
operations), Display Control resizes and the deactivation-reactivation
sequence run on the session thread.

IronRDP's releases need three vendored patches (vendor/README.md):
picky and sspi with their RustCrypto release-candidate pins relaxed so
they share russh's stable versions (their own suites, 402 tests, pass
against them), and ironrdp-session with two unreleased upstream bitmap
fixes (#1486 stride, #1524 RDP6 orientation) without which xrdp desktops
render sheared.

Verified live against xrdp (scottyhardy/docker-remote-desktop): logon,
full desktop rendering, keyboard and mouse input.
2026-10-12 10:50:24 +01:00

211 lines
5.0 KiB
TOML

# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2024"
rust-version = "1.89"
name = "ironrdp-session"
version = "0.11.0"
authors = [
"Devolutions Inc. <infos@devolutions.net>",
"Teleport <goteleport.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "State machines to drive an RDP session"
homepage = "https://github.com/Devolutions/IronRDP"
readme = "README.md"
keywords = [
"rdp",
"remote-desktop",
"network",
"client",
"protocol",
]
categories = ["network-programming"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Devolutions/IronRDP"
resolver = "2"
[features]
default = []
qoi = [
"dep:qoicoubeh",
"ironrdp-pdu/qoi",
]
qoiz = [
"dep:zstd-safe",
"qoi",
]
[lib]
name = "ironrdp_session"
path = "src/lib.rs"
test = false
doctest = false
[dependencies.ironrdp-bulk]
version = "0.1"
[dependencies.ironrdp-core]
version = "0.2"
[dependencies.ironrdp-displaycontrol]
version = "0.8"
[dependencies.ironrdp-dvc]
version = "0.8"
[dependencies.ironrdp-error]
version = "0.2"
[dependencies.ironrdp-graphics]
version = "0.9"
[dependencies.ironrdp-pdu]
version = "0.9"
features = ["std"]
[dependencies.ironrdp-svc]
version = "0.8"
[dependencies.qoicoubeh]
version = "0.5"
optional = true
[dependencies.tracing]
version = "0.1"
features = ["log"]
[dependencies.zstd-safe]
version = "7.2"
features = ["std"]
optional = true
[lints.clippy]
alloc_instead_of_core = "warn"
allow_attributes = "warn"
as_conversions = "warn"
as_pointer_underscore = "warn"
as_ptr_cast_mut = "warn"
as_underscore = "warn"
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_ptr_alignment = "warn"
cast_sign_loss = "warn"
cfg_not_test = "warn"
checked_conversions = "warn"
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "warn"
collection_is_never_read = "warn"
copy_iterator = "warn"
dbg_macro = "warn"
deref_by_slicing = "warn"
disallowed_script_idents = "warn"
doc_include_without_cfg = "warn"
empty_drop = "warn"
empty_enum_variants_with_brackets = "warn"
expl_impl_clone_on_copy = "warn"
filetype_is_file = "warn"
float_cmp = "warn"
float_cmp_const = "warn"
fn_to_numeric_cast_any = "warn"
get_unwrap = "warn"
implicit_clone = "warn"
infinite_loop = "warn"
inline_always = "warn"
large_futures = "warn"
large_include_file = "warn"
large_stack_frames = "warn"
large_types_passed_by_value = "warn"
lossy_float_literal = "warn"
map_with_unused_argument_over_ranges = "warn"
mem_forget = "warn"
missing_panics_doc = "warn"
missing_safety_doc = "warn"
mixed_read_write_in_expression = "warn"
multiple_inherent_impl = "warn"
multiple_unsafe_ops_per_block = "warn"
needless_raw_strings = "warn"
non_ascii_literal = "warn"
non_zero_suggestions = "warn"
or_fun_call = "warn"
panic = "warn"
partial_pub_fields = "warn"
precedence_bits = "warn"
print_stderr = "warn"
print_stdout = "warn"
ptr_cast_constness = "warn"
pub_without_shorthand = "warn"
range_plus_one = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
redundant_clone = "warn"
redundant_type_annotations = "warn"
renamed_function_params = "warn"
rest_pat_in_fully_bound_structs = "warn"
return_self_not_must_use = "warn"
same_name_method = "warn"
self_named_module_files = "warn"
semicolon_outside_block = "warn"
separated_literal_suffix = "warn"
similar_names = "warn"
std_instead_of_core = "warn"
str_to_string = "warn"
string_add = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
suspicious_xor_used_as_pow = "warn"
todo = "warn"
trait_duplication_in_bounds = "warn"
transmute_ptr_to_ptr = "warn"
try_err = "warn"
type_repetition_in_bounds = "warn"
undocumented_unsafe_blocks = "warn"
unnecessary_box_returns = "warn"
unnecessary_safety_comment = "warn"
unnecessary_self_imports = "warn"
unused_result_ok = "warn"
unused_self = "warn"
unused_trait_names = "warn"
unwrap_used = "warn"
useless_let_if_seq = "warn"
wildcard_dependencies = "warn"
wildcard_imports = "warn"
[lints.rust]
absolute_paths_not_starting_with_crate = "warn"
ambiguous_negative_literals = "warn"
elided_lifetimes_in_paths = "warn"
invalid_reference_casting = "warn"
keyword_idents = "warn"
macro_use_extern_crate = "warn"
missing_unsafe_on_extern = "warn"
noop_method_call = "warn"
redundant_imports = "warn"
redundant_lifetimes = "warn"
single_use_lifetimes = "warn"
trivial_numeric_casts = "warn"
unit_bindings = "warn"
unreachable_pub = "warn"
unsafe_attr_outside_unsafe = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_crate_dependencies = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
unused_unsafe = "warn"