neuronbox_runtime/
protocol.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5pub const SWAP_SIGNAL_FILE_VERSION: u32 = 1;
7
8#[derive(Debug, Serialize, Deserialize)]
10#[serde(tag = "method", rename_all = "snake_case")]
11pub enum DaemonRequest {
12 Ping,
13 RegisterSession {
14 name: String,
15 estimated_vram_mb: u64,
16 pid: u32,
17 #[serde(default)]
18 tokens_per_sec: Option<f64>,
19 #[serde(default)]
20 model_dir: Option<String>,
21 },
22 UnregisterSession {
23 pid: u32,
24 },
25 ListSessions,
26 Stats,
27 SwapModel {
28 model_ref: String,
29 #[serde(default)]
30 quantization: Option<String>,
31 },
32 Version {
33 v: u32,
34 },
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct ActiveModelInfo {
40 pub model_ref: String,
41 #[serde(default)]
42 pub quantization: Option<String>,
43}
44
45#[derive(Debug, Serialize, Deserialize)]
46#[serde(tag = "response", rename_all = "snake_case")]
47pub enum DaemonResponse {
48 Pong,
49 Registered {
50 pid: u32,
51 },
52 Unregistered,
53 Sessions {
54 sessions: Vec<SessionInfo>,
55 },
56 Stats {
57 sessions: Vec<SessionInfo>,
58 #[serde(default)]
59 gpu_lines: Vec<String>,
60 #[serde(default)]
61 note: Option<String>,
62 #[serde(default)]
64 active_model: Option<ActiveModelInfo>,
65 #[serde(default)]
67 vram_used_by_pid: HashMap<u32, u64>,
68 },
69 Swapped {
70 model_ref: String,
71 #[serde(default)]
72 quantization: Option<String>,
73 },
74 VersionInfo {
75 v: u32,
76 },
77 Error {
78 message: String,
79 },
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83pub struct SessionInfo {
84 pub name: String,
85 pub pid: u32,
86 pub estimated_vram_mb: u64,
87 #[serde(default)]
88 pub tokens_per_sec: Option<f64>,
89 #[serde(default)]
90 pub model_dir: Option<String>,
91}