Move files into old directory

This commit is contained in:
Michael Mikovsky
2026-02-16 12:52:46 -07:00
parent 2be2e8dbd9
commit c9b0e6f88f
68 changed files with 137 additions and 4214 deletions
Generated
+13 -4183
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -14,14 +14,14 @@ include = ["LICENSE-APACHE", "LICENSE-MIT", "**/*.rs", "Cargo.toml"]
[workspace] [workspace]
members = [ members = [
# Binaries # Binaries
"ush-gui", # "ush-gui",
# UnShell Binaries # UnShell Binaries
"ush-server", # "ush-server",
"ush-payload", "ush-payload",
# Libraries # Libraries
"ush-manager", # "ush-manager",
"ush-obfuscate" "ush-obfuscate"
, "core-modules/server2"] , "core-modules/server2"]

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+76 -3
View File
@@ -6,16 +6,89 @@
//! - connections: Container for peer connections //! - connections: Container for peer connections
//! - components: Extensible component system (accessed via tree messages) //! - components: Extensible component system (accessed via tree messages)
use crossbeam_channel::Sender; use std::collections::HashMap;
use crossbeam_channel::{Receiver, Sender};
use serde_json::{json, Value}; use serde_json::{json, Value};
use crate::tree::component::ComponentRegistry; use crate::tree::component::ComponentRegistry;
use crate::tree::connection::{create_channel_pair, Connection, Connections};
use crate::tree::queue::Queue; use crate::tree::queue::Queue;
use crate::tree::readonly::ReadOnly; use crate::tree::readonly::ReadOnly;
use crate::tree::symbols::TYPE_ENDPOINT; use crate::tree::symbols::{self, TYPE_CONNECTION, TYPE_ENDPOINT};
use crate::tree::{Branch, TreeElement}; use crate::tree::{Branch, TreeElement};
pub(crate) struct Connection {
id: String,
peer_id: String,
sender: Sender<Value>,
receiver: Receiver<Value>,
}
impl Connection {
pub(crate) fn new(
id: String,
peer_id: String,
sender: Sender<Value>,
receiver: Receiver<Value>,
) -> Self {
Self {
id,
peer_id,
sender,
receiver,
}
}
pub(crate) fn id(&self) -> &str {
&self.id
}
pub(crate) fn send(&self, message: Value) {
let _ = self.sender.send(message);
}
pub(crate) fn recv(&self) -> Option<Value> {
self.receiver.recv().ok()
}
}
impl TreeElement for Connections {
fn get_type(&self) -> Value {
json!(symbols::TYPE_CONNECTIONS)
}
fn send_message(&mut self, _target: Value, _message: Value) -> Value {
json!(symbols::ERR_UNSUPPORTED_METHOD)
}
}
pub(crate) struct Connections {
connections: HashMap<String, Connection>,
branch: Branch,
}
impl Connections {
pub(crate) fn new() -> Self {
Self {
connections: HashMap::new(),
branch: Branch::new(symbols::TYPE_CONNECTIONS),
}
}
pub(crate) fn add(&mut self, id: String, connection: Connection) {
self.connections.insert(id.clone(), connection);
}
}
pub(crate) fn create_channel_pair() -> (
(Sender<Value>, Receiver<Value>),
(Sender<Value>, Receiver<Value>),
) {
let (tx1, rx1) = crossbeam_channel::unbounded::<Value>();
let (tx2, rx2) = crossbeam_channel::unbounded::<Value>();
((tx1, rx2), (tx2, rx1))
}
pub struct EndpointManager { pub struct EndpointManager {
branch: Branch, branch: Branch,
logs_sender: Sender<Value>, logs_sender: Sender<Value>,
-3
View File
@@ -5,15 +5,12 @@
pub mod branch; pub mod branch;
pub mod component; pub mod component;
pub mod connection;
pub mod endpoint; pub mod endpoint;
pub mod log; pub mod log;
pub mod message; pub mod message;
pub mod protocols;
pub mod queue; pub mod queue;
pub mod readonly; pub mod readonly;
pub mod symbols; pub mod symbols;
pub mod tcp;
pub use branch::Branch; pub use branch::Branch;
pub use component::ComponentRegistry; pub use component::ComponentRegistry;
+4
View File
@@ -12,4 +12,8 @@ obfuscate = ["unshell/obfuscate"]
[dependencies] [dependencies]
unshell.path = "../" unshell.path = "../"
serde.workspace = true
serde_json.workspace = true serde_json.workspace = true
crossbeam-channel = "0.5.15"
thiserror = "2.0"
base64 = "0.22"
@@ -6,8 +6,8 @@ use std::collections::HashMap;
use crossbeam_channel::{Receiver, Sender}; use crossbeam_channel::{Receiver, Sender};
use serde_json::{json, Value}; use serde_json::{json, Value};
use crate::tree::symbols::{self, TYPE_CONNECTION, TYPE_CONNECTIONS}; use unshell::tree::symbols::{self, TYPE_CONNECTION, TYPE_CONNECTIONS};
use crate::tree::{Branch, TreeElement}; use unshell::tree::{Branch, TreeElement};
/// A bidirectional connection to another endpoint. /// A bidirectional connection to another endpoint.
/// Wraps sender/receiver channels for message passing. /// Wraps sender/receiver channels for message passing.
+17
View File
@@ -0,0 +1,17 @@
//! Payload module for network protocols and transports.
//!
//! This module provides protocol stacking, TCP client/server implementations,
//! and connection management for testing and payload operations.
pub mod connection;
pub mod protocols;
pub mod tcp;
pub use connection::{create_channel_pair, Connection, Connections};
pub use protocols::{
Base64Config, HttpConfig, Protocol, ProtocolConfig, ProtocolError, ProtocolStack, TcpConfig,
WebSocketConfig,
};
pub use tcp::{
ConnectionStatus, ListenerStatus, TcpClient, TcpClientConfig, TcpServer, TcpServerConfig,
};
+2 -2
View File
@@ -11,9 +11,9 @@ use std::time::Duration;
use serde_json::json; use serde_json::json;
use unshell::tree::message::TreeMessage; use unshell::tree::message::TreeMessage;
use unshell::tree::protocols::{ProtocolConfig, ProtocolStack};
use unshell::tree::tcp::{TcpClient, TcpServer};
use unshell::tree::{ComponentRegistry, EndpointManager, TreeElement}; use unshell::tree::{ComponentRegistry, EndpointManager, TreeElement};
use ush_payload::protocols::{ProtocolConfig, ProtocolStack};
use ush_payload::tcp::{TcpClient, TcpServer};
fn main() { fn main() {
println!("=== Tree Protocol Test Harness ===\n"); println!("=== Tree Protocol Test Harness ===\n");
@@ -1,6 +1,6 @@
//! Base64 encoding/decoding protocol. //! Base64 encoding/decoding protocol.
use crate::tree::protocols::stack::{Base64Config, Protocol, ProtocolError}; use super::stack::{Base64Config, Protocol, ProtocolError};
use serde_json::Value; use serde_json::Value;
/// Base64 encoding protocol /// Base64 encoding protocol
@@ -2,7 +2,7 @@
//! //!
//! This protocol wraps data in HTTP requests/responses for traffic blending. //! This protocol wraps data in HTTP requests/responses for traffic blending.
use crate::tree::protocols::stack::{HttpConfig, Protocol, ProtocolError}; use super::stack::{HttpConfig, Protocol, ProtocolError};
use serde_json::Value; use serde_json::Value;
/// HTTP protocol for tree communication. /// HTTP protocol for tree communication.
@@ -6,7 +6,9 @@ use serde::{Deserialize, Serialize};
use serde_json::Value; use serde_json::Value;
use thiserror::Error; use thiserror::Error;
use crate::tree::message::TreeMessage; use super::base64::{Base64Protocol, IdentityProtocol};
use super::http::HttpProtocol;
use unshell::tree::message::TreeMessage;
#[derive(Error, Debug)] #[derive(Error, Debug)]
pub enum ProtocolError { pub enum ProtocolError {
@@ -207,15 +209,15 @@ impl ProtocolStack {
pub fn push(&mut self, config: &ProtocolConfig) -> Result<(), ProtocolError> { pub fn push(&mut self, config: &ProtocolConfig) -> Result<(), ProtocolError> {
let (protocol, name) = match config { let (protocol, name) = match config {
ProtocolConfig::Identity => { ProtocolConfig::Identity => {
let p = crate::tree::protocols::base64::IdentityProtocol::new(); let p = IdentityProtocol::new();
(Box::new(p) as Box<dyn Protocol>, "identity".to_string()) (Box::new(p) as Box<dyn Protocol>, "identity".to_string())
} }
ProtocolConfig::Base64(cfg) => { ProtocolConfig::Base64(cfg) => {
let p = crate::tree::protocols::base64::Base64Protocol::new(cfg.clone()); let p = Base64Protocol::new(cfg.clone());
(Box::new(p) as Box<dyn Protocol>, "base64".to_string()) (Box::new(p) as Box<dyn Protocol>, "base64".to_string())
} }
ProtocolConfig::Http(cfg) => { ProtocolConfig::Http(cfg) => {
let p = crate::tree::protocols::http::HttpProtocol::new(cfg.clone()); let p = HttpProtocol::new(cfg.clone());
(Box::new(p) as Box<dyn Protocol>, "http".to_string()) (Box::new(p) as Box<dyn Protocol>, "http".to_string())
} }
ProtocolConfig::Tcp(cfg) => { ProtocolConfig::Tcp(cfg) => {
@@ -11,12 +11,12 @@ use std::time::Duration;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::{json, Value}; use serde_json::{json, Value};
use crate::tree::component::Component; use crate::protocols::{ProtocolConfig, ProtocolStack};
use crate::tree::message::TreeMessage; use crate::tcp::config::{ConnectionStatus, TcpClientConfig};
use crate::tree::protocols::{ProtocolConfig, ProtocolStack}; use unshell::tree::component::Component;
use crate::tree::symbols; use unshell::tree::message::TreeMessage;
use crate::tree::tcp::config::{ConnectionStatus, TcpClientConfig}; use unshell::tree::symbols;
use crate::tree::{Branch, TreeElement}; use unshell::tree::{Branch, TreeElement};
/// TCP Client component with protocol stacking support. /// TCP Client component with protocol stacking support.
/// ///
@@ -12,12 +12,12 @@ use std::time::Duration;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::{json, Value}; use serde_json::{json, Value};
use crate::tree::component::Component; use crate::protocols::{ProtocolConfig, ProtocolStack};
use crate::tree::message::TreeMessage; use crate::tcp::config::{ListenerStatus, TcpServerConfig};
use crate::tree::protocols::{ProtocolConfig, ProtocolStack}; use unshell::tree::component::Component;
use crate::tree::symbols; use unshell::tree::message::TreeMessage;
use crate::tree::tcp::config::{ListenerStatus, TcpServerConfig}; use unshell::tree::symbols;
use crate::tree::{Branch, TreeElement}; use unshell::tree::{Branch, TreeElement};
/// A connected client managed by the server /// A connected client managed by the server
#[derive(Debug)] #[derive(Debug)]