Generate NetworkSettings with IPC

This generates and applies NetworkSettings object with unix socket IPC.

- domain socket, json-rpc based communication
- switches to anyhow for burrow crate
- adds support for starting daemons on macos
This commit is contained in:
Jett Chen 2023-10-01 11:49:00 +08:00 committed by Conrad Kramer
parent 6368ca7f74
commit c9f104e523
31 changed files with 909 additions and 117 deletions

View file

@ -13,11 +13,12 @@ byteorder = "1.4"
tracing = "0.1"
log = "0.4"
serde = { version = "1", features = ["derive"], optional = true }
schemars = { version = "0.8", optional = true }
futures = { version = "0.3.28", optional = true }
[features]
serde = ["dep:serde"]
serde = ["dep:serde", "dep:schemars"]
tokio = ["tokio/net", "dep:futures"]
[target.'cfg(feature = "tokio")'.dev-dependencies]

View file

@ -4,7 +4,7 @@ use std::io::Error;
use super::TunInterface;
#[derive(Debug, Clone, Default)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize, schemars::JsonSchema))]
pub struct TunOptions {
/// (Windows + Linux) Name the tun interface.
pub(crate) name: Option<String>,