rust-cssparser
libjs-test262
rust-cssparser | libjs-test262 | |
---|---|---|
5 | 4 | |
682 | 28 | |
1.2% | - | |
7.2 | 1.9 | |
8 days ago | 10 months ago | |
Rust | Python | |
Mozilla Public License 2.0 | MIT License |
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.
rust-cssparser
-
Looking for this. html + css rendering through wgpu.
If you were to implement this yourself, i'd look into either swash or cosmic-text for the text rendering stack (this is one of the things you really don't want to write from the ground up). For accessibility, AccessKit has quickly become the standard for communicating with crossplatform accessibility APIs in rust GUI. lightningcss (or its lower level counterpart cssparser) are both decent options for CSS parsing. Taffy handles some of what browsers offer for a layout engine, but is still being worked on.
-
We're building a browser when it's supposed to be impossible
Libraries for a lot of this stuff exist (albeit in many cases not very mature yet):
- https://github.com/pop-os/cosmic-text does text layout (which Taffy explicitly considers out of scope)
- https://github.com/AccessKit/accesskit does accessibility
- https://github.com/servo/rust-cssparser does value-agnostic CSS parsing (it will parse the general syntax but leaves value parsing up to the user, meaning you can easily add support for whatever properties you what). Libraries like https://github.com/parcel-bundler/lightningcss implement parsing for the standard css properties.
- There are crates like https://github.com/BurntSushi/bstr and https://docs.rs/wtf8/latest/wtf8/ for working with non-unicode text
We are planning to add a C API to Taffy, but tbh I feel like C is not very good for this kind of modularised approach. You really want to be able to expose complex APIs with enforced type safety and this isn't possible with C.
- Parcel CSS: A new CSS parser, compiler, and minifier
- Can't handle cssparser's ParseError
libjs-test262
-
We're building a browser when it's supposed to be impossible
Linus Groh of LibJS is an Invited Expert in TC39: https://linus.dev/posts/road-to-working-on-serenityos-and-la...
ECMAScript conformance test results looking good, 87-88% passing at the moment: https://libjs.dev/test262/
-
Ladybird Web Browser – SerenityOS LibWeb Engine with a Qt GUI
this is a qt frontend (definitely works on linux) for the serenityos browser engine, libweb.
this is a new, from-scratch implementation of both a modern html/css layout engine and a javascript runtime.
see https://libjs.dev/test262/ for ecmascript conformance tests.
the browser engine is far from finished but is able to display moderately complex pages like github.
it's always exciting to see a completely new web engine running in conventional environments like linux!
-
Show HN: We launched a new web browser
> Our JavaScript engine is decently mature, test262 score tracked here: https://libjs.dev/test262/
In a few years when they have achieved feature parity with Chromium or at least Safari we can discuss this again, but for now it's not ready for real life use.
-
LibJS JavaScript Engine
See https://github.com/linusg/libjs-test262 for an example, specifically the CMake files and `src/main.cpp`.
The separate website is just to have a nice & short link to the test262 graph and whatever else we'll put there eventually; and also because it's built/deployed in a slightly different way than the main serenityos.org website.
What are some alternatives?
lightningcss - An extremely fast CSS parser, transformer, bundler, and minifier written in Rust.
vimium - The hacker's browser.
swc - Rust-based platform for the Web
beacon - Beacon browser for desktop
cosmic-text - Pure Rust multi-line text handling
tersenet - A new type of JavaScript-free light-weight fast browser built on rst and web assembly. Does not actually exist.
css-modules - Documentation about css-modules
serenity - The Serenity Operating System 🐞
icss - Interoperable CSS — a standard for loadable, linkable CSS
wpt - Test suites for Web platform specs — including WHATWG, W3C, and others
hound - Lightning fast code searching made easy
accesskit - UI accessibility infrastructure across platforms and programming languages