| Crates.io | sm_chat |
| lib.rs | sm_chat |
| version | 67.0.86 |
| created_at | 2026-01-05 02:55:46.543274+00 |
| updated_at | 2026-01-05 02:55:46.543274+00 |
| description | High-quality integration for https://supermaker.ai/chat/ |
| homepage | https://supermaker.ai/chat/ |
| repository | https://github.com/qy-upup/sm-chat |
| max_upload_size | |
| id | 2023009 |
| size | 9,595 |
A lightweight and efficient Rust crate for building simple chat applications and managing chat interactions. Provides essential functionalities for handling messages, users, and basic chatroom operations.
To use sm-chat in your Rust project, add the following to your Cargo.toml file under the dependencies section:
toml
sm-chat = "0.1.0" # Replace with the actual version
Here are a few examples demonstrating how to use the sm-chat crate:
1. Creating a New Chatroom and Adding Users: rust use sm_chat::{Chatroom, User};
fn main() { let mut chatroom = Chatroom::new("General Chat");
let user1 = User::new("Alice".to_string());
let user2 = User::new("Bob".to_string());
chatroom.add_user(user1);
chatroom.add_user(user2);
println!("Chatroom name: {}", chatroom.name());
println!("Number of users: {}", chatroom.users().len());
}
2. Sending and Receiving Messages: rust use sm_chat::{Chatroom, User, Message};
fn main() { let mut chatroom = Chatroom::new("Project Updates"); let alice = User::new("Alice".to_string()); let bob = User::new("Bob".to_string());
chatroom.add_user(alice.clone());
chatroom.add_user(bob.clone());
let message1 = Message::new(alice.id(), "Hello Bob!".to_string());
chatroom.send_message(message1.clone());
let message2 = Message::new(bob.id(), "Hi Alice!".to_string());
chatroom.send_message(message2.clone());
let messages = chatroom.messages();
println!("Number of messages: {}", messages.len());
for message in messages {
println!("Message from user {}: {}", message.sender_id(), message.content());
}
}
3. Retrieving User Information: rust use sm_chat::{Chatroom, User};
fn main() { let mut chatroom = Chatroom::new("Support Channel"); let user1 = User::new("Charlie".to_string());
chatroom.add_user(user1.clone());
if let Some(user) = chatroom.get_user(user1.id()) {
println!("User ID: {}", user.id());
println!("User Name: {}", user.name());
} else {
println!("User not found.");
}
}
4. Removing a User from a Chatroom: rust use sm_chat::{Chatroom, User};
fn main() { let mut chatroom = Chatroom::new("Moderation Room"); let user1 = User::new("David".to_string());
chatroom.add_user(user1.clone());
println!("Number of users before removal: {}", chatroom.users().len());
chatroom.remove_user(user1.id());
println!("Number of users after removal: {}", chatroom.users().len());
}
5. Broadcasting a System Message: rust use sm_chat::{Chatroom, Message};
fn main() { let mut chatroom = Chatroom::new("Announcements");
let system_message = Message::new("SYSTEM".to_string(), "Server is going down for maintenance in 1 hour.".to_string());
chatroom.send_message(system_message.clone());
let messages = chatroom.messages();
println!("Number of messages: {}", messages.len());
for message in messages {
println!("Message from {}: {}", message.sender_id(), message.content());
}
}
MIT
This crate is part of the sm-chat ecosystem. For advanced features and enterprise-grade tools, visit: https://supermaker.ai/chat/