4 ms·
Up until ~2015 one of the world's most deployed browser engines was Sciter. A work of _one_ person. A fast embedded browser engine, a binary about 4Mb in size.
by cyberax 3mo ago
Up until ~2015 one of the world's most deployed browser engines was Sciter. A work of _one_ person. A fast embedded browser engine, a binary about 4Mb in size.
It was used to render the UI in apps like our favorite McAfee antivirus.
This niche is still wide open. Electron apps are just terrible, and a focused fast embeddable browser engine would be very welcome.
- Rohansi 3mo ago> This niche is still wide open. Electron apps are just terrible, and a focused fast embeddable browser engine would be very welcome. I agree with you but throwing web standards out the window like Sciter is a non-starter. One of the benefits of Electron apps is still having the option to run it in your browser.
- cyberax 3mo agoYes, that's why Servo is so exciting. It doesn't have to implement _all_ the standards, just a subset that is compatible with the full set. So that if you can develop an app within that subset and have it working in other browsers. But not necessarily vice versa.
- Rohansi 3mo agoIf you're going by binary size then Servo is already as big as other browsers. 106 MB excluding dependencies, or 274 MB including dependencies.
- GoblinSlayer 3mo agoDoes Servo still launch a herd of processes like Electron?
- Rohansi 3mo agoDoesn't look like it but if Servo wants to be a production-ready browser they will likely need to do the same. Better security and reliability having processes handling different roles.
- cyberax 3mo agoYou can trim it quite a bit, and it also compresses quite well. The dependencies are the main issue, there's just a lot of stuff there.
- Rohansi 3mo agoElectron also compresses well but people complain about unpacked size, too. You're likely not going to see an embedded browser actually smaller unless you can disable features at compile time.
- GoblinSlayer 3mo agoCan't you run servo apps in the browser? There's no compat in the reverse direction only.
- Rohansi 3mo agoYou mean target Servo's limited compatibility and it should work fine in browsers? Maybe? But there's potential to accumulate workarounds that fix things in Servo but break other browsers.
- nicoburns 3mo agoI've been building for the fast/embeddable browser engine niche: Source: https://github.com/dioxuslabs/blitz https://github.com/dioxuslabs/blitz Status: https://blitz.is/status/css https://blitz.is/status/css Typical binary sizes are around 10-20mb, although you can go smaller by doing things like excluding features or compiling with `Os`/`Oz`. There's no JavaScript yet (which can also be a benefit of course!), but people have recently started experimenting, and we may well start on this soon.
- cyberax 3mo agoThis is awesome! Do you think you can host something like React Native if you add a JS engine?
- nicoburns 3mo agoYes! There are a few experiments with JS engines going on (all very early stage atm (and many vibe coded) but looking promising enough to justify doing a proper implementation in future). With this you can actually run regular React DOM (so fully compatible with deploying the same codebase to web). There is then the potential to mix in native components, although that's not fully built-out today. Finally, as part of this project we develop Dioxus Native (see https://github.com/DioxusLabs/dioxus https://github.com/DioxusLabs/dioxus and https://dioxuslabs.com https://dioxuslabs.com). This allows you to write your app in a React-like framework in Rust, which also allows you to write a single codebase and compile to both native (desktop/mobile) using Blitz and to web (compiles to WASM, renders using real DOM nodes).
- cyberax 3mo agoThanks! It'd really interesting to try static Hermes with it ( https://github.com/facebook/hermes/tree/static_h https://github.com/facebook/hermes/tree/static_h ). iOS is braindead and doesn't allow JITs, so regular JavaScript is not a good option.