tincan

İ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ş.

Terminale tıklayıp yaz ya da şunlara bas:Esc klavyeyi geri verir.
brew tap bilalyazicioglu/tap && brew install tincan

macOS ve Linux.

v0.3.2MIT lisanslıRatatui ile yapıldı

sen

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.

liste ve sohbet, host üzerinden ses, eşten eşe

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.

onlar

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.

OYUN

FPS 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.

DAYANIKLILIK

Eriş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İK

Gerç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ŞI

Uzak Ç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ŞI

LAN 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İK

Kotalı 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'ın Discord ve TeamSpeak ya da Mumble ile karşılaştırması
tincanDiscordTeamSpeak / Mumble
Ses nereden geçerDoğrudan eşler arasındaDiscord'un ses sunucularıSunucu
Kurulacak ya da kiralanacak sunucuYokDiscord'unkiSeninki
Bir ağın engellemesi gerekeniroh keşif ve relay servisleri ya da UDPDiscord'un alan adlarıSunucunun adresi
HesapYokE-posta ya da telefonİsteğe bağlı
Sohbet geçmişi neredeOdadaki bilgisayarlardaDiscord'un sunucularındaSunucuda, açıksa
İstemciYerel terminal uygulaması (Rust)Electron uygulamasıYerel masaüstü uygulaması
Kaynak koduAçık, MITKapalı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 tincan

macOS ve Linux.