Commit graph

616 commits

Author SHA1 Message Date
Isaiah Becker-Mayer
36a210aae9
fix(web-client): paths to web crate and unsupported call (#128)
Co-authored-by: Benoît CORTIER <bcortier@proton.me>
2023-05-11 16:00:04 +00: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
Benoît Cortier
a2c6a5c124
feat(web): configurable initial desktop size (#122)
Exposes a new method from the SessionBuilder: `desktop_size`
This function takes a `DesktopSize` object that will be used during
the handshake.

Issue: ARC-136
2023-05-09 15:42:41 +00:00
Vladyslav Nikonov
71d7c0c651
fix: run typos check (#120)
- Fixes a bunch of typos
- Moves gigantic HEX-string represented binaries to separate `*.bin` files in crates\graphics\src\zgfx\mod.rs (it was messing with typos check)
2023-05-09 15:18:51 +00:00
Benoît Cortier
e99e6c7b55
fix: sanitize server name before sspi (#121) 2023-05-09 12:28:03 +03:00
Vladyslav Nikonov
137556013f
Add support for RDP6 32bpp bitmaps (#118)
This adds support for RDP6 32bpp bitmaps.

- RDP6 RLE implementation
- `RDP6_BITMAP_STREAM` pdu parsing
- New CLI arguments to select color depth and color reduction
- Unit tests and fuzzing for implemented functionality

Test bpp32 mode without lossy compression (RGB  colorspace)
```
cargo run -p ironrdp-client -- -u vmbox -p password --color-depth=32 <IP_ADDRESS>
```

Test bpp32 mode with lossy compression (YCoCg colorspace, subsampling, color loss)
```
cargo run -p ironrdp-client -- -u vmbox -p password --color-depth=32 --lossy-bitmap-compression <IP_ADDRESS>
```

Issue: ARC-149
2023-05-08 09:43:53 -04:00
Benoît Cortier
f11131b18a
fix: remove forgotten dbg! invocations (#117) 2023-05-05 11:10:32 -04:00
Benoît CORTIER
95faf8bbc6 feat!: implement new traits on PreconnectionBlob 2023-05-04 21:27:44 -04:00
Benoît CORTIER
5e9990ce38 refactor: use RustCrypto’s x509-cert crate
This replaces `x509-parser` crate with `x509-cert` crate:
- `x509-cert` crate has less dependencies, and
- we have common dependencies with it (`der` crate).
2023-05-04 21:27:44 -04:00
Benoît CORTIER
a8b9cfe99c docs: update ironrdp-pdu README.md 2023-05-04 21:27:44 -04:00
Benoît CORTIER
dd7413958d feat(web): shutdown placeholder method
This adds the `shutdown` method to `Session`.
The body is not yet implemented, but frontend code can be modified
to call it as of now.
Once the implementation is complete, no change on frontend code
will be required.
2023-05-04 21:27:44 -04:00
Benoît CORTIER
ccdd3825b0 refactor: connection sequence as state machine
- Connection sequence is now implemented as an instrumentable state
  machine

- Improved errors

Issue: ARC-146
Issue: ARC-133
2023-04-28 18:00:10 -04:00
Benoît CORTIER
440eb655ef build: update dependencies 2023-04-28 18:00:10 -04:00
Benoît CORTIER
4516521412 chore: use cargo inheritance 2023-04-28 18:00:10 -04:00
Benoît CORTIER
c7ddcb2a2b feat: use tracing instead of log 2023-04-28 18:00:10 -04:00
Benoît Cortier
710a51f24a
refactor: re-organize workspace (#101)
- Remove Tauri client.

  It was useful when initially prototyping the Web Component, but now
  it’s more of a maintenance burden. It’s notably not convenient to
  check in CI. Since we now have another native alternative that does
  not require any GPU (`ironrdp-client`), it’s probably a good time to
  part ways.

- Move wasm package into the workspace.

- Move Rust crates into a `crates` subfolder.

- Introduce `xtask` crate for free-form automation.
2023-03-29 19:09:15 -04:00