FAQ
Czym jest repartee?
repartee to terminalowy klient IRC napisany w Rust, inspirowany irssi i zbudowany jako port kokoirc (TypeScript/OpenTUI/Bun) do Rust/ratatui/tokio.
Dlaczego Rust?
- Wydajność: ~24MB samowystarczalna binarka (zawierająca wbudowany SQLite, Hunspell oraz frontend webowy Leptos WASM), natychmiastowe uruchomienie, minimalne zużycie pamięci
- Bezpieczeństwo: Bezpieczeństwo pamięci bez garbage collectora
- Współbieżność: Asynchroniczne środowisko tokio wydajnie obsługuje wiele połączeń
- Niezawodność: System typów Rusta wyłapuje błędy w czasie kompilacji
- Dystrybucja: Pojedyncza statyczna binarka, bez zależności uruchomieniowych
Jak repartee porównuje się z kokoirc?
| Cecha | kokoirc | repartee |
|---|---|---|
| Język | TypeScript | Rust |
| Framework TUI | OpenTUI/React | ratatui |
| Środowisko uruchomieniowe | Bun | Natywna binarka |
| Rozmiar binarki | ~68MB | ~24MB (z wbudowanym web UI WASM) |
| Skryptowanie | TypeScript | Lua 5.4 |
| Format konfiguracji | TOML | TOML (ten sam format) |
| Format motywów | Kompatybilny z irssi | Kompatybilny z irssi (ten sam) |
Formaty konfiguracji i motywów są kompatybilne -- możesz skopiować konfigurację kokoirc do repartee z minimalnymi zmianami.
Jak migrować z kokoirc?
- Skopiuj
~/.kokoirc/config.tomldo~/.repartee/config.toml - Skopiuj
~/.kokoirc/.envdo~/.repartee/.env - Skopiuj
~/.kokoirc/themes/do~/.repartee/themes/ - Skrypty muszą zostać przepisane z TypeScript na Lua
Jak migrować z irssi?
repartee używa ciągów formatujących kompatybilnych z irssi, więc wiedza o motywach przekłada się bezpośrednio. Główne różnice:
- Konfiguracja jest w TOML zamiast własnego formatu irssi (lub edytowana interaktywnie przez
/wizard//configalbo/set) - Skrypty są w Lua zamiast Perl
- Większość
/poleceńdziała tak samo
Czy repartee obsługuje DCC?
Tak -- repartee obsługuje DCC CHAT z pełną kompatybilnością irssi/erssi:
- Aktywne i pasywne (reverse) połączenia DCC CHAT
- Konwencja bufora
=nick-- czaty DCC pojawiają się jako=Alicena liście buforów - Automatyczne wykrywanie IP z gniazda IRC, z ręcznym nadpisaniem przez
/set dcc.own_ip - Maski automatycznej akceptacji, timeout, śledzenie nicków, DCC REJECT
- Polecenia z autouzupełnianiem:
/dcc chat,/dcc close,/dcc list,/dcc reject - Zdarzenia skryptowe:
dcc.chat.request,dcc.chat.connected,dcc.chat.message,dcc.chat.closed
Czy repartee ładuje historię czatu?
Tak. Po otwarciu kanału, query lub bufora DCC, ostatnie 20 wiadomości (konfigurowalne przez display.backlog_lines) jest ładowanych z lokalnej bazy danych logów SQLite. Ponadto na serwerach i bouncerach obsługujących draft/chathistory, repartee automatycznie pobiera historię z serwera po dołączeniu do kanału (a starsze wiadomości można pobrać na żądanie przez /chathistory).
Gdzie są przechowywane logi?
~/.repartee/logs/messages.db -- baza danych SQLite z opcjonalnym szyfrowaniem AES-256-GCM.
Czy mogę używać wielu sieci IRC i bouncerów?
Tak. Dodaj wiele sekcji [servers.*] do konfiguracji lub użyj /wizard, aby skonfigurować je interaktywnie. Każda sieć otrzymuje własne połączenie i zestaw buforów kanałowych.
Jeśli korzystasz z bouncera takiego jak Soju lub Lurker, ustaw bouncer_control = true na pojedynczym połączeniu sterującym, a repartee automatycznie wykryje wszystkie sieci nadrzędne przez soju.im/bouncer-networks, utworzy połączenia potomne z poświadczeniami username/netid, zsynchronizuje znaczniki przeczytania między urządzeniami (draft/read-marker) oraz pozwoli przeszukiwać logi na serwerze (/bsearch) i zarządzać sieciami (/bouncer).
Czy repartee obsługuje IRCv3?
Tak -- repartee negocjuje ponad 30 możliwości IRCv3 oraz rozszerzeń bouncerów przy połączeniu:
- Rdzeń i tożsamość:
server-time,echo-message,labeled-response,away-notify,account-notify,chghost,setname,cap-notify,multi-prefix,extended-join,userhost-in-names,no-implicit-names,invite-notify - Historia i wiadomości:
batch,message-tags,draft/chathistory,draft/event-playback,draft/multiline,draft/read-marker,draft/message-redaction,draft/channel-context,+typing,+draft/reply,+draft/react - Obecność, konta i metadane:
monitor,extended-monitor,draft/account-registration,draft/metadata-2,draft/extended-isupport,draft/webpush - Rozszerzenia bouncerów:
soju.im/bouncer-networks,soju.im/bouncer-networks-notify,soju.im/search,soju.im/client-cert - SASL:
ECDSA-NIST256P-CHALLENGE,SCRAM-SHA-512,SCRAM-SHA-256,SCRAM-SHA-1,EXTERNAL(certyfikat TLS klienta),OAUTHBEARER,PLAIN(automatyczny wybór od najsilniejszego) - WHOX i Extban: automatyczne wykrywanie WHOX do śledzenia kont/hostów oraz bany
$a:accountze skrótem/ban -a
Zobacz Referencję IRCv3, aby poznać pełną macierz specyfikacji.
Jak utrzymać repartee działające w tle?
Użyj /detach (lub naciśnij Ctrl+\ / Ctrl+Z), aby odłączyć się od terminala. repartee kontynuuje działanie -- połączenia IRC pozostają aktywne, wiadomości są logowane, a skrypty działają dalej.
Podłącz się ponownie za pomocą repartee a z dowolnego terminala. Możesz też uruchomić bezgłówkowo za pomocą repartee -d i podłączyć się później.
Zobacz Sesje i odłączanie, aby poznać pełny poradnik.
Czy mogę zamknąć terminal i połączyć się później?
Tak. Gdy zamkniesz okno terminala, repartee przechwytuje SIGHUP i automatycznie się odłącza. Sesja pozostaje uruchomiona i możesz się ponownie podłączyć za pomocą repartee a.
Działa to również przy rozłączeniach SSH -- uruchom repartee -d na zdalnym serwerze, rozłącz SSH, połącz się ponownie później i repartee a przywróci Twoją sesję.
Co robi /cycle?
/cycle opuszcza i natychmiast ponownie dołącza do kanału. Przydatne do odświeżenia listy nicków, ponownego wyzwolenia auto-op lub wyczyszczenia przestarzałego stanu kanału. Klucze kanału są zachowywane. Alias: /rejoin.
Czy mogę uruchamiać polecenia powłoki bez odłączania?
Tak! Użyj /shell, aby otworzyć wbudowany terminal wewnątrz Repartee. Otrzymujesz pełną powłokę z PTY (zsh, bash, vim, htop) w oddzielnym buforze. Naciśnij Ctrl+], aby przejść z powrotem do wejścia IRC, lub kliknij inny bufor na pasku bocznym. Wpisz exit w powłoce, aby ją zamknąć. Możesz otworzyć wiele powłok -- pojawiają się w grupie "Shell" na pasku bocznym.
Powłoka działa również w interfejsie webowym -- każda sesja webowa otrzymuje własny niezależny PTY dopasowany do rozmiaru okna przeglądarki. Powłoka webowa używa renderera WebGL2 beamterm z czcionką FiraCode Nerd Font, zaznaczaniem tekstu myszą, zmianą rozmiaru czcionki Ctrl+/- oraz wklejaniem ze schowka.