pre-alfa · linux · no és el navegador de cada dia
Un navegador web experimental en Rust.
Servo renderitza la pàgina. Una porció del GPUI de Zed, vendoritzada dins del repositori, dibuixa tot el que l'envolta. Entre tots dos, un pont sense còpies que passa un fotograma d'un context de GPU a l'altre sense tocar mai la CPU.
on som
Què funciona i què no
Llegeix això abans que res més de la pàgina. rumb encara és prou verd perquè la segona columna sigui la meitat honesta.
- Les pàgines es renderitzen amb Servo, un WebView per pestanya
- Pestanyes, grups de pestanyes amb colors personalitzats i pestanyes fixades
- Arrossegar per reordenar pestanyes i grups sencers
- Barra de pestanyes a qualsevol dels quatre costats de la finestra
- Descart de pestanyes — una pestanya adormida allibera el seu WebView
- Barra d'adreces amb enrere, endavant i recàrrega
- Ratolí, scroll i teclat reenviats a la pàgina
- Canvis de cursor natius en passar-hi per sobre
- Pantalla completa
- Títols de pàgina i favicons
- Un panell de DevTools que fa anar el servidor DevTools del mateix Servo
- Configuració desada a $XDG_CONFIG_HOME/rumb/settings.json
- Una pàgina d'inici rumb://
- La cobertura de webs és exactament la de Servo — GitHub, Discord i la major part del CSS modern no funcionen
- El redimensionament dinàmic està bloquejat per un bug de surfman/Servo
- Sense IME
- Sense marcadors ni historial persistent
- Sense aïllament de llocs — quan s'incrusta, Servo s'executa dins del mateix procés
- Només Linux
estat a data de 2026-08-06
com està fet
Dos motors, un sol fotograma
Servo no dibuixa a la finestra. Un pedaç del nostre fork li proporciona un context de render fora de pantalla, construït a partir del handle de display de l'amfitrió, de manera que pinta en el seu propi framebuffer mentre GPUI conserva la propietat del drawable que el compositor veu de debò.
Cada fotograma que Servo dona per llest s'exporta com un handle dma-buf — un descriptor de fitxer per a la memòria de la GPU, més un fence que indica quan les escriptures ja s'han completat. El backend wgpu de GPUI importa aquest handle com una textura a través del HAL de Vulkan i el dibuixa com qualsevol altre sprite.
La primera versió no feia res d'això. Llegia el framebuffer de tornada cap a la CPU, intercanviava el vermell i el blau i pujava el resultat com una imatge a cada fotograma. Funcionava, i tenia la forma que no tocava: una anada i tornada sencera per la memòria del sistema per a uns píxels que no havien sortit mai de la targeta.
Res d'això no és secret. El disseny viu a la documentació de tramuntana, en obert, perquè Servo i Stylo són MPL-2.0 i els nostres pedaços toquen els seus fitxers. El shell —les pestanyes, la interfície, el pont amb el compositor del nostre costat— és propietari.
els vents
Quatre vents, tres forks
El nom ve de la mar, i els forks també: cadascun porta el nom d'un vent. La rosa és el mapa: què existeix, què s'està provant i què s'ha desat.
nord
tramuntana
actiuEl nostre fork de Servo. Porta el context de render fora de pantalla, el fallback de WebGL per a NVIDIA/EGL i l'exportació dma-buf.
sud
migjorn
experimentalUna branca experimental de Servo. On van els canvis abans que ningú no en depengui.
est
llevant
retiratVacant. La rosa té quatre puntes i nosaltres tenim tres forks; aquesta la deixem buida en comptes d'omplir-la per simètria.
oest
ponent
vacantRetirat. El mantenim al mapa perquè un fork que s'ha provat i s'ha desat també forma part del registre.
segueix
On es fa la feina
tramuntana
El nostre fork de Servo
Tres pedaços sobre l'upstream: un context de render fora de pantalla, un fallback a l'adaptador de maquinari per a WebGL en NVIDIA amb EGL, i l'exportació dma-buf. MPL-2.0, públic.
stylo
El nostre fork de Stylo
El motor de CSS. Un mirall net de l'upstream, sense cap pedaç nostre, que tramuntana consumeix com a dependència per path. MPL-2.0, públic.
bugs
A quin tracker
Tot el que tingui a veure amb com s'analitza, es maqueta, s'estila o s'executen els scripts d'una pàgina és un bug de Servo — reporta'l a l'upstream. La prova del cotó: carrega la mateixa URL amb Servo tot sol. Si es veu igual, no és cosa de rumb.