Halloy - モダンなIRCクライアント
(github.com/squidowl)- Rust言語で開発された無料のオープンソースIRCクライアント
- モダンなIced GUIライブラリを使用し、高速でシンプルなインターフェースを提供。Mac / Windows / Linuxなどをサポート
- 最新プロトコルのIRCv3.2、SASL認証、ファイル転送用のDCC Sendをサポート
- さまざまな便利機能でチャットの生産性を向上
- カスタムテーマと通知
- キーボードショートカット、自動補完(ニックネーム、コマンド、チャンネルなど)
- 複数のサーバーと複数のチャンネルを同時に管理
- コマンドバーから素早くコマンドを実行可能
- IRCv3.2機能をサポート
- account-notify、away-notify、batch、cap-notify、chathistory、chghost など、IRCv3.2の高度な機能を多数サポート
- message-tags、multi-prefix、read-marker、sasl-3.1、server-time、standard replies などをサポート
1件のコメント
Hacker Newsのコメント
このアプリをぜひ使ってみたいのだが、スクリーンリーダーでアクセスできないため難しい状況。おそらくこれはGUIライブラリがアクセシビリティをサポートしていないためだと思う。Iced の GitHub で、2024年にアクセシビリティ対応が予定されている issue を見つけ、今年2月に最後のコメントが付いていることを確認した(関連 issue へのリンク)。この機能が改善されたら、また試してみるつもり。アクセシビリティ機能が絶対に必要なユーザーも HN に実際にいることを伝えたくてコメントした。アクセシビリティ機能の開発にはいつも感謝している
複数のサーバーで大量のチャンネルを使っていると、タブがないので使いづらくなる。トレイにも最小化できず、常に起動状態を保たなければならない点もやや面倒。しばらくは Quassel を使い続けるつもり。それでも本当に素晴らしい仕事だと感心している
もう少しタブらしく見せるために、次の設定を追加した
それでも、今どこにアクティブな IRC チャンネルがあるのか気になる。数か月前に久しぶりに freenode に接続したら、ほとんど誰もいなかった。またプログラミング/技術コミュニティの IRC に参加したい
私もタブのせいで halloy の試用をやめた。今でも関連 issue を追い続けている
タブ機能には全面的に同意する。2つ以上のチャンネルを見たいとき、どうすればいいのかわからない
もう少しタブのように使うには、設定ドキュメント で buffer を "replace-pane" に設定できる
halloy はとても素晴らしいアプリであり、Iced を使った GUI ソフトウェア開発を学びたいなら最高のサンプルでもある(Iced GitHub へのリンク)。Rust で GUI アプリを作りたいなら、halloy のようなショーケースアプリやサンプルを参考にすることを勧める。疑問が出てきたら Discord コミュニティで親切な助けを受けられる(Discord チャンネルへのリンク)
面白いことに、Rust の経験がほとんどない状態で Claude Code で iced-rs アプリケーションをビルドしたくて、GitHub で iced-rs を使う大規模プロジェクトを探したところ、Halloy は上位3つの参考例の1つだった
最近まで気に入る Rust 用 GUI ライブラリがなくて悩んでいた。大半が他の GUI スタックへのバインディングだったからだ。次に Rust で作業するときは Iced を使ってみるつもり
Rust ベースのデスクトップアプリケーションが Go や Java よりはるかに多く登場していると、最近感じ始めている。多くはクロスプラットフォーム志向。Electron と競争しようとする試みなのではないかと推測している。Tauri も Rust ベース。Rust ならではの特別さは何なのか、また Python ベースのデスクトップアプリケーションがあまり多くない理由も気になる。一方で、TypeScript や Go で作られたターミナルベースのアプリも最近よく見かける
現在、Rust でデスクトップ向けの Jellyfin 音楽クライアントを開発中。Rust コーディングの楽しさと信頼性が大きな魅力。時間があまりないときでも、コンパイルさえ通ればある程度は動くと信じられる安心感がある。Python だったらランタイムエラーで苦労していただろう。クロスプラットフォーム対応も非常によくできている。iced のようなライブラリだけでなく GTK バインディングも素晴らしい。ランタイムが不要なので Python より配布もずっと簡単。Rust はデスクトップアプリ作りに本当に向いている言語だ
Objective-C の時代から macOS アプリを開発してきた。ずっとネイティブアプリを好んでいて、Halloy を始めたときもマルチプラットフォームのネイティブアプリを目標にしていた。そういう点で Rust は完璧に噛み合った
Rust ならではの特別さは何か、という話はよく出る。個人的には多くの Python プログラムを Rust に置き換えている。書く難易度もそこまで途方もなく高いわけではなく、sum type のような重要な機能が Python や Rust と無関係な他の言語にはなくて残念だった。Rust でコードを書くのが大変な場合、それはたいてい Python では不可能か非効率な最適化を試みているときだ。ネイティブでコンパイル済みのアプリになる点がとても魅力的。Rust でデスクトップアプリをリリースする計画もある
Python 製のデスクトップアプリも多い。だが、たとえば Tkinter は Linux では見栄えが悪く、GTK を使うと minGW で自前ビルドするか Cygwin と一緒に配布しなければならない煩わしさがある
Rust について直接の経験はないが、CLI ツールやサーバーが Go で多く開発される理由は、まさにその分野で Go が強みを発揮するからだと思う。Go でデスクトップ GUI アプリを作るのは面白くなさそう。Go はやや冗長で、構造的な機能や複雑な抽象化の作業に非協力的だ。そういう面で Rust は Go と正反対だと感じる
昨日はそのせいか、多くの人が Libera のチャンネルに特に理由もなく入ってきて、IRC がなぜ良いのかを自分で体験しようとしていたのだが、誰も話していなくて不思議だった
以前は Hexchat を使っていたが、1年以上前に halloy に乗り換えて以来とても満足している。継続的に更新されていて、使っている間にもいろいろな最新機能が追加された。soju と組み合わせると IRC 体験がとてもスムーズになる
何年も IRC を使っていないが、12年前の10代だった自分がこれを見たらものすごく興奮していただろう。今まで見た中でいちばん格好いいクライアントだ
視力の弱い人向けのアクセシビリティオプションがあるのか気になる。EFNet よ永遠なれ
Halloy の全体的なデザインがとても気に入っている。HN に少なくとも2回は投稿したことがある。ついにメインページに載ったのが本当にうれしい。これからも素晴らしい仕事を続けてほしい
本当に素晴らしい。IRC サーバーを運営していて、まともなネイティブクライアントを探していたのだが、これまでエコシステムがほとんど停滞していたので、今度こそ Halloy を使ってみたい