Giới thiệu trên HN: Sự hồi sinh của trình duyệt Dillo
(dillo-browser.github.io)- Dillo là một trình duyệt web đồ họa nhanh và nhỏ gọn, hướng tới cả các máy cũ hoặc cấu hình thấp và kết nối chậm; chạy trên Linux, BSD, MacOS, Windows qua Cygwin và Atari
- Kết hợp C/C++, ít phụ thuộc, engine dựng hình thời gian thực riêng và thư viện GUI FLTK để hướng tới mức sử dụng bộ nhớ thấp và dựng hình nhanh ngay cả với các trang lớn
- Hỗ trợ sẵn HTTP, HTTPS, FTP và tệp cục bộ; có thể mở rộng giao thức mới bằng plugin có thể viết bằng bất kỳ ngôn ngữ nào
- Dự án duy trì định hướng hạ thấp rào cản tiếp cận web, coi trọng bảo mật·quyền riêng tư cá nhân và hiệu quả phần mềm
- Bản phát hành mới nhất là 3.2.0; dữ liệu chính được lưu trong kho git riêng và cũng được sao chép lên Codeberg và Sourcehut
Trình duyệt đồ họa nhỏ gọn và nhanh
- Dillo là một trình duyệt web đồ họa nhanh và nhỏ gọn
- Chạy trên Linux, BSD, MacOS, Windows thông qua Cygwin và Atari
-
Cách triển khai
- Được viết bằng C và C++, với ít phụ thuộc
- Triển khai engine dựng hình thời gian thực riêng
- Ngay cả với các trang lớn, mức sử dụng bộ nhớ vẫn thấp và tốc độ dựng hình nhanh
- Sử dụng thư viện GUI FLTK nhanh và gọn nhẹ
-
Tính năng cơ bản và định hướng
- Hỗ trợ HTTP, HTTPS, FTP và tệp cục bộ
- Có thể mở rộng bằng plugin có thể viết bằng bất kỳ ngôn ngữ nào
- Là phần mềm tự do theo giấy phép GPLv3
- Giúp tác giả tuân thủ chuẩn web bằng bug meter
- Mục tiêu là hạ thấp rào cản tiếp cận web, hỗ trợ máy cũ hoặc cấu hình thấp và kết nối chậm, bảo mật và quyền riêng tư cá nhân, cùng hiệu quả phần mềm cao
- Có thể xem cách dùng các tính năng trong User Manual
- Miền
dillo.orgkhông còn do các nhà phát triển Dillo kiểm soát
Hạ tầng dự án chuyển sang tự lưu trữ
- Dillo đang chuyển từ vận hành xoay quanh GitHub sang hạ tầng tự lưu trữ
- Dữ liệu quan trọng được lưu trong kho git do cgit service cung cấp
- Kho được sao chép lên Codeberg và Sourcehut
- Có thể xem mã nguồn tại Git repository
- Các liên kết chính liên quan đến dự án gồm Website, Git, Bug tracker, Mastodon, IRC, Mailing list và Liberapay
Bản phát hành, tài liệu và cách đóng góp
- Có thể tải latest release 3.2.0 và build theo hướng dẫn trong
README.md - Có thể clone trực tiếp các thay đổi mới nhất từ Git repository
-
Tài liệu
- User Manual: Bao quát cách dùng mọi tính năng, được phân phối cùng trình duyệt và có thể đọc cục bộ
- Topic Guide: Bao quát các chủ đề bổ sung không có trong manual, chẳng hạn cách cấu hình Dillo và mpv để mở tệp đa phương tiện từ URL
- Developer Documentation: Bao quát thiết kế và triển khai bên trong trình duyệt, được khuyến nghị cho nhà phát triển
-
Cách đóng góp
Hỗ trợ giao thức mở rộng bằng plugin
- Plugin tương tác qua đầu vào và đầu ra tiêu chuẩn và thêm hỗ trợ giao thức mới
- Các ví dụ plugin được cung cấp gồm
- Có thể xem thêm plugin trong git repositories
- Để thêm plugin mới, chỉ cần gửi email kèm liên kết kho và mô tả ngắn
1 bình luận
Ý kiến trên Hacker News
Bản build chạy tốt trên M1 Mac với macOS 12.7; để cài đặt thì làm theo hướng dẫn macOS: cài gói
brew installvà OpenSSL 3, rồi trước./configurechạyexportđể đặt đường dẫn OpenSSL là đượcSau đó chạy
make,sudo make install,dillolà hoạt động ngay; binary chỉ 1,6MB nhưng vẫn hỗ trợ SSL và rất nhanhGoogle Search dù CSS bị vỡ vẫn dùng được phần nào, nhưng vì không có JavaScript nên đăng nhập Google có vẻ khó
[0] https://github.com/dillo-browser/dillo/blob/master/doc/insta...
[1] https://github.com/dillo-browser/dillo/blob/master/doc/insta...
[2] https://stackoverflow.com/a/77749836
Trên CI có vẻ vẫn được dù không có cờ include, nhưng vì không có máy Mac trực tiếp nên việc kiểm thử cũng có giới hạn
Với phần cứng cấu hình thấp, thật sự cần những trình duyệt nhanh và nhẹ hơn
SBC, Raspberry Pi, hay laptop đã vài năm tuổi ở các phần khác vẫn khá mượt, nhưng hiệu năng trình duyệt lúc nào cũng là điểm nghẽn
Cuối cùng tôi đã phải chấp nhận rằng vì một số yêu cầu mà cần Ryzen 7 và RAM 16GB; điều cay đắng là tải tính toán lớn nhất lại là MS Teams và webmail
Nó chậm đến ngạc nhiên, rối rắm, nhiều lỗi, các tab cũng hay chết, cảm giác như một ví dụ về phần mềm không nên như vậy
Đến giờ tôi vẫn ngạc nhiên là Microsoft lại cho rằng như thế là ổn, và cũng tò mò Slack thì thế nào
Có lẽ vì không có nhiều cạnh tranh nên họ không làm chăm chút hơn
Links cũng hỗ trợ chế độ đồ họa
Một CPU desktop/laptop giá rẻ ở mức vừa phải và RAM 4GB là đủ để chạy MS Teams, và cũng có các mail transfer agent thực dụng và hiệu quả hơn, nên tôi không rõ vì sao nhất thiết phải dùng webmail
Xét tình hình hiện tại, tôi rất vui khi nghe tin Dillo được tiếp tục
Tôi có hai chiếc netbook Intel Atom N270 khoảng năm 2009 và RAM 1GB; Firefox trên đó nặng một cách vô lý, còn Dillo hẳn sẽ chạy rất tốt
Trước đây khi xem các tài liệu không có CSS nặng, tôi cũng dùng Dillo ngay trên desktop chính; trong lúc 20–40 tab Firefox ngốn rất nhiều RAM thì Dillo thường chỉ quanh 100MB
Vì không có JavaScript engine nên tôi cũng dùng Dillo khi mở các liên kết đáng ngờ, và cảm thấy đây là một phần mềm tuyệt vời mà tôi đã dùng tốt hơn 15 năm
Dillo không có sandbox cho những phần phức tạp thường bị tấn công như giải mã ảnh, phân tích HTML/CSS, giao thức mạng, truy cập file cục bộ
Thời đại học, ở nhà tôi dùng một chiếc Pentium 4 cũ; với trình duyệt thông thường, mở một tab phải đợi khoảng 30 giây
Vì vậy tôi chủ yếu dùng Dillo, còn bài viết nào cần JavaScript thì đi qua Google cache rồi chuyển sang Firefox
Mạng cũng chậm, nên việc chỉ tải HTML giúp ích rất nhiều, và Dillo trong suốt nhiều năm luôn cực kỳ nhanh
Nó cũng rất nhẹ
doas /sbin/modprobe zramdoas /sbin/zramctl --find --size 1024Mdoas /sbin/mkswap /dev/zram0doas /sbin/swapon /dev/zram0 --priority -1Dù không phải Firefox, đáng tiếc là với các tác vụ dạng single-page bắt buộc JavaScript như trang hành chính nhà nước, Luakit có thể là lựa chọn ổn
Gần đây tôi kiếm được một chiếc netbook Intel Atom và đang tìm một hệ điều hành nhẹ mà dùng được
Tôi cũng đã thử Debian nhưng Firefox quá chậm; có lẽ giờ đáng để thử lại với Dillo
Hệ thống mở rộng khá thú vị, gợi nhớ đến các script CGI cục bộ của w3m
CGI cục bộ của w3m có thể được dùng cho trình xem trang man, hệ thống bookmark, và triển khai thêm giao thức khi kết hợp với
urimethodmapDillo dường như cũng có plugin man và plugin DPI cho bookmark theo cách tương tự, và có vẻ cũng hỗ trợ các scheme tùy chỉnh như
man:Tôi không biết ngoài w3m còn có trình duyệt nào hỗ trợ cách này, và tôi đang làm một dự án cá nhân đặt cả HTTP lên trên một cấu trúc plugin tương tự, nên giờ có thêm một ví dụ tham khảo thứ hai
[0]: https://dillo-browser.github.io/old/dpi1.html
[1]: https://github.com/dillo-browser/dillo-plugin-man
Có các plugin triển khai những “website” như
file:,vsource:,ftp:, và cũng có các plugin đảm nhiệm những chức năng như xử lý cookie, tải xuống, bookmarkVì là tiến trình riêng, việc tải xuống vẫn tiếp tục ngay cả khi đóng trình duyệt
[1]: https://github.com/dillo-browser/dillo/tree/master/dpi
Trong
~/.dillo/dpidrc, các giao thức được liên kết với binary plugin; với plugin bên ngoài, có thể hỗ trợ cảgemini:,gopher:, thậm chígit:Cho đến gần đây HTTPS cũng được triển khai dưới dạng plugin DPI, nhưng hiện đã được đưa vào lõi trình duyệt
Tôi đã tạo một thư viện Go mỏng để viết plugin Dillo (https://github.com/boomlinde/dpi), và cũng tạo plugin cho giao thức Gemini (https://github.com/boomlinde/gemini.filter.dpi)
Theo tôi biết, trong Dillo gần đây https cũng được triển khai bằng plugin DPI
Đề xuất thử liên hệ với Renato Bravo
https://www.youtube.com/channel/UCuklruLsO-CFoKK_rjNXrXg
https://www.youtube.com/watch?v=A6mb9qt2-3o
Trong video trên, Renato nói “ese es mi compañero Jorge”, tức là “người đó là đồng nghiệp Jorge của tôi”
Tôi có tìm thấy Renato Bravo trên LinkedIn, nhưng không biết có phải cùng một người không
Nếu là người cùng vùng Valparaíso, Chile với Jorge thì có thể là người này
Tôi không dùng LinkedIn, nhưng sẽ tốt nếu ai đó có thể nhắn tin cho ông ấy
[1]: https://cl.linkedin.com/in/renatobravo
Trước đây tôi thường kiểm thử bằng Dillo để xem trang có bị vỡ hoàn toàn không, nhưng Dillo đã quá cũ nên tôi chuyển sang NetSurf, w3m, elinks
Việc nó hồi sinh là điều đáng khích lệ, đặc biệt với các hệ thống tiêu thụ điện thấp
Tuy vậy, hơi tiếc khi chuyển từ kho Mercurial tự host sang kho Git thuộc sở hữu của tập đoàn lớn Mỹ Microsoft GitHub, dù vậy người bảo trì nói sẽ nhận patch qua email nên không bị buộc phải tạo tài khoản hay đồng ý điều khoản
Có thể tin rằng GitHub ít nhất vẫn sẽ tồn tại trong 5–10 năm tới, nên có thể đặt thông báo chuyển hướng trên trang web chính
Dù vậy, tôi đồng ý rằng chuyển sang tự host hoặc một forge liên hợp sẽ tốt hơn
Có một issue liên quan, và vấn đề hiện tại là với tài khoản miễn phí trên các forge khác như Codeberg thì không có cách chạy pipeline CI trên các nền tảng khác như macOS
Về dài hạn, tôi muốn có phần cứng thật để dựng runner riêng và kiểm thử trên nhiều kiến trúc
[1]: https://github.com/dillo-browser/dillo/issues/39
Dự án cũ tự host cả máy chủ mail nên tạo ra một điểm lỗi đơn lẻ rất lớn, và thực tế đã thất bại nặng nề, vì vậy tôi muốn tránh điều đó
Tôi cũng đang nghĩ đến mailing list để nhận patch qua email, nhưng ngoài sourcehut và googlegroups thì không biết nhiều nơi cung cấp miễn phí
Tôi nhớ trước đây từng dùng Dillo trên Puppy Linux dạng Live CD
Tôi tò mò compiler tối thiểu mà dự án nhắm đến là gì, có kế hoạch dài hạn không, có fuzzing không, và có định chuyển sang hệ thống build hiện đại như CMake không
Kế hoạch dài hạn trước hết là giữ cho Dillo không chết và ngăn nó bị gỡ khỏi các bản phân phối
Sau đó còn tùy vào thời gian rảnh có thể dành được, nhưng ít nhất tôi sẽ cố duy trì bảo trì
Trước khi fuzzing, nếu thêm các bộ kiểm thử trình duyệt khác thì có lẽ sẽ bắt được nhiều vấn đề render; đặc biệt, fuzzing có thể thú vị với parser HTML/CSS tự viết
Khi thử sửa
configure.ac, tôi thấy việc nhắm đến nhiều nền tảng rất đau đầu, và cross-compile cũng đang bị hỏngCần kiểm tra hỗ trợ CMake trên các hệ thống khác ra sao rồi mới xem có thể gỡ bỏ an toàn họ Automake không, nhưng tôi không muốn đưa thay đổi lớn vào trước bản phát hành 3.1
Tôi lấy mã từ GitHub về build thử thì site mặc định vẫn là
dillo.org, và khi cố truy cập thì trình duyệt bị chếtduckduckgo.comcũng chết tương tự, có vẻ liên quan đến lỗi assert của OpenSSLKhi biên dịch lại với mbedTLS thì có thể truy cập các site đó
Tôi cũng thử đăng nhập vào thread này để trả lời, nhưng dù nhập tên người dùng và mật khẩu rồi đăng nhập, vẫn tiếp tục ở trạng thái đã đăng xuất mà không có lỗi nào
Nếu bạn mở một issue trên GitHub kèm thông tin hệ thống và phiên bản OpenSSL, chúng tôi có thể thử tái hiện
Vấn đề đăng nhập nhiều khả năng là do cookie đang bị tắt
https://dillo-browser.github.io/old/dillo3-help.html
https://dillo-browser.github.io/old/Cookies.txt
Dillo mặc định vô hiệu hóa mọi cookie, nên khuyến nghị là cho phép thủ công theo từng site
echo "news.ycombinator.com ACCEPT" >> ~/.dillo/cookies.txtSau đó chỉ cần khởi động lại daemon DPI để đọc lại cấu hình cookie
dpidc stopThật vui khi thấy Dillo vẫn còn được quan tâm
Tôi có khá nhiều plugin Dillo trước đây lấy được từ scuttlebutt
Gồm
dillo-adb,dillo-dat,dillo-finger,dillo-git,dillo-gopher,dillo-gemini,dillo-ipfs,dillo-ssb,dillo-ytdl; nếu muốn, tôi có thể nén zip gửi để các bạn fork và tiếp tục phát triển trong dự ánhttps://celehner.com/projects.html#dillo-plugins
Tôi cũng đã trao đổi với Charles về việc lưu một bản sao trên GitHub dưới tổ chức dillo-browser
Bạn cũng có thể mở issue và upload để chúng tôi lưu một bản sao file zip
Thật tự hào khi thấy công việc bắt nguồn từ những hạt giống đã gieo từ rất lâu trước đây vẫn tiếp tục
[1]: https://sources.debian.org/src/gzilla/0.1.5-3/bytesink.doc/
Có lẽ tôi có thể giúp liên hệ với Jorge