We're building a browser when it's supposed to be impossible

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • WebKit

    Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

  • https://github.com/WebKit/WebKit/blob/main/Source/WebCore/pa...

    Don't know if this is everything, but there are a bunch of specific websites mentioned in here.

  • taffy

    A high performance rust-powered UI layout library

  • We have our own test suite (orginally derived from the test suite of Meta's Yoga layout library [0]) which consists of text fixtures that are small HTML snippets [1] and a test harness [2] that turns those into runnable tests, utilising headless chrome both to parse the HTML and to generate the assertions based on the layout that Chrome renders (so we are effectively comparing our implementation against Chrome). We currently have 686 generated tests (covering both Flexbox and CSS Grid).

    We would like to utilise the Web Platform Test suite [3], however these are not in a standard format and many of the tests require JavaScript so we are not currently able to do that.

    [0]: https://github.com/facebook/yoga

    [1]: https://github.com/DioxusLabs/taffy/tree/main/test_fixtures

    [2]: https://github.com/DioxusLabs/taffy/tree/main/scripts/gentes...

    [3]: https://github.com/web-platform-tests/wpt/tree/master/css/cs...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • serenity

    The Serenity Operating System 🐞

  • For the curious: they went with C++

    https://github.com/SerenityOS/serenity/tree/master/Ladybird

  • yoga

    Yoga is an embeddable layout engine targeting web standards.

  • We have our own test suite (orginally derived from the test suite of Meta's Yoga layout library [0]) which consists of text fixtures that are small HTML snippets [1] and a test harness [2] that turns those into runnable tests, utilising headless chrome both to parse the HTML and to generate the assertions based on the layout that Chrome renders (so we are effectively comparing our implementation against Chrome). We currently have 686 generated tests (covering both Flexbox and CSS Grid).

    We would like to utilise the Web Platform Test suite [3], however these are not in a standard format and many of the tests require JavaScript so we are not currently able to do that.

    [0]: https://github.com/facebook/yoga

    [1]: https://github.com/DioxusLabs/taffy/tree/main/test_fixtures

    [2]: https://github.com/DioxusLabs/taffy/tree/main/scripts/gentes...

    [3]: https://github.com/web-platform-tests/wpt/tree/master/css/cs...

  • wpt

    Test suites for Web platform specs — including WHATWG, W3C, and others

  • We have our own test suite (orginally derived from the test suite of Meta's Yoga layout library [0]) which consists of text fixtures that are small HTML snippets [1] and a test harness [2] that turns those into runnable tests, utilising headless chrome both to parse the HTML and to generate the assertions based on the layout that Chrome renders (so we are effectively comparing our implementation against Chrome). We currently have 686 generated tests (covering both Flexbox and CSS Grid).

    We would like to utilise the Web Platform Test suite [3], however these are not in a standard format and many of the tests require JavaScript so we are not currently able to do that.

    [0]: https://github.com/facebook/yoga

    [1]: https://github.com/DioxusLabs/taffy/tree/main/test_fixtures

    [2]: https://github.com/DioxusLabs/taffy/tree/main/scripts/gentes...

    [3]: https://github.com/web-platform-tests/wpt/tree/master/css/cs...

  • libjs-test262

    Discontinued ✅ Tools for running the test262 ECMAScript test suite with SerenityOS's JavaScript engine (LibJS)

  • 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/

  • cosmic-text

    Pure Rust multi-line text handling

  • 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.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • accesskit

    UI accessibility infrastructure across platforms and programming languages

  • 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.

  • rust-cssparser

    Rust implementation of CSS Syntax Level 3

  • 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.

  • lightningcss

    An extremely fast CSS parser, transformer, bundler, and minifier written in Rust.

  • 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.

  • bstr

    A string type for Rust that is not required to be valid UTF-8.

  • 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.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts