kueue_lib/lib.rs
1//! # Kueue
2//!
3//! A robust, user-level, work-stealing, distributed task scheduler.
4//!
5//! The Kueue package consists of multiple binary crates (client, server, worker)
6//! to realize the distributed task scheduler. This library crate contains
7//! shared code between the Kueue binaries. To obtain the Kueue task scheduler,
8//! use "cargo install" instead:
9//!
10//! ```text
11//! cargo install kueue
12//! ```
13//!
14//! Find more information on [crates.io](https://crates.io/crates/kueue).
15//! The [client](../kueue/index.html), [server](../kueue_server/index.html), and
16//! [worker](../kueue_worker/index.html) crates are documented separately.
17
18#![warn(clippy::missing_docs_in_private_items)]
19
20pub mod config;
21pub mod messages;
22pub mod structs;
23
24#[cfg(test)]
25mod tests {
26 use crate::{
27 config::Config,
28 messages::{ClientToServerMessage, HelloMessage},
29 };
30
31 #[test]
32 fn general_test_setup() {
33 // TODO: Is it possible to have some kind of integration test here?
34 let _config = Config::new(None);
35 // TODO...
36 }
37
38 #[test]
39 fn serde_message() {
40 // Run tests with `cargo test --lib -- --nocapture` to see output.
41
42 let message = HelloMessage::HelloFromClient;
43 let buffer = serde_json::to_vec(&message).unwrap();
44 println!("Hello: {}", String::from_utf8(buffer).unwrap());
45
46 let message = ClientToServerMessage::ListWorkers;
47 let buffer = serde_json::to_vec(&message).unwrap();
48 println!("ListWorkers: {}", String::from_utf8(buffer).unwrap());
49
50 let message = ClientToServerMessage::Bye;
51 let buffer = serde_json::to_vec(&message).unwrap();
52 println!("Bye: {}", String::from_utf8(buffer).unwrap());
53 }
54}