| Crates.io | rustdi |
| lib.rs | rustdi |
| version | 0.1.0 |
| created_at | 2025-11-11 00:08:16.954378+00 |
| updated_at | 2025-11-11 00:08:16.954378+00 |
| description | Modern WhatsApp Client Library for Rust |
| homepage | https://github.com/joo-devweb/rustdi |
| repository | https://github.com/joo-devweb/rustdi |
| max_upload_size | |
| id | 1926433 |
| size | 419,785 |
Rustdi adalah pustaka Rust modern untuk berinteraksi dengan protokol WhatsApp Web. Dirancang untuk menyediakan antarmuka yang aman, efisien, dan mudah digunakan untuk mengembangkan aplikasi WhatsApp seperti bot, gateway, atau layanan otomasi.
Masih Dalam Development,jika banyak error ya maklumin,jika ketemu error buka issue yak
Tambahkan ini ke Cargo.toml Anda:
[dependencies]
rustdi = "0.10.0"
Contoh sederhana menggunakan library:
use rustdi::{WhatsAppClient, EventHandler, Event, Jid, PresenceStatus};
// Definisi event handler Anda
struct MyEventHandler;
impl EventHandler for MyEventHandler {
fn handle_event(&self, event: Event) {
match event {
Event::Connected => {
println!("✅ Berhasil terhubung ke WhatsApp!");
}
Event::MessageReceived(msg_info) => {
println!("📦 Pesan baru diterima dari: {}", msg_info.key.remote_jid);
// Proses pesan di sini
}
Event::QrCodeGenerated(qr_data) => {
println!("📱 Scan QR Code ini: {}", qr_data);
// Tampilkan QR Code ke pengguna
}
Event::Error(error) => {
eprintln!("❌ Error: {}", error);
}
_ => {
// Tangani event lainnya
}
}
}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Buat event handler
let handler = Box::new(MyEventHandler {});
// Buat client WhatsApp
let client = rustdi::WhatsAppClient::new(handler)?;
// Hubungkan menggunakan QR Code
client.connect(rustdi::AuthMethod::QRCode {
callback: Box::new(|qr_code| {
// Tampilkan QR code ke pengguna
println!("Silakan scan QR code yang tampil");
})
})?;
// Kirim pesan contoh
let jid = Jid::from_string("6281234567890@s.whatsapp.net")?;
let message_id = client.send_text_message(&jid, "Halo dari Rustdi!")?;
println!("💬 Pesan terkirim dengan ID: {}", message_id);
// Atur status kehadiran
client.set_presence(PresenceStatus::Available)?;
// Loop utama aplikasi
loop {
if let Some(event) = client.poll_event() {
// EventHandler akan menangani event secara otomatis
}
std::thread::sleep(std::time::Duration::from_millis(100));
}
Ok(())
}
use rustdi::MediaType;
// Kirim gambar
let message_id = client.send_media_message(
&recipient_jid,
MediaType::Image,
"https://example.com/image.jpg",
Some("Deskripsi gambar")
)?;
// Buat grup
let participants = vec![
Jid::from_string("6281234567891@s.whatsapp.net")?,
Jid::from_string("6281234567892@s.whatsapp.net")?
];
// Fungsi untuk membuat grup tidak disediakan dalam contoh ini
// karena memerlukan implementasi lebih lanjut
client.connect(rustdi::AuthMethod::PairingCode {
phone_number: "+6281234567890".to_string(),
callback: Box::new(|pairing_code| {
println!("Masukkan kode ini di perangkat Anda: {}", pairing_code);
})
})?;
Rustdi dilengkapi dengan komponen utama berikut:
Kontribusi sangat dihargai! Silakan fork proyek ini dan kirim pull request untuk:
Licensed under the MIT license.