4 điểm bởi GN⁺ 2025-10-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trình khách IRC miễn phí, mã nguồn mở được phát triển bằng ngôn ngữ Rust
  • Sử dụng thư viện GUI Iced hiện đại để cung cấp giao diện nhanh và đơn giản, hỗ trợ macOS/Windows/Linux
  • Hỗ trợ giao thức mới nhất IRCv3.2, xác thực SASLDCC Send để truyền tệp
  • Nhiều tính năng tiện lợi giúp nâng cao năng suất trò chuyện
    • Chủ đề tùy chỉnh và thông báo
    • Phím tắt, tự động hoàn thành (biệt danh, lệnh, kênh, v.v.)
    • Quản lý đồng thời nhiều máy chủ và nhiều kênh
    • Có thể thực thi lệnh nhanh thông qua thanh lệnh
  • Hỗ trợ các tính năng IRCv3.2
    • Hỗ trợ nhiều tính năng nâng cao của IRCv3.2 như account-notify, away-notify, batch, cap-notify, chathistory, chghost, v.v.
    • Hỗ trợ message-tags, multi-prefix, read-marker, sasl-3.1, server-time, standard replies, v.v.

1 bình luận

 
GN⁺ 2025-10-16
Ý kiến trên Hacker News
  • Tôi rất muốn thử ứng dụng này, nhưng gặp khó khăn vì nó không thể truy cập bằng trình đọc màn hình. Tôi cho rằng hiện tượng này có lẽ là do thư viện GUI chưa hỗ trợ khả năng truy cập. Tôi đã tìm thấy một issue trên GitHub của Iced nói rằng hỗ trợ accessibility được dự kiến trong năm 2024, và thấy bình luận gần nhất được đăng vào tháng 2 năm nay (liên kết issue liên quan). Nếu tính năng này được cải thiện, tôi dự định sẽ thử lại. Tôi để lại bình luận này để mọi người biết rằng trên HN thực sự có những người dùng rất cần các tính năng accessibility. Tôi luôn cảm thấy biết ơn những nỗ lực phát triển accessibility

    • Cũng có tài liệu roadmap của Iced (liên kết roadmap), trong đó hỗ trợ truy cập bằng trình đọc màn hình được lên kế hoạch ít nhất là ở phiên bản sau nữa
  • Khi dùng rất nhiều kênh trên nhiều máy chủ, việc không có tab khiến trải nghiệm khá bất tiện. Việc không thể thu nhỏ xuống khay hệ thống và phải luôn để ứng dụng chạy cũng hơi phiền. Trước mắt tôi vẫn sẽ tiếp tục dùng Quassel. Dù vậy, đây vẫn là một công việc thật sự ấn tượng

    • Tôi đã thêm cấu hình sau để nó trông giống tab hơn một chút

      [actions.sidebar]
      buffer = "replace-pane"
      
    • Tôi vẫn tự hỏi các kênh IRC còn hoạt động hiện nay ở đâu. Vài tháng trước tôi vào lại freenode sau một thời gian dài thì thấy hầu như chẳng còn ai. Tôi muốn tham gia lại các cộng đồng lập trình/công nghệ trên IRC

    • Tôi cũng đã ngừng thử Halloy vì thiếu tab. Đến giờ tôi vẫn đang theo dõi issue liên quan

    • Tôi hoàn toàn đồng ý về tính năng tab. Tôi không biết phải làm gì khi muốn xem hơn 2 kênh

    • Nếu muốn dùng theo kiểu giống tab hơn, bạn có thể đặt buffer thành "replace-pane" trong tài liệu cấu hình

  • Halloy vừa là một ứng dụng cực kỳ ấn tượng, vừa là mẫu tham khảo tốt nhất nếu bạn muốn học cách phát triển phần mềm GUI bằng Iced (liên kết GitHub của Iced). Nếu muốn tạo ứng dụng GUI bằng Rust, tôi khuyên bạn nên tham khảo các ứng dụng showcase và ví dụ như Halloy. Nếu có thắc mắc, bạn có thể nhận được sự trợ giúp thân thiện trong cộng đồng Discord (liên kết kênh Discord)

    • Điều thú vị là khi tôi gần như chưa có kinh nghiệm với Rust nhưng muốn xây dựng một ứng dụng iced-rs bằng Claude Code, tôi đã tìm các dự án lớn dùng iced-rs trên GitHub, và Halloy là một trong ba tài liệu tham khảo hàng đầu

    • Cho đến gần đây tôi vẫn băn khoăn vì không có thư viện GUI nào cho Rust thật sự hợp ý. Phần lớn đều là các binding cho những GUI stack khác. Lần tới khi làm việc với Rust, tôi dự định sẽ thử Iced

  • Gần đây tôi bắt đầu cảm thấy các ứng dụng desktop viết bằng Rust xuất hiện nhiều hơn hẳn so với Go hay Java. Phần lớn đều hướng tới đa nền tảng. Tôi đoán đây có thể là một nỗ lực nhằm cạnh tranh với Electron. Tauri cũng được xây dựng bằng Rust. Tôi cũng tò mò điều gì làm Rust trở nên đặc biệt, và vì sao lại không có nhiều ứng dụng desktop viết bằng Python. Mặt khác, dạo gần đây tôi cũng thường thấy các ứng dụng chạy trong terminal được làm bằng typescript và go

    • Hiện tại tôi đang phát triển một client Jellyfin cho desktop phục vụ nghe nhạc bằng Rust. Niềm vui khi viết Rust và độ tin cậy của nó là sức hút rất lớn. Ngay cả khi không có nhiều thời gian, chỉ cần chương trình biên dịch được thì tôi cũng có được mức tự tin nhất định rằng nó sẽ hoạt động. Nếu là Python, có lẽ tôi đã phải vật lộn với lỗi runtime. Hỗ trợ đa nền tảng cũng rất tốt. Không chỉ có các thư viện như iced, mà cả binding cho GTK cũng rất ổn. Vì không cần runtime nên việc phân phối cũng dễ hơn Python rất nhiều. Rust thực sự là một ngôn ngữ rất tốt để làm ứng dụng desktop

    • Tôi đã phát triển ứng dụng macOS từ thời Objective-C. Tôi luôn thích các ứng dụng native, và khi bắt đầu Halloy, mục tiêu của tôi cũng là một ứng dụng native đa nền tảng. Xét ở điểm đó thì Rust cực kỳ phù hợp

    • Câu chuyện về điều gì khiến Rust trở nên đặc biệt được nhắc đến khá thường xuyên. Cá nhân tôi đang thay thế nhiều chương trình Python bằng Rust. Độ khó khi viết không hề cao đến mức khủng khiếp, và tôi từng thấy tiếc vì nhiều ngôn ngữ không liên quan đến Python hay Rust lại thiếu những tính năng quan trọng như sum type. Nếu việc viết mã bằng Rust trở nên khó khăn, thì thường đó là khi bạn đang cố làm những tối ưu hóa mà trong Python vốn đã là bất khả thi hoặc kém hiệu quả. Việc tạo ra một ứng dụng native đã biên dịch là điều cực kỳ hấp dẫn. Tôi cũng có kế hoạch phát hành một ứng dụng desktop viết bằng Rust

    • Ứng dụng desktop viết bằng Python cũng có khá nhiều. Nhưng chẳng hạn Tkinter hiển thị rất xấu trên Linux, còn nếu dùng GTK thì bạn phải tự build bằng minGW hoặc phân phối kèm Cygwin, khá phiền phức

    • Tôi không có kinh nghiệm trực tiếp với Rust, nhưng tôi nghĩ lý do nhiều công cụ CLI và máy chủ được phát triển bằng Go là vì Go mạnh ở đúng những lĩnh vực đó. Làm ứng dụng GUI desktop bằng Go có lẽ sẽ không thú vị lắm. Go hơi dài dòng và không thân thiện với các cấu trúc tính năng hay các tầng trừu tượng phức tạp. Ở khía cạnh này, tôi cảm thấy Rust gần như đối lập với Go

  • Có lẽ vì chuyện hôm qua nên nhiều người đã vào các kênh Libera mà không có lý do gì đặc biệt, chỉ để tự mình trải nghiệm xem IRC có gì hay, nhưng thật lạ là chẳng ai nói gì cả

  • Trước đây tôi dùng Hexchat, nhưng đã chuyển sang halloy hơn một năm nay và rất hài lòng. Nó được cập nhật đều đặn, và trong thời gian tôi dùng đã có nhiều tính năng hiện đại được thêm vào. Dùng cùng soju thì trải nghiệm IRC rất mượt

  • Tôi đã không dùng IRC trong nhiều năm, nhưng nếu phiên bản tôi lúc còn là thiếu niên cách đây 12 năm nhìn thấy thứ này thì hẳn đã cực kỳ phấn khích. Đây là client ngầu nhất mà tôi từng thấy cho tới giờ

  • Tôi tự hỏi liệu có tùy chọn accessibility nào dành cho người thị lực kém không. EFNet muôn năm

    • Hiện vẫn chưa có tùy chọn accessibility. Vì framework GUI nền tảng chưa hỗ trợ. Nhưng nhà phát triển từng nói rằng họ rất muốn bổ sung nó trong tương lai
  • Tôi cực kỳ thích thiết kế tổng thể của Halloy. Tôi đã giới thiệu nó lên HN ít nhất hai lần. Thật sự rất vui khi cuối cùng nó đã lên trang chủ. Chúc dự án tiếp tục duy trì công việc tuyệt vời này

  • Thật sự rất tuyệt. Tôi đang vận hành một máy chủ IRC và tìm một client native đủ tốt để dùng, trong khi hệ sinh thái này gần như đã chững lại suốt thời gian qua, nên lần này tôi nhất định sẽ thử Halloy