From 6e2dff352e9340a2461bb719cddb2ca58a341c19 Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 13 Aug 2025 17:17:25 +0200 Subject: [PATCH 1/2] feat: replaced rabbitmq with nats --- src/implementation/control.rs | 32 +++ src/implementation/mod.rs | 2 + src/locale/code.rs | 25 -- src/locale/locale.rs | 505 ---------------------------------- src/locale/mod.rs | 2 - src/main.rs | 290 ++++++++----------- 6 files changed, 155 insertions(+), 701 deletions(-) create mode 100644 src/implementation/control.rs delete mode 100644 src/locale/code.rs delete mode 100644 src/locale/locale.rs delete mode 100644 src/locale/mod.rs diff --git a/src/implementation/control.rs b/src/implementation/control.rs new file mode 100644 index 0000000..eeb8fe7 --- /dev/null +++ b/src/implementation/control.rs @@ -0,0 +1,32 @@ +use tucana::shared::Value; + +use crate::{context::Context, error::RuntimeError, registry::HandlerFn}; + +pub fn collect_control_functions() -> Vec<(&'static str, HandlerFn)> { + vec![ + ("std::control::break", r#break), + ("std::control::return", r#return), + ] +} + +fn r#break(values: &[Value], _ctx: &mut Context) -> Result { + let [Value { kind }] = values else { + return Err(RuntimeError::simple( + "InvalidArgumentRuntimeError", + format!("Expected one generic value but received {:?}", values), + )); + }; + + Ok(Value { kind: kind.clone() }) +} + +fn r#return(values: &[Value], _ctx: &mut Context) -> Result { + let [Value { kind }] = values else { + return Err(RuntimeError::simple( + "InvalidArgumentRuntimeError", + format!("Expected one generic value but received {:?}", values), + )); + }; + + Ok(Value { kind: kind.clone() }) +} diff --git a/src/implementation/mod.rs b/src/implementation/mod.rs index c529acd..0c1ad93 100644 --- a/src/implementation/mod.rs +++ b/src/implementation/mod.rs @@ -2,6 +2,7 @@ use crate::registry::HandlerFn; pub mod array; pub mod boolean; +mod control; pub mod number; pub mod object; pub mod text; @@ -14,6 +15,7 @@ pub fn collect() -> Vec<(&'static str, HandlerFn)> { result.extend(boolean::collect_boolean_functions()); result.extend(text::collect_text_functions()); result.extend(object::collect_object_functions()); + result.extend(control::collect_control_functions()); result } diff --git a/src/locale/code.rs b/src/locale/code.rs deleted file mode 100644 index 9d4cb3f..0000000 --- a/src/locale/code.rs +++ /dev/null @@ -1,25 +0,0 @@ -#[derive(Clone, PartialEq, Debug)] -pub enum CountryCode { - Germany, - UnitedStates, - France, -} - -impl ToString for CountryCode { - fn to_string(&self) -> String { - match self { - CountryCode::Germany => "de-DE".to_string(), - CountryCode::UnitedStates => "en-US".to_string(), - CountryCode::France => "fr-FR".to_string(), - } - } -} - -pub fn code_from_file_name(file_name: String, default: CountryCode) -> CountryCode { - match file_name.as_str() { - "de-DE" => CountryCode::Germany, - "en-US" => CountryCode::UnitedStates, - "fr-FR" => CountryCode::France, - _ => default, - } -} diff --git a/src/locale/locale.rs b/src/locale/locale.rs deleted file mode 100644 index ad3a6ee..0000000 --- a/src/locale/locale.rs +++ /dev/null @@ -1,505 +0,0 @@ -use std::{ - collections::HashMap, - fs::{self, DirEntry, read_dir}, -}; - -use serde::Deserialize; -use tucana::shared::Translation; - -use super::code::{CountryCode, code_from_file_name}; - -#[derive(Debug)] -pub struct Locale { - translations: HashMap>, - accepted_locales: Vec, - default_locale: CountryCode, -} - -pub struct TranslationMissingError; - -#[derive(Deserialize)] -pub struct Translations { - #[serde(flatten)] - pub entries: HashMap, -} - -impl Locale { - pub fn default() -> Self { - let path = "./translation"; - let mut dictionary: HashMap> = HashMap::new(); - let mut accepted_locales: Vec = vec![]; - - let entries = match read_dir(path) { - Ok(entries) => entries, - Err(e) => panic!("Failed to read translation directory: {}", e), - }; - - for entry_result in entries { - let entry = match entry_result { - Ok(entry) => entry, - Err(e) => { - eprintln!("Error reading directory entry: {}", e); - continue; - } - }; - - if !is_translation_file(&entry) { - continue; - } - - if let Some((file_name, content)) = read_translation_file(path, &entry) { - let code = code_from_file_name(file_name.clone(), CountryCode::UnitedStates); - accepted_locales.push(code.clone()); - - process_translation_file(&content, &file_name, &code, &mut dictionary); - } - } - - Locale { - translations: dictionary, - accepted_locales, - default_locale: CountryCode::UnitedStates, - } - } - - pub fn new( - path: &str, - accepted_locales: Vec, - default_locale: CountryCode, - ) -> Self { - let mut dictionary = HashMap::new(); - - let entries = match read_dir(path) { - Ok(entries) => entries, - Err(e) => panic!("Failed to read translation directory: {}", e), - }; - - for entry_result in entries { - let entry = match entry_result { - Ok(entry) => entry, - Err(e) => { - eprintln!("Error reading directory entry: {}", e); - continue; - } - }; - - if !is_translation_file(&entry) { - continue; - } - - if let Some((file_name, content)) = read_translation_file(path, &entry) { - let code = code_from_file_name(file_name.clone(), default_locale.clone()); - if !accepted_locales.contains(&code) { - continue; - } - - process_translation_file(&content, &file_name, &code, &mut dictionary); - } - } - - Locale { - translations: dictionary, - accepted_locales, - default_locale, - } - } - - pub fn reduce_to_default(&mut self) { - let code = self.default_locale.to_string(); - for (_, translations) in self.translations.iter_mut() { - translations.retain(|translation| translation.code == code); - } - } - - pub fn reduce_to_accepted(&mut self) { - let codes: Vec = self - .accepted_locales - .iter() - .map(|code| code.to_string()) - .collect(); - for (_, translations) in self.translations.iter_mut() { - translations.retain(|translation| codes.contains(&translation.code)); - } - } - - pub fn get_translations(&self, key: String) -> Option> { - self.translations.get(&key).cloned() - } - - pub fn get_dictionary(&self) -> HashMap> { - self.translations.clone() - } -} - -// Check if entry is a file that we should process -fn is_translation_file(entry: &DirEntry) -> bool { - match entry.metadata() { - Ok(meta) => meta.is_file(), - Err(_) => false, - } -} - -// Read and parse a translation file -fn read_translation_file(path: &str, entry: &DirEntry) -> Option<(String, String)> { - let file_name = entry.file_name(); - - let file_name_str = match file_name.to_str() { - Some(name) => name, - None => return None, - }; - - // Check if it's a .toml file - if !file_name_str.ends_with(".toml") { - return None; - } - - let file_path = format!("{}/{}", path, file_name_str); - let content = match fs::read_to_string(&file_path) { - Ok(content) => content, - Err(e) => { - eprintln!("Failed to read file {}: {}", file_path, e); - return None; - } - }; - - let base_name = file_name_str.strip_suffix(".toml").unwrap().to_string(); - Some((base_name, content)) -} - -// Process the content of a translation file -fn process_translation_file( - content: &str, - file_name: &str, - code: &CountryCode, - dictionary: &mut HashMap>, -) { - match toml::from_str::(content) { - Ok(value) => { - // Process nested TOML by flattening it - let flattened = flatten_toml(&value, ""); - add_translations_to_dictionary(flattened, code, dictionary); - } - Err(err) => { - eprintln!("Warning: Error parsing '{}': {}", file_name, err); - } - } -} - -// Add translations to the dictionary -fn add_translations_to_dictionary( - flattened: HashMap, - code: &CountryCode, - dictionary: &mut HashMap>, -) { - for (key, entry) in flattened { - let translation = Translation { - code: code.to_string(), - content: entry, - }; - - dictionary - .entry(key) - .or_insert_with(Vec::new) - .push(translation); - } -} - -// Helper function to flatten nested TOML structures -fn flatten_toml(value: &toml::Value, prefix: &str) -> HashMap { - let mut result = HashMap::new(); - - match value { - toml::Value::Table(table) => { - for (key, val) in table { - let new_prefix = if prefix.is_empty() { - key.clone() - } else { - format!("{}.{}", prefix, key) - }; - - match val { - toml::Value::Table(_) => { - let nested = flatten_toml(val, &new_prefix); - result.extend(nested); - } - _ => { - extract_value_to_string(val, &new_prefix, &mut result); - } - } - } - } - _ => { - if !prefix.is_empty() { - extract_value_to_string(value, prefix, &mut result); - } - } - } - - result -} - -// Extract a TOML value into a string -fn extract_value_to_string(val: &toml::Value, key: &str, result: &mut HashMap) { - if let Some(str_val) = val.as_str() { - result.insert(key.to_string(), str_val.to_string()); - } else if let Some(string_val) = val - .to_string() - .strip_prefix('"') - .and_then(|s| s.strip_suffix('"')) - { - result.insert(key.to_string(), string_val.to_string()); - } else { - result.insert(key.to_string(), val.to_string()); - } -} - -#[cfg(test)] -mod tests { - use super::*; - use std::fs::File; - use std::io::Write; - use std::path::Path; - use tempfile::tempdir; - - fn create_test_translation_file( - dir: &Path, - filename: &str, - content: &str, - ) -> std::io::Result<()> { - let file_path = dir.join(filename); - let mut file = File::create(file_path)?; - file.write_all(content.as_bytes())?; - Ok(()) - } - - #[test] - fn test_flatten_toml() { - let toml_str = r#" - key1 = "value1" - - [section1] - key2 = "value2" - - [section1.subsection] - key3 = "value3" - "#; - - let value: toml::Value = toml::from_str(toml_str).unwrap(); - let flattened = flatten_toml(&value, ""); - - assert_eq!(flattened.get("key1"), Some(&"value1".to_string())); - assert_eq!(flattened.get("section1.key2"), Some(&"value2".to_string())); - assert_eq!( - flattened.get("section1.subsection.key3"), - Some(&"value3".to_string()) - ); - } - - #[test] - fn test_add_translations_to_dictionary() { - let mut flattened = HashMap::new(); - flattened.insert("key1".to_string(), "value1".to_string()); - flattened.insert("key2".to_string(), "value2".to_string()); - - let code = CountryCode::UnitedStates; - let mut dictionary = HashMap::new(); - - add_translations_to_dictionary(flattened, &code, &mut dictionary); - - assert_eq!(dictionary.len(), 2); - assert_eq!(dictionary["key1"][0].content, "value1"); - assert_eq!(dictionary["key1"][0].code, code.to_string()); - assert_eq!(dictionary["key2"][0].content, "value2"); - assert_eq!(dictionary["key2"][0].code, code.to_string()); - } - - #[test] - fn test_reduce_to_default_empty() { - let mut translations = HashMap::new(); - - let key = "greeting".to_string(); - let mut values = Vec::new(); - - values.push(Translation { - code: CountryCode::Germany.to_string(), - content: "Hallo".to_string(), - }); - - values.push(Translation { - code: CountryCode::France.to_string(), - content: "Bonjour".to_string(), - }); - - translations.insert(key.clone(), values); - - let mut locale = Locale { - translations, - accepted_locales: vec![CountryCode::UnitedStates, CountryCode::France], - default_locale: CountryCode::UnitedStates, - }; - - locale.reduce_to_default(); - - let translations = locale.get_translations(key); - assert!(translations.is_some()); - assert_eq!(translations.unwrap().len(), 0); - } - - #[test] - fn test_reduce_to_default() { - let mut translations = HashMap::new(); - - let key = "greeting".to_string(); - let mut values = Vec::new(); - - values.push(Translation { - code: CountryCode::Germany.to_string(), - content: "Hallo".to_string(), - }); - - values.push(Translation { - code: CountryCode::France.to_string(), - content: "Bonjour".to_string(), - }); - - values.push(Translation { - code: CountryCode::UnitedStates.to_string(), - content: "Hello".to_string(), - }); - - translations.insert(key.clone(), values); - - let mut locale = Locale { - translations, - accepted_locales: vec![CountryCode::UnitedStates, CountryCode::France], - default_locale: CountryCode::UnitedStates, - }; - - locale.reduce_to_default(); - - let translations = locale.get_translations(key); - assert!(translations.is_some()); - assert_eq!(translations.unwrap().len(), 1); - } - - #[test] - fn test_reduce_to_accepted() { - let mut translations = HashMap::new(); - - let key = "greeting".to_string(); - let mut values = Vec::new(); - - values.push(Translation { - code: CountryCode::UnitedStates.to_string(), - content: "Hello".to_string(), - }); - - values.push(Translation { - code: CountryCode::France.to_string(), - content: "Bonjour".to_string(), - }); - - values.push(Translation { - code: CountryCode::Germany.to_string(), - content: "Hallo".to_string(), - }); - - translations.insert(key.clone(), values); - - let mut locale = Locale { - translations, - accepted_locales: vec![CountryCode::UnitedStates, CountryCode::France], - default_locale: CountryCode::UnitedStates, - }; - - locale.reduce_to_accepted(); - - let translations = locale.get_translations(key); - assert!(translations.is_some()); - assert_eq!(translations.unwrap().len(), 2); - } - - #[test] - fn test_reduce_to_accepted_empty() { - let mut translations = HashMap::new(); - - let key = "greeting".to_string(); - let mut values = Vec::new(); - - values.push(Translation { - code: CountryCode::UnitedStates.to_string(), - content: "Hello".to_string(), - }); - - values.push(Translation { - code: CountryCode::France.to_string(), - content: "Bonjour".to_string(), - }); - - translations.insert(key.clone(), values); - - let mut locale = Locale { - translations, - accepted_locales: vec![CountryCode::Germany], - default_locale: CountryCode::UnitedStates, - }; - - locale.reduce_to_accepted(); - - let translations = locale.get_translations(key); - assert!(translations.is_some()); - assert_eq!(translations.unwrap().len(), 0); - } - - #[test] - fn test_locale_new_with_files() { - let temp_dir = tempdir().unwrap(); - let temp_path = temp_dir.path(); - - // Create test translation files - let en_file = create_test_translation_file( - temp_path, - "en_US.toml", - r#" - welcome = "Welcome" - goodbye = "Goodbye" - "#, - ); - - assert!(en_file.is_ok()); - - let fr_file = create_test_translation_file( - temp_path, - "fr_FR.toml", - r#" - welcome = "Bienvenue" - goodbye = "Au revoir" - "#, - ); - - assert!(fr_file.is_ok()); - - let locale = Locale::new( - temp_path.to_str().unwrap(), - vec![CountryCode::UnitedStates, CountryCode::France], - CountryCode::UnitedStates, - ); - - assert_eq!(locale.accepted_locales.len(), 2); - assert!(locale.accepted_locales.contains(&CountryCode::UnitedStates)); - assert!(locale.accepted_locales.contains(&CountryCode::France)); - assert_eq!( - locale.default_locale, - CountryCode::UnitedStates, - "Not the same default locale" - ); - - // Test that translations were loaded correctly - let welcome_translations = locale.get_translations("welcome".to_string()).unwrap(); - let goodbye_translations = locale.get_translations("goodbye".to_string()).unwrap(); - let empty_translations = locale.get_translations("empty".to_string()); - assert_eq!(welcome_translations.len(), 2); - assert_eq!(goodbye_translations.len(), 2); - assert!(empty_translations.is_none()); - } -} diff --git a/src/locale/mod.rs b/src/locale/mod.rs deleted file mode 100644 index 3522ae4..0000000 --- a/src/locale/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod code; -pub mod locale; diff --git a/src/main.rs b/src/main.rs index 48f79e6..0dba951 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,23 +2,18 @@ mod configuration; pub mod context; pub mod error; pub mod implementation; -pub mod locale; pub mod registry; -use std::sync::Arc; -use code0_flow::{ - flow_config::load_env_file, - flow_queue::service::{Message, RabbitmqClient}, -}; +use crate::configuration::Config; +use crate::implementation::collect; +use code0_flow::flow_config::load_env_file; use context::{Context, ContextEntry, ContextResult}; use error::RuntimeError; use futures_lite::StreamExt; -use lapin::{options::BasicConsumeOptions, types::FieldTable}; +use prost::Message; use registry::FunctionStore; -use tucana::shared::{Flow, NodeFunction, Value}; - -use crate::configuration::Config; -use crate::implementation::collect; +use tucana::shared::value::Kind; +use tucana::shared::{ExecutionFlow, ListValue, NodeFunction, Value}; fn handle_node_function( function: NodeFunction, @@ -31,61 +26,82 @@ fn handle_node_function( }; let mut parameter_collection: Vec = vec![]; - for parameter in function.parameters { - if let Some(value) = parameter.value { - match value { - // Its just a normal value, directly a paramter - tucana::shared::node_parameter::Value::LiteralValue(v) => { - parameter_collection.push(v) - } - - // Its a reference to an already executed function that returns value is the parameter of this function - tucana::shared::node_parameter::Value::ReferenceValue(reference) => { - let optional_value = context.get(&reference); - - // Look if its even present - let context_result = match optional_value { - Some(context_result) => context_result, - None => { - todo!("Required function that holds the parameter wasnt executed") + if let Some(node_value) = parameter.value { + if let Some(value) = node_value.value { + match value { + // Its just a normal value, directly a paramter + tucana::shared::node_value::Value::LiteralValue(v) => { + parameter_collection.push(v) + } + // Its a reference to an already executed function that returns value is the parameter of this function + tucana::shared::node_value::Value::ReferenceValue(reference) => { + let optional_value = context.get(&reference); + + // Look if its even present + let context_result = match optional_value { + Some(context_result) => context_result, + None => { + todo!("Required function that holds the parameter wasnt executed") + } + }; + + // A reference is present. Look up the real value + match context_result { + // The reference is a exeuction result of a node + ContextResult::NodeExecutionResult(node_result) => match node_result { + Ok(value) => { + parameter_collection.push(value.clone()); + } + Err(err) => return Err(err), + }, + // The reference is a parameter of a node + ContextResult::ParameterResult(parameter_result) => { + parameter_collection.push(parameter_result.clone()); + } } - }; + } - // A reference is present. Look up the real value - match context_result { - // The reference is a exeuction result of a node - ContextResult::NodeExecutionResult(node_result) => match node_result { - Ok(value) => { - parameter_collection.push(value.clone()); + // Its another function, that result is a direct parameter to this function + tucana::shared::node_value::Value::NodeFunctions(another_node_function) => { + // As this is another new indent, a new context will be opened + context.next_context(); + let function_result: Vec<_> = another_node_function + .functions + .into_iter() + .map(|f| handle_node_function(f, &store, context)) + .collect(); + + let mut collected = Vec::new(); + for res in &function_result { + if let Ok(v) = res { + collected.push(v.clone()); } - Err(err) => return Err(err), - }, - // The reference is a parameter of a node - ContextResult::ParameterResult(parameter_result) => { - parameter_collection.push(parameter_result.clone()); } - } - } - // Its another function, that result is a direct parameter to this function - tucana::shared::node_parameter::Value::FunctionValue(another_node_function) => { - // As this is another new indent, a new context will be opened - context.next_context(); - let function_result = - handle_node_function(another_node_function, &store, context); + let list = Value { + kind: Some(Kind::ListValue(ListValue { values: collected })), + }; - let entry = - ContextEntry::new(function_result.clone(), parameter_collection.clone()); - context.write_to_current_context(entry); + let is_faulty = function_result.iter().any(|res| res.is_err()); - match function_result { - Ok(v) => { - // Add the value back to the main parameter - parameter_collection.push(v.clone()); - } - Err(_) => { - todo!("Reqired function that holds the paramter failed in execution") + let entry = ContextEntry::new( + Result::Ok(list.clone()), + parameter_collection.clone(), + ); + + context.write_to_current_context(entry); + + match !is_faulty { + true => { + // Add the value back to the main parameter + parameter_collection.push(list.clone()); + } + false => { + todo!( + "Reqired function that holds the paramter failed in execution" + ) + } } } } @@ -121,51 +137,25 @@ fn handle_node_function( Err(RuntimeError::default()) } -fn handle_message(message: Message, store: &FunctionStore) -> Result { +fn handle_message(flow: ExecutionFlow, store: &FunctionStore) -> Option { let mut context = Context::new(); - let flow: Flow = match serde_json::from_str(&message.body) { - Ok(flow) => flow, - Err(_) => { - todo!() - } - }; - if let Some(node) = flow.starting_node { match handle_node_function(node, store, &mut context) { - Ok(result) => match serde_json::to_string(&result) { - Ok(res) => { - return Ok(Message { - message_id: message.message_id, - message_type: message.message_type, - timestamp: message.timestamp, - sender: message.sender, - body: res, - }); - } - Err(_) => { - todo!("") - } - }, + Ok(result) => { + println!( + "Execution completed successfully: The value is {:?}", + result + ); + return Some(result); + } Err(runtime_error) => { - return Ok(Message { - message_id: message.message_id, - message_type: message.message_type, - timestamp: message.timestamp, - sender: message.sender, - body: runtime_error.to_string(), - }); + println!("Runtime Error: {:?}", runtime_error); + return None; } } }; - - Ok(Message { - message_id: message.message_id, - message_type: message.message_type, - timestamp: message.timestamp, - sender: message.sender, - body: "{ \"text\": \"Hihi, World!\" }".to_string(), - }) + return None; } #[tokio::main] @@ -180,83 +170,45 @@ async fn main() { let mut store = FunctionStore::new(); store.populate(collect()); - let rabbitmq_client = Arc::new(RabbitmqClient::new(config.rabbitmq_url.as_str()).await); - - let mut consumer = { - let channel = rabbitmq_client.channel.lock().await; - - let consumer_res = channel - .basic_consume( - "send_queue", - "consumer", - BasicConsumeOptions::default(), - FieldTable::default(), - ) - .await; - - match consumer_res { - Ok(consumer) => consumer, - Err(err) => panic!("Cannot consume messages: {}", err), + let client = match async_nats::connect("nats://127.0.0.1:4222").await { + Ok(client) => client, + Err(err) => { + panic!("Failed to connect to NATS server: {}", err); } }; - log::debug!("Starting to consume from send_queue"); - - while let Some(delivery) = consumer.next().await { - let delivery = match delivery { - Ok(del) => del, - Err(err) => { - log::error!("Error receiving message: {}", err); - return; - } - }; - - let data = &delivery.data; - let message_str = match std::str::from_utf8(&data) { - Ok(str) => { - log::info!("Received message: {}", str); - str - } - Err(err) => { - log::error!("Error decoding message: {}", err); - return; - } - }; - // Parse the messagey - let inc_message = match serde_json::from_str::(message_str) { - Ok(mess) => mess, - Err(err) => { - log::error!("Error parsing message: {}", err); - return; - } - }; - - let message = match handle_message(inc_message, &store) { - Ok(mess) => mess, - Err(err) => { - log::error!("Error handling message: {}", err); - return; - } - }; - - let message_json = match serde_json::to_string(&message) { - Ok(json) => json, - Err(err) => { - log::error!("Error serializing message: {}", err); - return; + let _ = match client + .queue_subscribe(String::from("execution.*"), "taurus".into()) + .await + { + Ok(mut sub) => { + println!("Subscribed to 'execution.*'"); + + while let Some(msg) = sub.next().await { + let flow: ExecutionFlow = match ExecutionFlow::decode(&*msg.payload) { + Ok(flow) => flow, + Err(err) => { + println!("Failed to deserialize flow: {}, {:?}", err, &msg.payload); + continue; + } + }; + + let value = match handle_message(flow, &store) { + Some(value) => value, + None => Value { + kind: Some(Kind::NullValue(0)), + }, + }; + + // Send a response to the reply subject + if let Some(reply) = msg.reply { + match client.publish(reply, value.encode_to_vec().into()).await { + Ok(_) => println!("Response sent"), + Err(err) => println!("Failed to send response: {}", err), + } + } } - }; - - { - let _ = rabbitmq_client - .send_message(message_json, "recieve_queue") - .await; } - - // Acknowledge the message - delivery - .ack(lapin::options::BasicAckOptions::default()) - .await - .expect("Failed to acknowledge message"); - } + Err(err) => panic!("Failed to subscribe to 'execution.*': {}", err), + }; } From a122b666d107e384c0a32b84ab1bbc5a82e3c6da Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 13 Aug 2025 17:17:46 +0200 Subject: [PATCH 2/2] dependencies: added async-nats and prost --- Cargo.lock | 1628 ++++++++++++---------------------------------------- Cargo.toml | 8 +- 2 files changed, 372 insertions(+), 1264 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 887dc6d..0867144 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,17 +17,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -37,54 +26,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "amq-protocol" -version = "7.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587d313f3a8b4a40f866cc84b6059fe83133bf172165ac3b583129dd211d8e1c" -dependencies = [ - "amq-protocol-tcp", - "amq-protocol-types", - "amq-protocol-uri", - "cookie-factory", - "nom", - "serde", -] - -[[package]] -name = "amq-protocol-tcp" -version = "7.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc707ab9aa964a85d9fc25908a3fdc486d2e619406883b3105b48bf304a8d606" -dependencies = [ - "amq-protocol-uri", - "tcp-stream", - "tracing", -] - -[[package]] -name = "amq-protocol-types" -version = "7.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf99351d92a161c61ec6ecb213bc7057f5b837dd4e64ba6cb6491358efd770c4" -dependencies = [ - "cookie-factory", - "nom", - "serde", - "serde_json", -] - -[[package]] -name = "amq-protocol-uri" -version = "7.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89f8273826a676282208e5af38461a07fe939def57396af6ad5997fcf56577d" -dependencies = [ - "amq-protocol-types", - "percent-encoding", - "url", -] - [[package]] name = "anstream" version = "0.6.19" @@ -142,224 +83,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] -name = "asn1-rs" -version = "0.7.1" +name = "async-nats" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +checksum = "08f6da6d49a956424ca4e28fe93656f790d748b469eaccbc7488fec545315180" dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", + "base64", + "bytes", + "futures", + "memchr", + "nkeys", + "nuid", + "once_cell", + "pin-project", + "portable-atomic", + "rand 0.8.5", + "regex", + "ring", + "rustls-native-certs", + "rustls-pemfile", + "rustls-webpki 0.102.8", + "serde", + "serde_json", + "serde_nanos", + "serde_repr", "thiserror", "time", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.3.1", - "async-executor", - "async-io 2.4.0", - "async-lock 3.4.0", - "blocking", - "futures-lite 2.6.1", - "once_cell", -] - -[[package]] -name = "async-global-executor" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f937e26114b93193065fd44f507aa2e9169ad0cdabbb996920b1fe1ddea7ba" -dependencies = [ - "async-channel 2.3.1", - "async-executor", - "async-io 2.4.0", - "async-lock 3.4.0", - "blocking", - "futures-lite 2.6.1", -] - -[[package]] -name = "async-global-executor-trait" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af57045d58eeb1f7060e7025a1631cbc6399e0a1d10ad6735b3d0ea7f8346ce" -dependencies = [ - "async-global-executor 3.1.0", - "async-trait", - "executor-trait", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.28", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" -dependencies = [ - "async-lock 3.4.0", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite 2.6.1", - "parking", - "polling 3.7.4", - "rustix 0.38.44", - "slab", + "tokio", + "tokio-rustls", + "tokio-util", + "tokio-websockets", "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" -dependencies = [ - "event-listener 5.4.0", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-reactor-trait" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6012d170ad00de56c9ee354aef2e358359deb1ec504254e0e5a3774771de0e" -dependencies = [ - "async-io 1.13.0", - "async-trait", - "futures-core", - "reactor-trait", -] - -[[package]] -name = "async-std" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor 2.4.1", - "async-io 2.4.0", - "async-lock 3.4.0", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 2.6.1", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", + "tryhard", + "url", ] -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - [[package]] name = "async-trait" version = "0.1.88" @@ -440,7 +198,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -455,12 +213,6 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.9.0" @@ -476,47 +228,13 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" -dependencies = [ - "async-channel 2.3.1", - "async-task", - "futures-io", - "futures-lite 2.6.1", - "piper", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - [[package]] name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher", + "serde", ] [[package]] @@ -535,43 +253,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "cms" -version = "0.2.3" +name = "code0-definition-reader" +version = "0.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b77c319abfd5219629c45c34c89ba945ed3c5e49fcde9d16b6c3885f118a730" +checksum = "6bcdd7feee37f0c422c01e2192df7149401ae2ff0d1529a43e1c3d03ac37c779" dependencies = [ - "const-oid", - "der", - "spki", - "x509-cert", + "serde", + "serde_json", + "tucana", ] [[package]] name = "code0-flow" -version = "0.0.13" +version = "0.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2b4e3ce2fb62521a5fc6825074525cc88269218e4919c1e4d3a9a83ba197b" +checksum = "ee41dc45b3e7f21db03db69796b3070eb26d5fa3a462b60c1cc07e9b949c933b" dependencies = [ + "async-nats", "async-trait", + "code0-definition-reader", "dotenv", - "futures-lite 2.6.1", - "lapin", + "futures-core", "log", - "redis", - "serde", - "serde_json", - "tokio", "tonic", + "tonic-health", "tucana", ] @@ -581,41 +286,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "const-oid" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "cookie-factory" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" - [[package]] name = "core-foundation" version = "0.9.4" @@ -641,12 +317,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - [[package]] name = "crypto-common" version = "0.1.6" @@ -657,6 +327,32 @@ dependencies = [ "typenum", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "data-encoding" version = "2.9.0" @@ -670,37 +366,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", - "der_derive", - "flagset", "pem-rfc7468", "zeroize", ] -[[package]] -name = "der-parser" -version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "der_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "deranged" version = "0.4.0" @@ -708,15 +377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", -] - -[[package]] -name = "des" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e" -dependencies = [ - "cipher", + "serde", ] [[package]] @@ -727,7 +388,6 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", - "subtle", ] [[package]] @@ -741,18 +401,34 @@ dependencies = [ "syn", ] -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "dotenv" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2", + "signature", + "subtle", +] + [[package]] name = "either" version = "1.15.0" @@ -798,56 +474,17 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener 5.4.0", - "pin-project-lite", -] - -[[package]] -name = "executor-trait" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c39dff9342e4e0e16ce96be751eb21a94e94a87bb2f6e63ad1961c2ce109bf" -dependencies = [ - "async-trait", -] - [[package]] name = "fastrand" -version = "1.9.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] -name = "fastrand" -version = "2.3.0" +name = "fiat-crypto" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "fixedbitset" @@ -855,23 +492,6 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" -[[package]] -name = "flagset" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" - -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - [[package]] name = "fnv" version = "1.0.7" @@ -887,6 +507,20 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -894,6 +528,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -908,28 +543,13 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ - "fastrand 2.3.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -954,9 +574,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ + "futures-channel", "futures-core", + "futures-io", "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", "slab", @@ -1001,18 +624,6 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "h2" version = "0.4.10" @@ -1044,33 +655,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "http" version = "1.3.1" @@ -1284,38 +868,8 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", + "equivalent", + "hashbrown", ] [[package]] @@ -1324,7 +878,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" dependencies = [ - "bitflags 2.9.0", + "bitflags", "cfg-if", "libc", ] @@ -1374,71 +928,12 @@ dependencies = [ "syn", ] -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "lapin" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262f8d3c073435073c3e50bf2d63b361c143dcf418505b8c451fd23c7082a302" -dependencies = [ - "amq-protocol", - "async-global-executor-trait", - "async-reactor-trait", - "async-trait", - "executor-trait", - "flume", - "futures-core", - "futures-io", - "parking_lot", - "pinky-swear", - "reactor-trait", - "serde", - "tracing", - "waker-fn", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "libc" version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -1451,24 +946,11 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - [[package]] name = "log" version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -dependencies = [ - "value-bag", -] [[package]] name = "matchit" @@ -1488,12 +970,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.8.8" @@ -1521,23 +997,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] -name = "nom" -version = "7.1.3" +name = "nkeys" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "879011babc47a1c7fdf5a935ae3cfe94f34645ca0cac1c7f6424b36fc743d1bf" dependencies = [ - "memchr", - "minimal-lexical", + "data-encoding", + "ed25519", + "ed25519-dalek", + "getrandom 0.2.16", + "log", + "rand 0.8.5", + "signatory", ] [[package]] -name = "num-bigint" -version = "0.4.6" +name = "nuid" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "fc895af95856f929163a0aa20c26a78d26bfdc839f51b9d5aa7a5b79e52b7e83" dependencies = [ - "num-integer", - "num-traits", + "rand 0.8.5", ] [[package]] @@ -1546,24 +1026,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - [[package]] name = "object" version = "0.36.7" @@ -1573,15 +1035,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "oid-registry" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" -dependencies = [ - "asn1-rs", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -1600,67 +1053,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" -[[package]] -name = "p12-keystore" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cae83056e7cb770211494a0ecf66d9fa7eba7d00977e5bb91f0e925b40b937f" -dependencies = [ - "cbc", - "cms", - "der", - "des", - "hex", - "hmac", - "pkcs12", - "pkcs5", - "rand", - "rc2", - "sha1", - "sha2", - "thiserror", - "x509-parser", -] - [[package]] name = "parking" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest", - "hmac", -] - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -1719,89 +1117,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "pinky-swear" -version = "6.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cfae3ead413ca051a681152bd266438d3bfa301c9bdf836939a14c721bb2a21" -dependencies = [ - "doc-comment", - "flume", - "parking_lot", - "tracing", -] - -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.3.0", - "futures-io", -] - -[[package]] -name = "pkcs12" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695b3df3d3cc1015f12d70235e35b6b79befc5fa7a9b95b951eab1dd07c9efc2" -dependencies = [ - "cms", - "const-oid", - "der", - "digest", - "spki", - "x509-cert", - "zeroize", -] - -[[package]] -name = "pkcs5" -version = "0.7.1" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "aes", - "cbc", "der", - "pbkdf2", - "scrypt", - "sha2", "spki", ] -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.4.0", - "pin-project-lite", - "rustix 0.38.44", - "tracing", - "windows-sys 0.59.0", -] - [[package]] name = "portable-atomic" version = "1.11.0" @@ -1862,9 +1186,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", "prost-derive", @@ -1872,9 +1196,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", "itertools", @@ -1885,6 +1209,8 @@ dependencies = [ "prettyplease", "prost", "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", "regex", "syn", "tempfile", @@ -1892,9 +1218,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", "itertools", @@ -1905,13 +1231,33 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ "prost", ] +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" +dependencies = [ + "pulldown-cmark", +] + [[package]] name = "quote" version = "1.0.40" @@ -1929,85 +1275,61 @@ checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" [[package]] name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "ppv-lite86", - "rand_core", + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", ] [[package]] -name = "rand_core" -version = "0.9.3" +name = "rand" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "getrandom 0.3.3", + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] -name = "rc2" -version = "0.8.1" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "cipher", + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] -name = "reactor-trait" -version = "1.1.0" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "438a4293e4d097556730f4711998189416232f009c137389e0f961d2bc0ddc58" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "async-trait", - "futures-core", - "futures-io", + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] -name = "redis" -version = "0.31.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bc1ea653e0b2e097db3ebb5b7f678be339620b8041f66b30a308c1d45d36a7f" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "async-std", - "bytes", - "cfg-if", - "combine", - "futures-util", - "itoa", - "num-bigint", - "percent-encoding", - "pin-project-lite", - "ryu", - "serde", - "serde_json", - "sha1_smol", - "socket2 0.5.9", - "tokio", - "tokio-util", - "url", + "getrandom 0.2.16", ] [[package]] -name = "redox_syscall" -version = "0.5.12" +name = "rand_core" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "bitflags 2.9.0", + "getrandom 0.3.3", ] [[package]] @@ -2060,39 +1382,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "rustix" -version = "0.37.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.44" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "semver", ] [[package]] @@ -2101,10 +1396,10 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags", "errno", "libc", - "linux-raw-sys 0.9.4", + "linux-raw-sys", "windows-sys 0.59.0", ] @@ -2117,24 +1412,11 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.103.3", "subtle", "zeroize", ] -[[package]] -name = "rustls-connector" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70cc376c6ba1823ae229bacf8ad93c136d93524eab0e4e5e0e4f96b9c4e5b212" -dependencies = [ - "log", - "rustls", - "rustls-native-certs", - "rustls-pki-types", - "rustls-webpki", -] - [[package]] name = "rustls-native-certs" version = "0.7.3" @@ -2166,6 +1448,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustls-webpki" version = "0.103.3" @@ -2189,39 +1481,13 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - [[package]] name = "schannel" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" -dependencies = [ - "pbkdf2", - "salsa20", - "sha2", + "windows-sys 0.59.0", ] [[package]] @@ -2230,7 +1496,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2247,6 +1513,12 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + [[package]] name = "serde" version = "1.0.219" @@ -2280,31 +1552,25 @@ dependencies = [ ] [[package]] -name = "serde_spanned" -version = "1.0.0" +name = "serde_nanos" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +checksum = "a93142f0367a4cc53ae0fead1bcda39e85beccfad3dcd717656cacab94b12985" dependencies = [ "serde", ] [[package]] -name = "sha1" -version = "0.10.6" +name = "serde_repr" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "proc-macro2", + "quote", + "syn", ] -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - [[package]] name = "sha2" version = "0.10.9" @@ -2322,6 +1588,28 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signatory" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31" +dependencies = [ + "pkcs8", + "rand_core 0.6.4", + "signature", + "zeroize", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "slab" version = "0.4.9" @@ -2337,16 +1625,6 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.9" @@ -2367,15 +1645,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - [[package]] name = "spki" version = "0.7.3" @@ -2430,60 +1699,48 @@ dependencies = [ name = "taurus" version = "0.1.0" dependencies = [ + "async-nats", "base64", "code0-flow", "env_logger", - "futures-lite 2.6.1", - "lapin", + "futures-lite", "log", - "rand", + "prost", + "rand 0.9.2", "serde", "serde_json", "tempfile", "tokio", - "toml", "tucana", ] -[[package]] -name = "tcp-stream" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495b0abdce3dc1f8fd27240651c9e68890c14e9d9c61527b1ce44d8a5a7bd3d5" -dependencies = [ - "cfg-if", - "p12-keystore", - "rustls-connector", - "rustls-pemfile", -] - [[package]] name = "tempfile" version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "fastrand 2.3.0", + "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", + "rustix", "windows-sys 0.59.0", ] [[package]] name = "thiserror" -version = "2.0.12" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", @@ -2560,6 +1817,16 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.17" @@ -2569,6 +1836,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -2585,49 +1853,31 @@ dependencies = [ ] [[package]] -name = "toml" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "toml_parser", - "toml_writer", - "winnow", -] - -[[package]] -name = "toml_datetime" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_parser" -version = "1.0.2" +name = "tokio-websockets" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "f591660438b3038dd04d16c938271c79e7e06260ad2ea2885a4861bfb238605d" dependencies = [ - "winnow", + "base64", + "bytes", + "futures-core", + "futures-sink", + "http", + "httparse", + "rand 0.8.5", + "ring", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tokio-util", + "webpki-roots 0.26.11", ] -[[package]] -name = "toml_writer" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" - [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40" dependencies = [ "async-trait", "axum", @@ -2642,8 +1892,8 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", - "socket2 0.5.9", + "socket2 0.6.0", + "sync_wrapper", "tokio", "tokio-stream", "tower", @@ -2654,9 +1904,45 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.13.1" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tonic-health" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8aa31379f0851de4f223496a469ffcaae24ad4ce736493179c3e42135e2af5c" +dependencies = [ + "prost", + "tokio", + "tokio-stream", + "tonic", + "tonic-prost", +] + +[[package]] +name = "tonic-prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1" dependencies = [ "prettyplease", "proc-macro2", @@ -2664,6 +1950,8 @@ dependencies = [ "prost-types", "quote", "syn", + "tempfile", + "tonic-build", ] [[package]] @@ -2734,18 +2022,29 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tryhard" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fe58ebd5edd976e0fe0f8a14d2a04b7c81ef153ea9a54eebc42e67c2c23b4e5" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tucana" -version = "0.0.28" +version = "0.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7694d43cff47f6464cf502b67f7f5c6da1b1e05f0693dda755e5eff8deeeaa" +checksum = "811247bdfb777b65329d9f8e8ff9e2d405261ef626e149997f4fca57bfe106d4" dependencies = [ "prost", "prost-types", "serde", "serde_json", "tonic", - "tonic-build", + "tonic-prost", + "tonic-prost-build", ] [[package]] @@ -2754,6 +2053,12 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -2789,24 +2094,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "value-bag" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" - [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "want" version = "0.3.1" @@ -2832,115 +2125,21 @@ dependencies = [ ] [[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" +name = "webpki-roots" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "webpki-roots 1.0.2", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.48.0" +name = "webpki-roots" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ - "windows-targets 0.48.5", + "rustls-pki-types", ] [[package]] @@ -2949,7 +2148,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -2958,22 +2157,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets", ] [[package]] @@ -2982,46 +2166,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3034,67 +2200,37 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" - [[package]] name = "wit-bindgen-rt" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags", ] [[package]] @@ -3103,34 +2239,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" -[[package]] -name = "x509-cert" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" -dependencies = [ - "const-oid", - "der", - "spki", -] - -[[package]] -name = "x509-parser" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" -dependencies = [ - "asn1-rs", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "rusticata-macros", - "thiserror", - "time", -] - [[package]] name = "yoke" version = "0.8.0" diff --git a/Cargo.toml b/Cargo.toml index 1d6c8d7..968702b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,18 +4,18 @@ version = "0.1.0" edition = "2024" [dependencies] -code0-flow = { version = "0.0.13" } -tucana = { version = "0.0.28", features = ["aquila"] } -lapin = "2.5.3" +code0-flow = { version = "0.0.14" } +tucana = { version = "0.0.33" } serde = "1.0.219" serde_json = "1.0.140" tokio = { version = "1.44.1", features = ["rt-multi-thread"] } -toml = "0.9.0" log = "0.4.27" futures-lite = "2.6.0" rand = "0.9.1" base64 = "0.22.1" env_logger = "0.11.8" +async-nats = "0.42.0" +prost = "0.14.1" [dev-dependencies] tempfile = "3.19.1"