rust_m_queue

Crates.iorust_m_queue
lib.rsrust_m_queue
version1.0.5-alpha.1
created_at2024-12-19 20:20:29.441439+00
updated_at2024-12-20 15:42:58.297097+00
descriptionOOP-like wrapper around nix's posix m_queue
homepage
repositoryhttps://github.com/inclus16/rust_m_queue
max_upload_size
id1489529
size11,090
Sergey (inclus16)

documentation

README

This library is a simple OOP-like wrapper around nix posix m_queue to communicate between processes through queue in unix environment.

It contains two classes: IpcReceiver and IpcSender.

Basic usage of IpcSender:

#[derive(Serialize)]
struct Message {
    pub data: String,
}
const MESSAGE_SIZE: usize = 1024;
const QUEUE_NAME: &str = "/test_queue";
let sender = IpcSender::<MESSAGE_SIZE>::connect_to_queue(QUEUE_NAME).unwrap();
let message = Message {
data: String::from("test")
};
let priority = 3;
sender.send(message, priority).unwrap();

And IpcReceiver:

use serde::{Deserialize};
use rust_m_queue::receiver::IpcReceiver;
#[derive(Deserialise)]
struct Message {
    pub data: String,
}
const MESSAGE_SIZE: usize = 1024;
const QUEUE_NAME: &str = "/test_queue";
let mut receiver = IpcReceiver::<MESSAGE_SIZE>::init(QUEUE_NAME, 10).unwrap();
loop{
let data = receiver.receive::<Message>().unwrap(); //thread blocking
}
Commit count: 8

cargo fmt