İki teneke, bir ip. tincan: terminal için sunucusuz, eşler arası sesli sohbet
Arada sunucu olmadan sesli ve yazılı sohbet. Bir oda aç, ekrana basılan kodu arkadaşlarına gönder ve konuş.
brew tap bilalyazicioglu/tap && brew install tincanmacOS ve Linux.
DIRECT18ms
Bir oda aç, iki kelime ver.
tincan'ı ilk çalıştıran kişi odayı açar. Ekrana bir oda adı ve bir parola basılır; başka herkesin ihtiyacı olan tek şey bunlar: telefonda okunacak kadar kısa iki şey.
$ tincan host lobby --name alice room: lobby passphrase: chestnut-ferry-lens-moss $ tincan join lobby --name bob passphrase: ••••••••••••••••••••••••
Oda adını vermezsen yerine 63 karakterlik bir davet kodu alırsın: host'un açık anahtarı, çoktan panonda. Hesap yok, port yönlendirme yok, VPN yok.
DIRECT18ms
Ses doğrudan aranızda gider.
Odayı açan kişi katılımcı listesini, kanalları ve sohbeti tutar; bu saniyede birkaç yüz bayt eder. Ses ondan hiç geçmez. Bir kanaldaki herkes Opus paketlerini QUIC datagramları olarak doğrudan diğer herkese gönderir, bu yüzden host'un bağlantısı hiçbir zaman darboğaz olmaz.
Altı kişilik bir oda, kişi başı yaklaşık 160 kbps yükleme ister.
DIRECT18ms
Parola asla ağdan geçmez.
İki taraf da parolayı Argon2id ile bir giriş anahtarına dönüştürür. Host taze bir nonce gönderir; misafir buna anahtarlı bir BLAKE2b MAC ile cevap verir. Yolda yakalanan bir cevap sonraki bağlantıda işe yaramaz ve kimse kapıyı çalarak host'a Argon2 hesabı yaptıramaz.
Parola kimin gireceğine karar verir. Konuşulanı gizli tutmak QUIC'in işi: her bağlantı uçtan uca şifrelenir ve her taraf kendi açık anahtarıyla doğrulanır.
RELAY84ms
Doğrudan yol kurulamazsa ip sarkar.
Router arkasındaki iki bilgisayar çoğu zaman birbirine delik açıp ulaşır. Ulaşamazsa trafik bir relay üzerinden gider. Relay, anahtarı olmadığı paketleri yalnızca iletir: hangi iki anahtarın ne zaman ve ne kadar konuştuğunu görür, ama ne konuşulduğunu asla.
tincan'da kanal listesiyle sohbet arasındaki çizgi, bu sayfadaki gibi davranır. Herkese doğrudan ulaşıldığında gergin durur │, relay üzerinden gidildiğinde sarkar ╎, ses kopmaya başladığında yıpranır ┆. Biri konuşurken çizgi boyunca, gidiş-dönüş süresinin hızında bir nabız akar; yavaş bir bağlantıyı okumadan önce görürsün.
CHOPPY84ms
Neye dayandığı.
Sunucusuz, bir tincan sunucusu olmadığı anlamına gelir: hesap yok, oda kaydı yok ve konuşmanın, onu yapan bilgisayarlar dışında hiçbir yerde kopyası yok. Hiç altyapı olmadığı anlamına gelmez. Eşler birbirini, iroh'un arkasındaki şirket olan Number Zero'nun işlettiği DNS ve relay sunucuları üzerinden bulur. Bunlar ortadan kalkarsa yeni bağlantılar kurulamaz. tincan'ı kendi relay'ine yönlendirmek issue #136'da.
Ulaşılabilir olmak, bulunabilir olmak demek. Bir odadaki herkes diğer herkesin IP adresini öğrenir. Gerçek bir teneke kutu telefonda da karşı uç nerede olduğunu bilir.
DIRECT18ms
Çizilmedi, kaydedildi.
Sayfanın başındaki terminal, bu sayfa için yazılmış bir taklit. Bu ise gerçek bir terminalde kaydedilmiş tincan'ın kendisi.
DIRECT18ms
Discord engellendiğinde.
Discord ülkende engellendiğinde, herkes için çöktüğünde ya da okulun veya işyerinin ağında filtrelendiğinde, tincan'ın onunla birlikte kapanacak bir şeyi yok. Servis sağlayıcının kara listeye alacağı bir tincan alan adı ya da sunucu adresi yok: eşler birbirini iroh'un keşif servisiyle bulur ve doğrudan, şifreli QUIC üzerinden konuşur. Çoğu durumda VPN gerekmez. Bu servisleri ya da tüm UDP trafiğini engelleyen bir ağ ise tincan'ı da durdurur.
tincan nerelerde kullanılır?
Oyuncular, yazılımcılar ve gizliliğe önem verenler için sıfır yük bindiren, engellenemeyen sesli iletişim.
OYUNFPS Düşüşü Olmadan Sıfır Takılmalı Oyun İletişimi
Electron tabanlı hantal ses uygulamaları gigabaytlarca RAM tüketir, işlemciyi yorar ve rekabetçi oyunlarda anlık takılmalara (micro-stutter) yol açar. tincan, bas-konuş (--ptt) destekli saf bir Rust terminal uygulamasıdır: arka planda GPU tüketmez, işlemci çalmaz ve FPS'inizi korur.
DAYANIKLILIKErişim Engellerine ve Sansüre Karşı Bağışık Mimari
Merkezi ses platformları devletler veya servis sağlayıcılar tarafından erişime kapatıldığında ya da okul/işyeri ağlarında filtrelendiğinde tincan çalışmaya devam eder. Yasaklanacak veya engellenecek merkezi bir tincan sunucusu yoktur; eşler doğrudan şifreli QUIC ile konuşur.
GİZLİLİKGerçek Uçtan Uca Şifreleme: Sıfır Veri Toplama
Merkezi platformlar ses ve yazışmalarınızı kendi şirket sunucularından geçirir, mesaj geçmişlerini saklar ve telemetri toplar. tincan'da ses paketleri doğrudan eşler arası akar ve uçtan uca şifrelidir: aracı relay'ler dahi içeriği çözemez, hiçbir sunucuda kayıt tutulmaz.
İŞ AKIŞIUzak Çift Programlama & Terminal Akışları
tmux, Neovim ve terminal odaklı çalışan mühendisler için tasarlandı. Kodlama ortamınızı veya pencerelerinizi değiştirmeden, sekme atlamadan doğrudan terminal içinden sesli kanala katılın.
ÇEVRİMDIŞILAN Partileri, Hackathon'lar & Yerel Ağlar
İnternet bağlantısı kesildiğinde veya şirket içi izole alt ağlarda harici sunucuya ihtiyaç duymadan çalışır. Cihazlar yerel ağda birbirini görebildiği sürece ses ultra düşük gecikmeyle doğrudan akar.
VERİMLİLİKKotalı Mobil İnternet & İz Bırakmayan Geçici Odalar
48 kHz uyarlamalı Opus kodeği saatte sadece ~14 MB veri harcar; telefonunuzun hotspot kotasını video reklamlar ve telemetriyle tüketmez. Terminal kapandığı anda oda tamamen yok olur, arkasında sıfır iz bırakır.
tincan, Discord ve Mumble.
Discord her şeyi kendi sunucularında tutar; Mumble ve TeamSpeak için birinin sunucu çalıştırması gerekir. tincan'ın hiç sunucusu yok.
| tincan | Discord | TeamSpeak / Mumble | |
|---|---|---|---|
| Ses nereden geçer | Doğrudan eşler arasında | Discord'un ses sunucuları | Sunucu |
| Kurulacak ya da kiralanacak sunucu | Yok | Discord'unki | Seninki |
| Bir ağın engellemesi gereken | iroh keşif ve relay servisleri ya da UDP | Discord'un alan adları | Sunucunun adresi |
| Hesap | Yok | E-posta ya da telefon | İsteğe bağlı |
| Sohbet geçmişi nerede | Odadaki bilgisayarlarda | Discord'un sunucularında | Sunucuda, açıksa |
| İstemci | Yerel terminal uygulaması (Rust) | Electron uygulaması | Yerel masaüstü uygulaması |
| Kaynak kodu | Açık, MIT | Kapalı | TeamSpeak kapalı, Mumble BSD |
Sorular.
Discord engelliyken tincan çalışır mı? VPN gerekir mi?
Çoğu durumda VPN gerekmez. Discord erişim engeli Discord'un alan adlarını ve sunucularını hedefler; tincan'ın ise engellenecek kendi sunucusu yok. Eşler birbirini iroh'un açık keşif servisi ve Number Zero'nun relay sunucuları üzerinden bulur, ses doğrudan iki bilgisayar arasında şifreli QUIC ile akar. Bu servisleri ya da tüm UDP trafiğini engelleyen bir ağda tincan da çalışmaz.
Hesap, e-posta ya da telefon numarası gerekir mi?
Hayır. Kaydolacak ya da giriş yapacak bir şey yok. Bir oda açarsın ve ya adını ile dört kelimelik parolasını ya da 63 karakterlik bir davet kodunu paylaşırsın. Her bilgisayar bir açık anahtarla tanınır ve konuşmanın, onu yapan bilgisayarlar dışında hiçbir yerde kopyası tutulmaz.
tincan şifreli mi?
Her bağlantı QUIC'tir: iki ucundaki bilgisayar arasında şifrelenir ve karşı tarafın açık anahtarıyla doğrulanır. Ses doğrudan eşten eşe gider; sohbet ve katılımcı listesi ise odadakilerden biri olan host üzerinden geçer. Relay'ler okuyamadıkları paketleri iletir, ama hangi anahtarların ne zaman ve ne kadar konuştuğunu görebilir. Bir odadaki herkes diğer herkesin IP adresini öğrenir.
Ses kalitesi nasıl, ne kadar internet harcar?
Ses, 48 kHz mono ve 32 kbps Opus olarak 20 ms'lik parçalar halinde gönderilir; mikrofonunda RNNoise gürültü bastırma çalışır. Gürültü bastırma 10 ms gecikme ekler ve ses ayarları ekranından kapatılabilir. Altı kişilik bir oda, kişi başı yaklaşık 160 kbps yükleme ister.
Oyun oynarken ya da kod yazarken açık bırakabilir miyim?
Evet. tincan bir terminal sekmesinde çalışan yerel bir Rust programı, Electron uygulaması değil. Bas-konuş için --ptt ile başlat (F4 tuşu), yalnızca yazılı sohbet için --no-voice kullan.
Windows'ta çalışır mı?
Günlük kullanımı macOS ve Linux'ta. Windows sürümü CI'da derlenip test ediliyor ama henüz gerçek bir Windows makinesinde kullanılmadı. npx tincan-cli host ile deneyebilir ya da GitHub'daki son sürümden zip dosyasını indirebilirsin.
tincan nasıl kurulur, oda nasıl açılır?
macOS ve Linux'ta Homebrew ile (brew tap bilalyazicioglu/tap && brew install tincan), Rust varsa cargo install tincan-chat ile, Node varsa npm install -g tincan-cli ile kurabilirsin. Sonra oda açmak için tincan host lobby, katılmak için tincan join lobby yazman yeterli.
tincan ücretsiz mi?
Evet. tincan MIT lisanslı açık kaynak bir proje ve ücretli bir sürümü yok, çünkü parası ödenecek bir servis yok.
Neden crates.io'da tincan-chat, npm'de tincan-cli?
Çünkü tincan adı ikisinde de alınmıştı. Program tek: komut her yerde tincan; Homebrew'dan tincan, crates.io'dan tincan-chat, npm'den tincan-cli olarak kurulur. Kaynak kodu GitHub'da bilalyazicioglu/tincan-cli, sitesi tincan.rs. E-öğrenmede kullanılan Tin Can API (xAPI) ile ilgisi yok.
Karşı uç.
Kur, bir oda aç ve kodu onlara gönder.
brew tap bilalyazicioglu/tap && brew install tincanmacOS ve Linux.