1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
wezterm/wezterm-ssh/Cargo.toml
Wez Furlong e090eb9eae
Image decoding is now done in a bg thread
Continuing from the previous commit, this shifts:

* In-memory data -> temporary file
* Image decoding -> background thread

The background thread asynchronously decodes frames and
sends them to the render thread via a bounded channel.

While decoding frames, it writes them, uncompressed, to
a scratch file so that when the animation loops, it is
a very cheap operation to rewind and pull that data
from the file, without having to burn CPU to re-decode
the data from the start.

Memory usage is bounded to 4 uncompressed frames while
decoding, then 3 uncompressed frames (triple buffered)
while looping over the rest.

However, disk usage is N uncompressed frames.

refs: https://github.com/wez/wezterm/issues/3263
2023-03-17 11:41:20 -07:00

54 lines
1.6 KiB
TOML

[package]
name = "wezterm-ssh"
version = "0.4.0"
authors = ["Wez Furlong <wez@wezfurlong.org>"]
edition = "2018"
repository = "https://github.com/wez/wezterm"
description = "More convenient higher level wrapper around libssh2"
license = "MIT"
documentation = "https://docs.rs/wezterm-ssh"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["libssh-rs", "ssh2"]
vendored-openssl = ["ssh2/vendored-openssl", "libssh-rs/vendored-openssl"]
vendored-openssl-ssh2 = ["ssh2/vendored-openssl"]
vendored-openssl-libssh-rs = ["libssh-rs/vendored-openssl"]
[dependencies]
anyhow = "1.0"
base64 = "0.21"
bitflags = "1.3"
camino = "1.0"
dirs-next = "2.0"
filedescriptor = { version="0.8", path = "../filedescriptor" }
filenamegen = "0.2"
gethostname = "0.4"
libc = "0.2"
log = "0.4"
portable-pty = { version="0.8", path = "../pty" }
regex = "1"
smol = "1.2"
ssh2 = {version="0.9.3", features=["openssl-on-win32"], optional = true}
libssh-rs = {version="0.1.5", features=["vendored"], git="https://github.com/wez/libssh-rs.git", optional = true}
#libssh-rs = {path="../../libssh-rs/libssh-rs", features=["vendored"], optional = true}
thiserror = "1.0"
socket2 = "0.5"
# Not used directly, but is used to centralize the openssl vendor feature selection
async_ossl = { path = "../async_ossl" }
[dev-dependencies]
assert_fs = "1.0.4"
clap = {version="4.0", features=["derive"]}
k9 = "0.11.0"
once_cell = "1.8"
predicates = "2.0"
env_logger = "0.10"
rstest = "0.16"
shell-words = "1.1"
smol-potat = "1.1.2"
termwiz = { version = "0.21", path = "../termwiz" }
whoami = "1.1"