rust-cssparser
swash
rust-cssparser | swash | |
---|---|---|
5 | 10 | |
682 | 561 | |
1.2% | - | |
7.2 | 6.5 | |
9 days ago | 29 days ago | |
Rust | Rust | |
Mozilla Public License 2.0 | MIT or Apache 2.0 |
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
swash
-
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.
- Any suggestion for gpu text rendering?
- Cosmic Text: Pure Rust multi-line text handling
-
Font rendering and layout crates
You probably want to take a look at swash.
-
Bachelor idea to help the rust community
https://github.com/dfrg/swash which does text-shaping and could be built upon
-
I'm giving out microgrants to open source projects for the third year in a row! Brag about your projects here so I can see them, big or small!
swash - A shaping engine that advertises performance comparable to HarfBuzz, and surpassing it in some cases. Tests are in-progress.
-
Whats your favourite open source Rust project that needs more recognition?
swash: a pure Rust shaping engine like Harfbuzz with competitive performance.
- Font introspection, complex text shaping and glyph rendering in Rust
- Text Rendering w/ HarfBuzz, FreeType and OpenGL
- swash: Complex text shaping and glyph rasterization in pure Rust
What are some alternatives?
lightningcss - An extremely fast CSS parser, transformer, bundler, and minifier written in Rust.
rusttype - Mirror of https://gitlab.redox-os.org/redox-os/rusttype
swc - Rust-based platform for the Web
fontdue - The fastest font renderer in the world, written in pure rust.
cosmic-text - Pure Rust multi-line text handling
rustybuzz - A complete harfbuzz's shaping algorithm port to Rust
css-modules - Documentation about css-modules
kiss3d - Keep it simple, stupid 3d graphics engine for Rust.
icss - Interoperable CSS — a standard for loadable, linkable CSS
ab-glyph - Rust API for loading, scaling, positioning and rasterizing OpenType font glyphs
hound - Lightning fast code searching made easy
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.