From b688e17daf837c0833453417ad4631724a30b632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Kaan=20G=C3=BCm=C3=BC=C5=9F?= Date: Mon, 16 Jun 2025 03:04:26 +0300 Subject: [PATCH] feat: :sparkles: add voice_chat_room to projects --- src/projects.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/projects.rs b/src/projects.rs index f70abb3..1560b5a 100644 --- a/src/projects.rs +++ b/src/projects.rs @@ -20,6 +20,7 @@ pub fn Projects() -> Element { div { class: "project_link", Link {to: Route::Project { id: 9 }, class: "project_link", "Forum"} } div { class: "project_link", Link {to: Route::Project { id: 10 }, class: "project_link", "Voice Chat"} } div { class: "project_link", Link {to: Route::Project { id: 11 }, class: "project_link", "WebRTC"} } + div { class: "project_link", Link {to: Route::Project { id: 12 }, class: "project_link", "Voice Chat Room"} } } Footer {} } @@ -349,6 +350,30 @@ pub fn Project(id: i32) -> Element { } } } + 12 => { + rsx! { + div { + class:"project", + h1 {"Voice Chat Room"} + h5 {"Voice chat room written in Rust."} + Link {id: "source_link_in_project_page", to: "https://source.tahinli.com/Tahinli/rust_voice_chat_room", "Source"} + div { + " + In this project I wanted to implement voice chat room for real-time audio communication with low latency audio processing. + " + } + h3 {"Why I did this ?"} + div { + "I wanted to create voice chat application with a relay server and without many dependencies. Since I already did simple client / server only one with no audio processing in some of the previous projects, I wanted to improve things." + } + + h3 {"What I learned ?"} + div { + "I understand how audio works better in general. Especially in low latency and streaming area. Since audio buffers are always hungry for samples and networks, streams, thread locks, thread waking from sleep, context switching are always creates latency, I learned a lot of things for real-time applications. I tried for a month to create reliable audio mixer because there is no room for latency, even an await for async task. I finally come up with simple approach to solve things. Probably I can improve more but since I understand the process and further improvements never ends, I'm going to keep it as it is." + } + } + } + } _ => { rsx! { h1 {"You're not supposed to be here"}