ctpg
sciter


Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ctpg
- Compile Time Parser Generator - 1.3.6
-
Compile Time Parser Generator
https://github.com/peter-winter/ctpg Now with a proper build system with regression testing and cmake integration for other projects.
- Compile Time Parser Generator, new version, clang support and faster compilation times.
- Compile Time Parser Generator. New version with clang support and reduced compilation times.
- C++ Compile Time Parser Generator
- Compile time parser generator, new 1.3 version now with error recovery.
-
Compile time parser generator
I created a c++ header only library that allows parser generation in compile time. Somewhat like flex+bison but inside the c++ 17 compiler. https://github.com/peter-winter/ctpg
- Show HN: I made a C++ header only library for compile-time parser generation
sciter
-
Servo in 2024: stats, features and donations
> I'm convinced that using an embedded browser engine to render app UI is the future.
Sciter exists: https://sciter.com/
And it indeed is great for UI.
-
Blitz: A lightweight, modular, extensible web renderer
I think Sciter is probably the better comparison:
https://sciter.com/
It is a ground-up implementation of HTML and CSS rendering. IIRC it used to have its own programming language but now uses JS.
I’ve long been interested in this kind of thing but haven’t actually played with Sciter in depth. Used to be that the licensing was a concern but looking at the site now it seems the terms have changed to be much more flexible.
-
So You Want to Build a Browser Engine
Seems a good place to mention https://sciter.com/
It's been on HN loads of times.
A "browser" engine but very narrow scope. Works a treat for LOB type apps.
- Show HN: Open Source TailwindCSS UI Components
-
Show HN: Dropflow, a CSS layout engine for node or <canvas>
> wondering if css and svg could be used as abstraction over graphics and UI libraries
There's another project called Sciter that uses CSS to target native graphics libraries: https://sciter.com
> I wonder how hard it was to implement css. I've heard it can be pretty complex.
It was hard, but the biggest barrier is the obscurity of the knowledge.
Text layout is the hardest, because working with glyphs and iterating them in reverse for RTL is brain-breaking. And line wrapping gets really complicated. It's also the most obscure because nobody has written down everything you need to know in one place. After I finished block layout early on, I had to stop for a couple of years (only working a few hours a week though) and learn all of the ins, outs, dos, and don'ts around shaping and itemizing text. A lot of that I learned by reading Pango's [1] source code, and a lot I pieced together from Google searches.
But other than that, the W3C specifications cover almost everything. The CSS2 standard [2] is one of the most beautiful things I've ever read. It's internally consistent, concise, and obviously the result of years of deliberation, trial and error. (CSS3 is great, but CSS2 is the bedrock for everything).
[1] https://gitlab.gnome.org/GNOME/pango/
- Ask HN: Fastest cross-platform GUI stack/strategy
- Bringing Back Horizontal Rules in HTML Select Elements
-
Immediate Mode GUI Programming
otherwise, if we have only retained mode as in browsers, we will need to modify the DOM heavily and create temporary elements for handles.
[1] https://sciter.com
- This year in Servo: over 1000 pull requests and beyond
-
Rusty revenant Servo returns to render once more
I've still never used it but I've long been curious about Sciter:
https://sciter.com
What are some alternatives?
cpp-peglib - A single file C++ header-only PEG (Parsing Expression Grammars) library
RmlUi - RmlUi - The HTML/CSS User Interface library evolved
webview - Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows).
nuklear - A single-header ANSI C immediate mode cross-platform GUI library
qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
Slint - Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript. [Moved to: https://github.com/slint-ui/slint]
Wails - Create beautiful applications using Go
Elements C++ GUI library - Elements C++ GUI library
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
tauri - Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

