Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> But binary has ~45mb ...

Even this is too much I think.

Sciter is 7 Mb on Windows and 11 Mb on RaspberryPi. Extra 3 Mb is Skia for rendering on Vulkan and/or OpenGL. And it supports full set of HTML5 elements. JavaScript is at full ES2020 level.

The only reason I think why 45 Mb is there is because of video codecs. Sciter does not have them in core. But as loadable ffmpeg based plugin.



Thanks I will check Sciter! I almost forgot, Cobalt has a very well designed porting layer. Therefore, it is relatively easy to run it on custom Linux embedded devices. It also uses Skia as a backend for rasterization. As many people here have already written Cobalt is designed as a youtube player, but it can be successfully used for other purposes.


Sciter works on Windows, MacOS, Linux, Android and is packaged in two forms: windowed and windowless engines (a.k.a. headless).

It supports rendering trough Direct2D/DirectX, GDI+, CoreGraphics, Cairo and (through Skia) DX12, Vulkan, Metal.


I would understand your argument if you were talking about more constrained systems, but RPIs have GOBS of storage and memory. A 45mb executable vs 7mb executable is totally negligible.


It is not about binary size per se, but of features/binary ratio.

Can Cobalt run, say, ChartJS as it is (https://sciter.com/chartjs-in-sciter/)? Seems like not as I do not see <canvas> in the list of its supported elements.


Well, does Sciter support CSS Flexbox? It doesn't ...

Features which the project actually needs will be decisive.

Does the project need Canvas? Sciter is the better choice.

Does the project need CSS Flexbox? Cobalt will be a better fit.

The binary size may play a role if all else is equal ...


Sciter supports flex units but not flexbox. Flex units (and grid layouts) are in Sciter since 2007, ~10 years before browsers got them. Flexibility is the must for desktop UIs so it was in the engine from the very beginning.

Sciter's flex units + CSS flow property is a superset of flexbox and grid features. For example paddings, margins, border widths, left|right|top|bottom can be expressed in flex units.

Everything that can be defined by flexbox can be expressed by flex units / flow:

https://terrainformatica.com/w3/flex-layout/flex-vs-flexbox....


Sciter does not support CSS Flexbox. It supports a more or less equivalent, but incompatible feature.

That's a critical distinction when you want to run the same codebase as you have on the web.


CSS was designed for running on different UAs and there is special mechanism built in it. If you take a look into source of that demo page, you will see:

   /* browser */
   @supports (display:flex)  
   {
     section { display: flex; }
     section > * { flex: 1; margin:1em; } 
     ...  
   }

   /* sciter */
   @supports (flow:horizontal)
   {
     section { flow:horizontal; }
     section > * { width:1*; margin:1em; }
     ...
   }
You should not assume that all browsers support same set of features. And needless to say, that Sciter is not a universal browser. And so is Cobalt in that respect - it is a browser for particular site / application.


> there is special mechanism built in it

Yes, a return to the dark days of UAs having their own proprietary extensions / prefixes to do the same thing. Why bother when there's an actual industry standard?

> You should not assume that all browsers support same set of features.

You can certainly target only user agents which support CSS Flexbox. I would even say it's the advisable default unless you have some very special needs.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: