-
Notifications
You must be signed in to change notification settings - Fork 1
/
Cargo.toml
59 lines (45 loc) · 2.13 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
# [workspace]
# members = ["chafa-sys"]
[package]
name = "vic"
# clark, vide, vedi, vicu ... ?
version = "0.3.0"
edition = "2021"
# https://doc.rust-lang.org/edition-guide/rust-2021/index.html
# 2015 edition == 1.0
# 2018 edition == 1.31.0
# 2021 edition == 1.56.0
# 2024 edition anticipated to be 1.82.0
# [[bin]]
# edition = "2021"
# name = "vic"
# path = "src/main.rs"
# https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
[dependencies]
chafa-sys = { path = "chafa-sys" }
# justification: chafa is vital because it creates the main UI, pretty terminal graphics
#
# refactor to separate repo once it's robust enough to share:
# chafa-sys = { git = "https://github.com/wong-justin/chafa-rust.git" } # tag = "0.1.0", or rev = "0c12ab34..."
crossterm = { version = "= 0.23.2", features = ["event-stream"] }
# justification: I don't want to handle cross-platform terminal quirks on my own
pico-args = { version = "= 0.5.0", features = ["eq-separator"] }
# justification: don't want to waste time and energy reinventing arg parsing.
# this is declarative, which is more maintainable than hand-rolled imperative parsing.
# this is a small dependency
log = "= 0.4.20"
# justification: logs are necessary since TUI blocks stderr/stdout.
# this is a small dependency
# tokio = { version = "= 1.38.1", features = ["full"] }
# justification: need async, else heavy CPU processing (ffmpeg/chafa) will block UI and feel terrible. tokio is the most widely supported and talked about async lib, so I should be able to learn tokio the easiest
#
# 1.38.1 is last version of tokio using rust-version 1.65.0
# rejected:
#
# video-rs = "= 0.4.0" # requires lots of libav<> local packages, and runtime still breaks with "invalid data"
# opencv = { version = "= 0.88.0", default-features = false, features = ["videoio"] } # video, videostab,
# opencv 0.88.0 is last version using rust-version 1.65.0
# nvm, opencv doesn't build on my machine anyways
#
# so just use ffmpeg on $PATH instead of these video decoding libs