[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-rust-devs-building-browsers-probes-and-libs-zh":3,"article-related-rust-devs-building-browsers-probes-and-libs-zh":33,"series-industry-6954c9f8-1459-4248-90b9-7f9a5e51eedb":86},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":25,"views":29,"created_at":30,"published_at":31,"topic_cluster_id":32},"6954c9f8-1459-4248-90b9-7f9a5e51eedb","rust-devs-building-browsers-probes-and-libs-zh","Rust 開發者在做瀏覽器、探針和函式庫","\u003Cp data-speakable=\"summary\">\u003Ca href=\"\u002Fnews\u002Frust-2026-turns-cpp-pain-into-safer-systems-zh\">Rust\u003C\u002Fa> 論壇第 22 週討論了瀏覽器引擎、gRPC 健康探針、BTree 平行搜尋與新錯誤函式庫，內容很實作。\u003C\u002Fp>\u003Cp>這週的 \u003Ca href=\"https:\u002F\u002Fusers.rust-lang.org\u002F\" target=\"_blank\" rel=\"noopener\">Rust Programming Language Forum\u003C\u002Fa> 很像工程日常。有人做瀏覽器引擎。有人做 gRPC 健康探針。也有人在修 Bevy 文件，順手研究 BTree 平行搜尋。\u003C\u002Fp>\u003Cp>說真的，這種串文比產品發表會更有料。因為它直接告訴你，\u003Ca href=\"\u002Ftag\u002Frust\">Rust\u003C\u002Fa> 社群現在在忙什麼。不是喊口號。是處理記憶體、渲染、部署和錯誤處理這些硬問題。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>項目\u003C\u002Fth>\u003Cth>類型\u003C\u002Fth>\u003Cth>重點\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJohannaWeb\u002FAurora\" target=\"_blank\" rel=\"noopener\">Aurora\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>Browser engine\u003C\u002Ftd>\u003Ctd>用了 \u003Ccode>wgpu\u003C\u002Fcode> 29.0.3、\u003Ccode>vello\u003C\u002Fcode> 0.9.0、\u003Ccode>rustls\u003C\u002Fcode> 0.23\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnerjs\u002Fgrpcknock\" target=\"_blank\" rel=\"noopener\">grpcknock\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>CLI health probe\u003C\u002Ftd>\u003Ctd>檢查 \u003Ccode>grpc.health.v1.Health\u002FCheck\u003C\u002Fcode>，然後回傳 exit code\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fbevyengine.org\u002F\" target=\"_blank\" rel=\"noopener\">Bevy\u003C\u002Fa> 文件工作\u003C\u002Ftd>\u003Ctd>文件與修 bug\u003C\u002Ftd>\u003Ctd>有人在補一個很冷門的引擎區塊\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Parallel BTree search\u003C\u002Ftd>\u003Ctd>效能實驗\u003C\u002Ftd>\u003Ctd>研究多執行緒搜尋大型 BTree 是否划算\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>論壇串文才看得到真實工作量\u003C\u002Fh2>\u003Cp>每週的「你在做什麼」串文，通常比新聞稿更誠實。它不會硬把每個專案包裝成神話。它只是把大家真的在寫的東西攤開來看。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779778580647-bc0j.png\" alt=\"Rust 開發者在做瀏覽器、探針和函式庫\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這週的內容很明顯。Rust 還是吸引那些在乎控制權、正確性和效能的人。你會看到 browser infrastructure、Kubernetes 工具、資料結構實驗，還有函式庫\u003Ca href=\"\u002Fnews\u002F5-ways-coinquant-is-built-for-ai-agents-zh\">設計\u003C\u002Fa>。這種組合很重要，因為它說明 Rust 已經站穩在高風險區域。\u003C\u002Fp>\u003Cp>第一個很吸睛的專案是 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJohannaWeb\u002FAurora\" target=\"_blank\" rel=\"noopener\">Aurora\u003C\u002Fa>。這是一個用 Rust 寫的 browser engine。作者也講得很直白，它不是 Servo。雖然會借用附近生態的想法和 crate，但方向是自己的。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>rustls\u003C\u002Fcode> 0.23 處理 TLS\u003C\u002Fli>\u003Cli>\u003Ccode>wgpu\u003C\u002Fcode> 29.0.3 處理 GPU\u003C\u002Fli>\u003Cli>\u003Ccode>vello\u003C\u002Fcode> 0.9.0 處理向量渲染\u003C\u002Fli>\u003Cli>\u003Ccode>html5ever\u003C\u002Fcode> 0.39.0 和 \u003Ccode>markup5ever\u003C\u002Fcode> 0.39.0 處理 HTML parsing\u003C\u002Fli>\u003Cli>\u003Ccode>cssparser\u003C\u002Fcode> 0.37.0 和 \u003Ccode>selectors\u003C\u002Fcode> 0.38.0 處理樣式\u003C\u002Fli>\u003Cli>\u003Ccode>winit\u003C\u002Fcode> 0.30.13 處理視窗\u003C\u002Fli>\u003C\u002Ful>\u003Cp>你看這堆依賴，就知道 browser engine 為什麼難搞。它不是單一問題。它是很多問題疊在一起。解析、排版、渲染、網路、安全性，全都要一起跑。\u003C\u002Fp>\u003Cp>Rust 的價值在這裡很明顯。它不是幫你把事情變簡單。它是幫你把 ownership 和 memory 的邊界寫清楚。這對大型系統很重要，因為程式一長大，模糊的地方就會開始咬人。\u003C\u002Fp>\u003Ch2>小工具常常比大專案更實用\u003C\u002Fh2>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnerjs\u002Fgrpcknock\" target=\"_blank\" rel=\"noopener\">grpcknock\u003C\u002Fa> 這個東西很直接。它是一個 gRPC health-check probe。它會呼叫標準的 \u003Ccode>grpc.health.v1.Health\u002FCheck\u003C\u002Fcode>，然後用 exit code 告訴外部系統服務健不健康。\u003C\u002Fp>\u003Cp>這種設計很適合 Kubernetes probes，也能接到 \u003Ca href=\"\u002Ftag\u002Fdocker\">Docker\u003C\u002Fa> 的 \u003Ccode>HEALTHCHECK\u003C\u002Fcode>。不用再寫一層黏合程式。也不用為了探針去拉另一個語言的 binary。講白了，就是少一個維護點。\u003C\u002Fp>\u003Cp>如果你的服務本來就是 Rust 寫的，我也會偏向這種做法。探針和主服務用同一套 toolchain，build pipeline 會比較單純。部署時出問題，也比較好查。\u003C\u002Fp>\u003Cblockquote>“If your service is already written in Rust, I’d rather build the probe with the toolchain that’s already there than pull a binary from another ecosystem just for a healthcheck.” — nerjs, Rust Programming Language Forum\u003C\u002Fblockquote>\u003Cp>這句話很實在。它講的不是理想模型。它講的是工程現場。很多團隊最後卡住的，不是功能本身，而是工具鏈不一致。probe 這種小東西，反而最容易暴露這些摩擦。\u003C\u002Fp>\u003Cp>所以別小看這類 CLI。它們不會上台領獎。可是在容器化部署裡，它們可能天天都在跑。這種工具一旦穩了，整個維運流程就會少很多雜訊。\u003C\u002Fp>\u003Ch2>效能問題還是 Rust 的重頭戲\u003C\u002Fh2>\u003Cp>串文裡另一個有意思的點，是有人在想 \u003Ca href=\"https:\u002F\u002Fdoc.rust-lang.org\u002Fstd\u002Fcollections\u002Fstruct.BTreeMap.html\" target=\"_blank\" rel=\"noopener\">BTree\u003C\u002Fa> 能不能平行搜尋。問題看起來很簡單。實際上很難。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779778571616-jolk.png\" alt=\"Rust 開發者在做瀏覽器、探針和函式庫\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>因為你一旦切到多執行緒，事情就變成另一種算式。你要算 thread overhead。你要算 cache locality。你還要算資料夠不夠大。樹夠大，平行化才可能有感。樹太小，反而虧。\u003C\u002Fp>\u003Cp>這很 Rust。先從資料結構開始。然後立刻碰到執行緒協調和記憶體行為。很多時候，效能不是看執行緒數量，而是看你有沒有把工作切對。\u003C\u002Fp>\u003Cul>\u003Cli>單執行緒搜尋，協調成本最低\u003C\u002Fli>\u003Cli>超大的 BTree，才可能吃到平行化好處\u003C\u002Fli>\u003Cli>thread overhead 常常會吃掉收益\u003C\u002Fli>\u003Cli>cache locality 有時比執行緒數更重要\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種實驗就算最後答案是「不划算」，也很有價值。因為它能直接排除一條錯路。效能工程最怕的不是慢，是大家一直猜。\u003C\u002Fp>\u003Cp>我覺得這類討論很像 Rust 社群的底色。大家不太愛喊空話。比較常做的是量測、比較、再調整。這比嘴砲有效多了。\u003C\u002Fp>\u003Ch2>函式庫和文件，才是生態系的骨架\u003C\u002Fh2>\u003Cp>論壇裡的 \u003Ca href=\"https:\u002F\u002Fusers.rust-lang.org\u002Fu\u002Fkpreid\" target=\"_blank\" rel=\"noopener\">kpreid\u003C\u002Fa> 同時在做三件事。修 Rust bug。補 \u003Ca href=\"https:\u002F\u002Fbevyengine.org\u002F\" target=\"_blank\" rel=\"noopener\">Bevy\u003C\u002Fa> 文件。還有做新的 error-handling library。這清單很 Rust。很雜。也很真實。\u003C\u002Fp>\u003Cp>Bevy 的文件工作特別有意思。因為文件常常是專案能不能被更多人用的分水嶺。功能做出來不算完。大家看得懂，才真的能用。很多 \u003Ca href=\"\u002Fnews\u002Fopenai-funding-180b-13-rounds-zh\">open\u003C\u002Fa> source 專案的問題，不是功能少，是心智模型沒講清楚。\u003C\u002Fp>\u003Cp>新的 error library 也說明另一件事。Rust 雖然已經很重視錯誤處理，但大家還是會一直試不同做法。有人想要更簡潔。有人想要更明確。有人想要更適合小專案。這些需求本來就不會只有一種答案。\u003C\u002Fp>\u003Cp>這裡可以看出一個很實際的事實。生態系不是只靠大框架撐起來。文件、錯誤處理、bug fix 這些看起來不炫的工作，才是讓工具能長期活下去的地方。\u003C\u002Fp>\u003Ch2>這週的重點，其實很一致\u003C\u002Fh2>\u003Cp>如果要把這週串文濃縮成一句話，我會說：Rust 開發者還是在做那些不能出包的東西。browser engine、health probe、BTree 實驗、文件修補、error library，全都指向同一件事。\u003C\u002Fp>\u003Cp>它們要能在 production 裡安靜運作。也要能在 \u003Ca href=\"\u002Ftag\u002Fcode-review\">code review\u003C\u002Fa> 裡被看懂。這兩件事都不容易。尤其是當專案開始變大，任何模糊地帶都會變成未來的技術債。\u003C\u002Fp>\u003Cp>所以這種論壇串文很值得看。它不是在講願景。它是在看 Rust 社群真正怎麼做事。我自己會更關注小工具那一類，因為它們最容易變成日常工作流的一部分。\u003C\u002Fp>\u003Cp>如果 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnerjs\u002Fgrpcknock\" target=\"_blank\" rel=\"noopener\">grpcknock\u003C\u002Fa> 這種 probe 開始被更多容器化 Rust 服務採用，那就代表一件事：Rust 不只在寫主服務，也在吃掉周邊工具的工作。這比單純的 demo 更有意思。\u003C\u002Fp>\u003Cp>接下來我會想看兩件事。第一，Aurora 這類 browser engine 能不能持續往前推。第二，小型 CLI 工具會不會在 Rust 服務部署裡變成標配。這兩條線，會比口號更能看出 Rust 的實際走向。\u003C\u002Fp>","Rust 論壇第 22 週討論了瀏覽器引擎、gRPC 健康探針、BTree 平行搜尋與新錯誤函式庫，內容很實作。","users.rust-lang.org","https:\u002F\u002Fusers.rust-lang.org\u002Ft\u002Fwhats-everyone-working-on-this-week-22-2026\u002F140249",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779778580647-bc0j.png","industry","zh","12902c7b-bc1f-41f9-b605-18a5ca953dd0",[17,18,19,20,21,22,23,24],"Rust","Rust Forum","browser engine","gRPC health probe","BTree","Bevy","error handling","systems programming",[26,27,28],"Rust 論壇第 22 週的內容很雜，但都很實作。","Aurora 顯示 Rust 仍在碰 browser engine 這類高複雜度系統。","grpcknock 這種小工具，可能比大專案更快進入日常工作流。",5,"2026-05-26T06:55:38.527953+00:00","2026-05-26T06:55:38.51+00:00","caa87b65-9bbc-46fe-bba8-4f4158dd2d8b",{"tags":34,"relatedLang":45,"relatedPosts":49},[35,37,39,41,43],{"name":17,"slug":36},"rust",{"name":19,"slug":38},"browser-engine",{"name":20,"slug":40},"grpc-health-probe",{"name":18,"slug":42},"rust-forum",{"name":21,"slug":44},"btree",{"id":15,"slug":46,"title":47,"language":48},"rust-devs-building-browsers-probes-and-libs-en","Rust devs are building browsers, probes, and libs","en",[50,56,62,68,74,80],{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":13},"69002c63-177a-4723-9e63-d28506f08edd","openai-ads-sensitive-chats-policy-zh","OpenAI把廣告擋在敏感對話外是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781051578409-en02.png","2026-06-10T00:32:23.404084+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":13},"ea98a8c9-ebe1-4258-8a2b-b0d82b25deed","ai-bootlegs-streaming-royalties-stick-figure-zh","AI bootlegs 正在抽走串流版稅","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781050681742-3rdh.png","2026-06-10T00:17:31.017287+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":13},"20d0b5fc-a363-481d-86b2-e30276a49e92","amd-microsoft-windows-ml-acceleration-zh","AMD 與 Microsoft 把 Windows ML 推進 GPU 與 N…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781047980407-vd5p.png","2026-06-09T23:32:31.304436+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":13},"9a0692ba-a9c5-42eb-823d-8a0e6e6ae3fc","openai-ipo-filing-turns-hype-into-scrutiny-zh","OpenAI IPO 讓神話變審核","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781042614962-bj12.png","2026-06-09T22:03:04.524304+00:00",{"id":75,"slug":76,"title":77,"cover_image":78,"image_url":78,"created_at":79,"category":13},"40d4f012-36b6-4b8f-b470-30242a0b8483","skatteetaten-public-sector-ai-should-be-judged-by-outcomes-zh","Skatteetaten 證明公部門 AI 應該看成果，不是看噱頭","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781038986405-p8cf.png","2026-06-09T21:02:32.1198+00:00",{"id":81,"slug":82,"title":83,"cover_image":84,"image_url":84,"created_at":85,"category":13},"f937e16b-7b3c-4ec8-b9f6-2b6031c6892c","openai-ipo-filing-wall-street-test-zh","OpenAI IPO 登場，華爾街先看這 5 件事","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781032675072-oq1m.png","2026-06-09T19:17:23.187013+00:00",[87,92,97,102,107,112,117,122,127,132],{"id":88,"slug":89,"title":90,"created_at":91},"ee073da7-28b3-4752-a319-5a501459fb87","ai-in-2026-what-actually-matters-now-zh","2026 AI 真正重要的事","2026-03-26T07:09:12.008134+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"83bd1795-8548-44c9-9a7e-de50a0923f71","trump-ai-framework-power-speech-state-preemption-zh","川普 AI 框架瞄準電力、言論與州權","2026-03-26T07:12:18.695466+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"ea6be18b-c903-4e54-97b7-5f7447a612e0","nvidia-gtc-2026-big-ai-announcements-zh","NVIDIA GTC 2026 重點拆解","2026-03-26T07:14:26.62638+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"4bcec76f-4c36-4daa-909f-54cd702f7c93","claude-users-spreading-out-and-getting-better-zh","Claude 用戶更分散，也更會用","2026-03-26T07:22:52.325888+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"bd903b15-2473-4178-9789-b7557816e535","openclaw-raises-hard-question-for-ai-models-zh","OpenClaw 逼問 AI 模型價值","2026-03-26T07:24:54.707486+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"eeac6b9e-ad9d-4831-8eec-8bba3f9bca6a","gap-google-gemini-checkout-fashion-search-zh","Gap 把結帳搬進 Gemini","2026-03-26T07:28:23.937768+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"0740e53f-605d-4d57-8601-c10beb126f3c","google-pushes-gemini-transition-to-march-2026-zh","Google 把 Gemini 轉換延到 2026 年 3…","2026-03-26T07:30:12.825269+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"e660d801-2421-4529-8fa9-86b82b066990","metas-llama-4-benchmark-scandal-gets-worse-zh","Meta Llama 4 分數風波又擴大","2026-03-26T07:34:21.156421+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"183f9e7c-e143-40bb-a6d5-67ba84a3a8bc","accenture-mistral-ai-sovereign-enterprise-deal-zh","Accenture 攜手 Mistral AI 賣主權 AI","2026-03-26T07:38:14.818906+00:00",{"id":133,"slug":134,"title":135,"created_at":136},"191d9b1b-768a-478c-978c-dd7431a38149","mistral-ai-faces-its-hardest-year-yet-zh","Mistral AI 迎來最硬的一年","2026-03-26T07:40:23.716374+00:00"]