Commit graph

19 commits

Author SHA1 Message Date
Benoît Cortier
27f5504508
refactor(mstsgu): follow up to PR 913 (#920)
Some checks are pending
CI / Fuzzing (push) Blocked by required conditions
CI / Check formatting (push) Waiting to run
CI / Check typos (push) Waiting to run
CI / Checks [linux] (push) Blocked by required conditions
CI / Checks [macos] (push) Blocked by required conditions
CI / Checks [windows] (push) Blocked by required conditions
CI / Web Client (push) Blocked by required conditions
CI / FFI (push) Blocked by required conditions
CI / Success (push) Blocked by required conditions
Coverage / Coverage Report (push) Waiting to run
Release crates / Open release PR (push) Waiting to run
Release crates / Release crates (push) Waiting to run
- Update tokio-tungstenite to latest
- Fix the dependencies
- Move the top-level documentation into a README.md that we re-include
in the source code
- Re-order the imports using the nightly formater
- Audit the unwraps and remove them
- Fix the UTF-16 string length computation
2025-08-19 10:01:49 -04:00
Benoît Cortier
c710909a3c
feat: inital support for .RDP files (#862)
This is paving the way for .rdp file support.

Issue: ARC-339
Issue: ARC-355
2025-07-08 13:10:04 -04:00
Emmanuel Ferdman
6024251985
docs: update fuzz location in ARCHITECTURE.md (#797) 2025-05-31 02:27:52 +00:00
Alex Yusiuk
0ff1ed8de5
refactor(web-client): refactor iron-remote-gui into iron-remote-desktop (#722) 2025-04-11 08:28:27 -04:00
Benoît Cortier
0b5f691c1e
chore(xtask): update binary dependencies (#663) 2025-02-05 18:12:10 -05:00
Marc-André Lureau
c26fab4a45 test(extra): add some client-server tests
This is just some basic tests, but hopefully it will grow to be more
friendly and cover more behaviours.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Benoît Cortier
2fe519da1a
docs: update ARCHITECTURE.md to mention ironrdp-core (#587) 2024-11-21 08:59:53 -06:00
Marc-André Lureau
1ef9dd3f37 refactor(pdu): rename PduEncode->Encode PduDecode->Decode
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Benoît Cortier
39d5ded239
docs: add "on bit flags" section (#237) 2023-10-30 22:09:18 +00:00
Vladyslav Nikonov
6b660fa298
feat(cliprdr): Clipboard support for Windows (#194)
Includes refactoring changes by @ibeckermayer from #196 and #197

Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
2023-09-27 14:45:47 -04:00
Benoît Cortier
86b86ba343
doc: elaborate high-level documentation (#192) 2023-09-18 19:03:39 +00:00
Benoît Cortier
babbd68af5
feat(blocking): initial implementation (#158) 2023-09-11 15:47:26 +00:00
Isaiah Becker-Mayer
d0eed25157
feat(rdpdr): Core Capability PDUs and refactoring ironrdp-rdpdr internals (#186)
Adds
- [2.2.2.7 Server Core Capability Request (DR_CORE_CAPABILITY_REQ)](702789c3-b924-4bc2-9280-3221bc7d6797)
- [2.2.2.8 Client Core Capability Response (DR_CORE_CAPABILITY_RSP)](f513bf87-cca0-488a-ac5c-18cf18f4a7e1)

This also refactors rdpdr code (inspired by @pacmancoder's design) such that all PDUs
are packed into an `RdpdrPdu` enum, and only that enum is `PduEncode`/`PduDecode`.
2023-08-29 14:09:43 -04:00
Isaiah Becker-Mayer
d51fb6dacb feat: RDPDR static channel scaffolding 2023-08-26 04:37:13 -04:00
Benoît CORTIER
2938db416b feat: API for custom static virtual channels
Issue: ARC-147
Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
2023-08-26 04:37:13 -04:00
Benoît CORTIER
493e8f13a4 ci: add web client check job 2023-05-23 08:31:19 -04:00
Benoît CORTIER
cf2287739d refactor: error handling
Base all library errors on `ironrdp_error::Error`, a lightweight and
`no_std`-compatible generic `Error` type.
A custom consumer-defined type (such as `PduErrorKind`) for
domain-specific details is wrapped by this type.
2023-05-15 23:45:22 -04:00
Benoît CORTIER
60bc72f873 test: organize integration tests into single crate
Put all integration tests in a single crate, and organized in modules.

This is similar to what was done in `cargo` repository:
https://github.com/rust-lang/cargo/pull/5022#issuecomment-364691154

```
$ rustup show
stable-x86_64-unknown-linux-gnu (default)
rustc 1.69.0 (84c898d65 2023-04-16)
```

Run on a recent high-end laptop:
12th Gen Intel(R) Core(TM) i9-12900HK

Original (multiple integration binaries):

- `cargo clean && cargo test --no-run`: 62.893s
- `cargo clean && cargo build --lib`: 54.959s
- `cargo clean && cargo build --bins`: 55.933s
- `cargo test --no-run` (after `cargo build`): 14.472s
- `cargo test` (after `cargo test --no-run`): 1.786s
- `du -hs target/`: 4.2G

After (ironrdp-testsuite):

- `cargo clean && cargo test --no-run`: 41.157s (crates with no tests are ignored)
- `cargo clean && cargo build --lib`: 53.983s
- `cargo clean && cargo build --bins`: 54.482s
- `cargo test --no-run` (after `cargo build`): 12.915s
- `cargo test` (after `cargo test --no-run`): 0.240s
- `du -hs target/`: 3.4G

Absolute diff:
- `cargo clean && cargo test --no-run`: -21.736s
- `cargo clean && cargo build --lib`: -0.976s
- `cargo clean && cargo build --bins`: -1.451s
- `cargo test --no-run` (after `cargo build`): -1.557s
- `cargo test` (after `cargo test --no-run`): -1.546s
- `du -hs target/`: -0.8G

Relative diff (%):
- `cargo clean && cargo test --no-run`: -34.5%
- `cargo clean && cargo build --lib`: -1.77%
- `cargo clean && cargo build --bins`: -2.59%
- `cargo test --no-run` (after `cargo build`): -10.7%
- `cargo test` (after `cargo test --no-run`): -86.5%
- `du -hs target/`: -19.0%
2023-05-11 19:41:11 -04:00
Benoît Cortier
55d11a5000
refactor: clarify project architecture (#123)
> Make the root of the workspace a virtual manifest. It might
> be tempting to put the main crate into the root, but that
> pollutes the root with src/, requires passing --workspace to
> every Cargo command, and adds an exception to an otherwise
> consistent structure.

> Don’t succumb to the temptation to strip common prefix
> from folder names. If each crate is named exactly as the
> folder it lives in, navigation and renames become easier.
> Cargo.tomls of reverse dependencies mention both the folder
> and the crate name, it’s useful when they are exactly the
> same.

Source:
https://matklad.github.io/2021/08/22/large-rust-workspaces.html#Smaller-Tips
2023-05-09 21:00:07 +00:00