8 điểm bởi GN⁺ 8 ngày trước | 2 bình luận | Chia sẻ qua WhatsApp
  • Công cụ web engine Servo dựa trên Rust được phát hành trên crates.io dưới dạng crate v0.1.0, mang lại một lựa chọn nhẹ và hiệu năng cao để nhúng công nghệ web vào ứng dụng
  • Với bản phát hành này, giờ đây có thể tích hợp trực tiếp Servo dưới dạng thư viện; trình duyệt demo servoshell không được phát hành riêng trên crates.io
  • Kể từ bản phát hành GitHub đầu tiên vào tháng 10 năm 2025, quy trình phát hành đã bước vào giai đoạn ổn định sau 5 lần phát hành
  • Phiên bản hiện tại chưa phải bản 1.0 chính thức, và số phiên bản đang được nâng dần dựa trên độ ổn định API cũng như mức độ đáp ứng nhu cầu người dùng
  • Phiên bản LTS cũng được cung cấp, giúp các môi trường nhúng dài hạn vẫn nhận được cập nhật bảo mật và hỗ trợ migration

Phát hành Servo 0.1.0 và công bố trên crates.io

  • Nhóm Servo đã phát hành phiên bản v0.1.0 của crate servo, lần đầu tiên được phân phối qua crates.io
    • Bản phát hành này cho phép nhúng Servo vào ứng dụng dưới dạng thư viện
    • Trình duyệt demo servoshell không được đăng lên crates.io
  • Sau bản phát hành GitHub đầu tiên vào tháng 10 năm 2025, quy trình phát hành đã đi qua 5 lần triển khai và đã đạt đến giai đoạn ổn định
    • Nút thắt lớn nhất hiện nay là bài blog được viết hằng tháng, và lần này nhóm đã tiến hành phát hành mà không chờ phần đó
    • Bản cập nhật hằng tháng sẽ được đăng riêng sau
  • Phiên bản này không phải bản 1.0 chính thức, và cuộc thảo luận về định nghĩa của 1.0 vẫn đang diễn ra
    • Việc tăng số phiên bản phản ánh mức độ tự tin ngày càng cao vào tính ổn định của API nhúng và khả năng đáp ứng nhu cầu người dùng
  • Lần này Servo cũng cung cấp phiên bản hỗ trợ dài hạn (LTS)
    • Do các bản phát hành hằng tháng có thể xuất hiện thay đổi phá vỡ tương thích, một số bên nhúng có thể chọn nâng cấp lớn theo chu kỳ nửa năm
    • Phiên bản LTS cung cấp cập nhật bảo mật và hướng dẫn migration; chi tiết được nêu trong phần LTS của Servo Book

2 bình luận

 

Rust đã ra đời để tạo ra Servo, vậy mà bản thân Servo mới chỉ ở mức v0.1.0 còn Rust thì đã thành công vang dội rồi.
Có lẽ điều đó cho thấy việc làm một engine trình duyệt khó đến mức nào.

 
Ý kiến trên Hacker News
  • Mình đã tổng hợp một vài ghi chú tham khảo
    Tài liệu trên docs.rs vẫn đang được build, nhưng tài liệu cho bản RC gần đây thì đã có thể xem được
    Ví dụ nhúng Servo của dự án Slint cho thấy rất rõ cách dùng embedding API, và cũng có thể áp dụng dễ dàng cho các framework GUI khác dựa trên wgpu
    StyloWebRender cũng đã được công bố trên crates.io, và cũng hữu ích khi dùng độc lập
    Trong tương lai, dự kiến sẽ cập nhật theo chu kỳ phát hành hàng tháng

    • Slint thực sự là một dự án rất tuyệt. Tuy vậy, việc không thể chèn widget một cách động trong mã nguồn là một điểm đáng tiếc đối với trường hợp sử dụng của mình
  • Mình đã thử tạo một công cụ CLI dùng crate này để render trang web thành ảnh, tên là "servo-shot"
    Sau cargo build, có thể chạy bằng lệnh ./target/debug/servo-shot https://news.ycombinator.com/
    Ảnh được tạo ra có thể xem tại đây

    • Nhìn vào mã nguồn thì có vẻ LLM cũng thích phong cách Rust đơn giản và cấp cao. Dùng các kiểu giá trị như String, smart pointer đếm tham chiếu, thoải mái clone, v.v. để không phải vật lộn với borrow checker. Với góc nhìn của người chuyển sang từ Python, TypeScript hay Java thì cách này năng suất hơn hẳn
    • Ví dụ rất hay. Nhưng mình hơi thắc mắc liệu những thứ như xử lý cookie có cần chỉnh riêng không. Không rõ chỉ cần truyền con trỏ cookiejar là đủ chưa
    • Rất hữu ích. Có vẻ mình dùng được ngay. Mình tò mò không biết Servo có hoàn toàn là 100% Rust và không phụ thuộc vào hệ thống bên ngoài hay không (ví dụ chỉ cần rustls là đủ?). Cũng muốn biết có render được JavaScript hay WebGL không. Đặc biệt là hỗ trợ các ứng dụng 3D như ThreeJS sẽ rất hợp với trường hợp sử dụng của mình
  • Thước đo thật sự của năng lực lập trình AI là nó có thể xây dựng hạ tầng an toàn và hiện đại mà ai cũng cần nhưng chẳng ai chịu tài trợ nhanh đến mức nào
    Nếu Anthropic muốn quảng bá Mythos, sẽ rất hay nếu họ công bố thứ như nhật ký đóng góp cho Servo. Điều đó mới thật sự gắn với mục tiêu an toàn hạ tầng
    Sẽ ý nghĩa hơn nếu cấp quyền truy cập mô hình không giới hạn cho những người đóng góp cốt lõi của Servo hay Rust, rồi xem dự án tiến bộ ra sao qua từng bản phát hành

    • Không ai cần hạ tầng vibe-coded cả
    • Tuy nhiên, Servo có chính sách cấm đóng góp bằng AI, nên có thể không phù hợp cho kiểu thử nghiệm này
    • Vấn đề thật sự của loại hạ tầng này không phải là phát triển ban đầu mà là tính bền vững trong bảo trì. LLM mạnh ở khâu tạo nguyên mẫu nhanh, nhưng yếu trong việc duy trì ổn định các dự án lớn và cũ trong thời gian dài
    • Lấy việc sao chép Chromium làm benchmark thì sao? Sao chép chính Rust cũng có vẻ thú vị. Nếu có thêm nhiều ngôn ngữ lân cận với Rust thì sẽ rất có ích cho nhân loại
    • Cuối cùng thì điều quan trọng vẫn là tài trợ cho các dự án quan trọng. Nhất là khi các tập đoàn lớn đang kiếm lợi từ chúng thì lại càng nên như vậy
  • Nếu bạn đang dùng trình duyệt để tạo PDF, thì đáng để xem qua Typst của Rust
    Có thể dùng dưới dạng CLI bất kể ngôn ngữ nào, và dù sẽ mất chút thời gian để quen với cú pháp DSL, dạo này nhờ AI nên có thể làm quen khá nhanh

    • Hôm nay mình đã dùng nó để tự động hóa báo cáo, và Claude Code hỗ trợ khá tốt. Đôi lúc vẫn phải chỉ trực tiếp vào tài liệu Typst, nhưng nhìn chung là ổn
    • Mình thường nghe nhắc đến nó như một lựa chọn thay thế LaTeX, chắc lần này phải xem kỹ hơn mới được
    • Gần đây mình đã triển khai một hệ thống tạo thư PDF tự động bằng Typst. Với tư cách là người quen dùng (La)TeX, mình rất bất ngờ về tốc độ của nó. Nó đủ nhanh ngay cả trong chu kỳ xử lý một HTTP request. Cú pháp cũng dễ học. Dù chưa tinh vi bằng TeX, nó vẫn rất thực dụng. Chỉ là có vẻ hiện chưa có gì thay thế cho các tính năng đồ họa như TikZ
  • Mình từng thắc mắc liệu có bảng nào kiểu caniuse.com để xem danh sách RFC đã được triển khai trong Servo hay không. Có trang “experimental features”, nhưng thiếu chi tiết

  • Mình tò mò cụ thể Servo có thể làm được gì. Nếu nói là “công nghệ web”, có phải nghĩa là có thể nhúng trình duyệt web vào trong ứng dụng desktop không?

    • Nó là một engine trình duyệt thay thế, giống như Ladybird
    • Đúng vậy. Servo là một webview engine có thể nhúng, kiểu như Chromium Embedded Framework (CEF).
      Electron = Node.js + CEF
      Tauri = Rust + webview
      Tauri đang vận hành một nhánh thử nghiệm dùng Servo làm webview tích hợp. Hiện tại nó phụ thuộc vào webview của hệ thống (Edge trên Windows, Safari trên macOS, webkit-gtk trên Linux)
  • Khi đọc câu “vẫn chưa phải 1.0 và đang bàn về ý nghĩa của nó”, mình đã tự hỏi liệu phiên bản crate này có thể tiến đến 1.0 được không

    • Vấn đề cốt lõi trong quản lý phiên bản của Rust là ý nghĩa của phiên bản 0.x. 0.3.5 thì tương thích với 0.3.6, nhưng không tương thích với 0.4.0 hay 1.0.0. Tức là khi major bằng 0, minor lại đóng vai trò major. Vì thế nhiều dự án cứ dừng ở 0.x. Đây là vấn đề phát sinh vì Cargo không tuân theo phần này của semver. Cá nhân mình xem đây là một trong những điều khó chịu nhất, nhưng cộng đồng Rust nhìn chung không coi đó là vấn đề
    • Nhiều thư viện Rust dùng 0-based versioning. Liên kết đó giải thích rõ hơn
    • Nếu muốn chuyển các ứng dụng Microsoft sang Servo thì sao? Đơn giản thôi — tăng mức dùng RAM mặc định lên 5GB là được. Thế là họ sẽ áp dụng ngay (giọng đùa)
  • Mình tìm thử xem có tích hợp Tauri hay không thì thấy có tauri-runtime-verso. Nhưng so với Electron về kích thước hay hiệu năng thế nào thì mình vẫn chưa rõ. Có vẻ sẽ hữu ích khi mình phát hành ứng dụng của mình lên Linux/flathub

  • Mình tò mò crate này có thể dùng vào việc gì

  • Khi Servo sẵn sàng, mình định tích hợp nó vào qutebrowser mà mình rất yêu thích