phase 2
This commit is contained in:
51
media/docs/crates.dot
Normal file
51
media/docs/crates.dot
Normal file
@@ -0,0 +1,51 @@
|
||||
// Cargo workspace crate dependency graph
|
||||
// Phase 2: client capture + encode implemented; server is a stub
|
||||
digraph crates {
|
||||
graph [fontname="monospace" bgcolor="#1e1e2e" pad="0.5"]
|
||||
node [fontname="monospace" fontcolor="#cdd6f4" style=filled shape=box
|
||||
fillcolor="#313244" color="#585b70" margin="0.2,0.1"]
|
||||
edge [color="#585b70" fontname="monospace" fontcolor="#a6adc8"]
|
||||
|
||||
// External
|
||||
ffmpeg_next [label="ffmpeg-next 8\n(ffmpeg-sys-next)" shape=component fillcolor="#1e3a2f" color="#a6e3a1"]
|
||||
tokio [label="tokio 1\n(async runtime)" shape=component fillcolor="#1e2a3e" color="#89b4fa"]
|
||||
serde [label="serde / serde_json" shape=component fillcolor="#2a2a3e" color="#cba6f7"]
|
||||
tracing [label="tracing\ntracing-subscriber" shape=component fillcolor="#2a2a3e" color="#cba6f7"]
|
||||
anyhow [label="anyhow" shape=component fillcolor="#2a2a3e" color="#cba6f7"]
|
||||
|
||||
// Workspace crates
|
||||
common [label="cht-common\n─────────────\nprotocol.rs (wire framing)\nframe.rs (Frame, AudioBuffer)\nlogging.rs"
|
||||
fillcolor="#2d2038" color="#cba6f7"]
|
||||
|
||||
client [label="cht-client [sender, Wayland]\n─────────────────────────────\ncapture.rs KMS/DRM → DRM_PRIME frames\nencoder.rs VAAPI H.264 (lazy init)\npipeline.rs capture→encode thread\nmain.rs TCP transport + keepalive"
|
||||
fillcolor="#1e2d3e" color="#89b4fa"]
|
||||
|
||||
server [label="cht-server [receiver, mcrn]\n─────────────────────────────\nmain.rs TCP listener (stub)\n counts packets, no decode yet"
|
||||
fillcolor="#2d1e1e" color="#f38ba8"]
|
||||
|
||||
// Deps
|
||||
client -> common
|
||||
server -> common
|
||||
|
||||
common -> serde
|
||||
common -> tokio
|
||||
common -> tracing
|
||||
common -> anyhow
|
||||
|
||||
client -> ffmpeg_next
|
||||
client -> tokio
|
||||
client -> tracing
|
||||
client -> anyhow
|
||||
|
||||
server -> tokio
|
||||
server -> tracing
|
||||
server -> anyhow
|
||||
|
||||
// Legend
|
||||
subgraph cluster_legend {
|
||||
label="Legend" fontcolor="#a6adc8" color="#585b70" fontname="monospace"
|
||||
l1 [label="implemented" fillcolor="#1e2d3e" color="#89b4fa" shape=box]
|
||||
l2 [label="stub / planned" fillcolor="#2d1e1e" color="#f38ba8" shape=box]
|
||||
l3 [label="external crate" fillcolor="#1e3a2f" color="#a6e3a1" shape=component]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user