ServoMozilla 的瀏覽器引擎
Servo 是一個 Web 瀏覽器引擎的原型,使用 Rust 語言開發(fā),當(dāng)前基于 OS X 和 Linux 開發(fā)。
Servo瀏覽器引擎的目標(biāo)是為開發(fā)者提供最大的靈活性。為了實現(xiàn)這個目的,它必須提供穩(wěn)定的API和ABI。它使用Rust編寫,這使它可以提供能夠從C語言中直接調(diào)用的API??紤]到重新設(shè)計一個嵌入式Web API非常復(fù)雜,比如需要編寫大量的文檔,測試大量的框架以及大力的推廣應(yīng)用等,所以他們采用了一種不同的方式。
Servo實現(xiàn)了Chromium嵌入式框架的API。這意味著,正在使用CEF的開發(fā)者不需要對應(yīng)用程序做任何修改就可以比較Blink和Servo引擎的性能,未來的開發(fā)者也不需要考慮另外一種瀏覽器API。這種實現(xiàn)方式主要包含兩個方面的工作:
-
確?!胺枺⊿ymbol)”完全覆蓋:Servo嵌入式庫可以鉤連每個CEF函數(shù)調(diào)用。同時,任何時候分配的供外部使用的struct,其大小和成員位置必須與真正的CEF所分配的struct類似。符號列表可以借助Linux工具nm取得。
-
盡可能準(zhǔn)確的模擬每個方法調(diào)用的功能:這需要完全了解CEF的每個函數(shù)以及它如何連接到瀏覽器引擎。
部分介紹內(nèi)容節(jié)選自 InfoQ
評論
圖片
表情
