Skip to main content

rmux_server/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3#![deny(clippy::await_holding_lock)]
4
5//! Tokio-based detached RPC server for RMUX.
6
7#[cfg(any(unix, windows))]
8#[cfg_attr(windows, allow(dead_code))]
9mod automatic_rename;
10#[cfg(any(unix, windows))]
11#[cfg_attr(windows, allow(dead_code))]
12mod client_flags;
13#[cfg(any(unix, windows))]
14#[cfg_attr(windows, allow(dead_code))]
15mod clock_mode;
16#[cfg(any(unix, windows))]
17#[cfg_attr(windows, allow(dead_code))]
18mod control;
19#[cfg(any(unix, windows))]
20#[cfg_attr(windows, allow(dead_code))]
21mod control_mode;
22#[cfg(any(unix, windows))]
23#[cfg_attr(windows, allow(dead_code))]
24mod control_notifications;
25#[cfg(any(unix, windows))]
26#[cfg_attr(windows, allow(dead_code))]
27mod copy_mode;
28mod daemon;
29#[cfg(any(unix, windows))]
30mod diagnostic_log;
31#[cfg(any(unix, windows))]
32#[cfg_attr(windows, allow(dead_code))]
33mod format_runtime;
34#[cfg(any(unix, windows))]
35#[cfg_attr(windows, allow(dead_code))]
36mod handler;
37#[cfg(any(unix, windows))]
38#[cfg_attr(windows, allow(dead_code))]
39mod handler_support;
40#[cfg(any(unix, windows))]
41#[cfg_attr(windows, allow(dead_code))]
42mod hook_compat;
43#[cfg(any(unix, windows))]
44#[cfg_attr(windows, allow(dead_code))]
45mod hook_runtime;
46#[cfg(any(unix, windows))]
47mod host_name;
48#[cfg(any(unix, windows))]
49mod input_keys;
50#[cfg(any(unix, windows))]
51#[cfg_attr(windows, allow(dead_code))]
52mod key_table;
53#[cfg(any(unix, windows))]
54#[cfg_attr(windows, allow(dead_code))]
55mod keys;
56#[cfg(any(unix, windows))]
57#[cfg_attr(windows, allow(dead_code))]
58mod legacy_command;
59#[cfg(any(unix, windows))]
60mod limits;
61#[cfg(any(unix, windows))]
62#[cfg_attr(windows, allow(dead_code))]
63mod listener;
64#[cfg(any(unix, windows))]
65#[cfg_attr(windows, allow(dead_code))]
66mod listener_options;
67#[cfg(any(unix, windows))]
68#[cfg_attr(windows, allow(dead_code))]
69mod listener_signals;
70#[cfg(any(unix, windows))]
71mod mouse;
72#[cfg(any(unix, windows))]
73#[cfg_attr(windows, allow(dead_code))]
74mod outer_terminal;
75#[cfg(any(unix, windows))]
76#[cfg_attr(windows, allow(dead_code))]
77mod pane_indices;
78#[cfg(any(unix, windows))]
79#[cfg_attr(windows, allow(dead_code))]
80mod pane_io;
81#[cfg(unix)]
82mod pane_reader_runtime;
83#[cfg(any(unix, windows))]
84#[cfg_attr(windows, allow(dead_code))]
85mod pane_screen_state;
86#[cfg(any(unix, windows))]
87#[cfg_attr(windows, allow(dead_code))]
88mod pane_terminal_lookup;
89#[cfg(any(unix, windows))]
90#[cfg_attr(windows, allow(dead_code))]
91mod pane_terminal_process;
92#[cfg(any(unix, windows))]
93#[cfg_attr(windows, allow(dead_code))]
94mod pane_terminals;
95#[cfg(any(unix, windows))]
96#[cfg_attr(windows, allow(dead_code))]
97mod pane_transcript;
98#[cfg(any(unix, windows))]
99#[cfg_attr(windows, allow(dead_code))]
100mod pane_visible_geometry;
101#[cfg(any(unix, windows))]
102mod perf_instrument;
103#[cfg(any(unix, windows))]
104#[cfg_attr(windows, allow(dead_code))]
105mod renderer;
106#[cfg(any(unix, windows))]
107#[cfg_attr(windows, allow(dead_code))]
108mod server_access;
109mod signals;
110#[cfg(any(unix, windows))]
111#[cfg_attr(windows, allow(dead_code))]
112mod socket_cleanup;
113#[cfg(any(unix, windows))]
114#[cfg_attr(windows, allow(dead_code))]
115mod status_ranges;
116#[cfg(any(unix, windows))]
117#[cfg_attr(windows, allow(dead_code))]
118mod terminal;
119#[cfg(test)]
120mod test_env;
121#[cfg(test)]
122mod test_shell;
123#[cfg(any(unix, windows))]
124mod tmux_shim;
125#[cfg(unix)]
126mod unix_socket;
127#[cfg(any(unix, windows))]
128#[cfg_attr(windows, allow(dead_code))]
129mod wait_for;
130#[cfg(all(any(unix, windows), feature = "web"))]
131mod web;
132
133/// Fuzzing entry points for protocol parsers.
134#[cfg(all(any(unix, windows), feature = "web", feature = "fuzzing"))]
135#[doc(hidden)]
136pub mod fuzzing {
137    /// Feeds arbitrary bytes into the server-side share client-frame parser.
138    pub fn websocket_client_frame(data: &[u8]) {
139        crate::web::fuzz_client_frame(data);
140    }
141}
142
143pub use daemon::{
144    default_socket_path, ConfigFileSelection, ConfigLoadOptions, DaemonConfig, ServerDaemon,
145    ServerHandle,
146};