fontdue
simdutf8
fontdue | simdutf8 | |
---|---|---|
8 | 15 | |
1,350 | 509 | |
- | 0.8% | |
5.6 | 1.2 | |
18 days ago | 12 days ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
fontdue
- A Programmable Markup Language for Typesetting [pdf]
-
Does a wgpu text renderer exist for Android?
The other alternative is to go a level lower and use something like fontdue and then roll my own font rendering pipe, but that seems overkill for what seems like a simple problem.
-
Rust, Wright's Law, and the Future of Low-Latency Systems
I agree that no_std is incredible. I really want to see more crates embrace it and encapsulate their no_std logic away from their standard logic. I very often see crates that are like 95% of the way to no_std but then choose to bundle some standard only features without flagging them.
I wrote fontdue [0] (which is very incomplete spec wise) because there just wasn't another font library that was no_std at that time. It felt like the existing libraries were in an arms race for gpu caches and bundling file loading. Like if I wanted to commit to a running on a platform I'd do the sane thing and use harfbuzz or the platform APIs.
[0] https://github.com/mooman219/fontdue
- Fontdue: A fast font renderer written in Rust
- Text Rendering w/ HarfBuzz, FreeType and OpenGL
-
swash: Complex text shaping and glyph rasterization in pure Rust
Like tiny-skia? As for font-specific one there are ab-glyph and fontdue.
-
Show HN: High-speed UTF-8 validation in Rust
I work on a SIMD optimized font library [0] and have stumbled into the same situation of hand writing SIMD intrinsics. Some things are just kinda hard to make sure they get optimized correctly, and there is enough difference between the platforms where that matters when fiddling with bits. I also kinda have fun writing SIMD code like this too.
[0]: https://github.com/mooman219/fontdue/blob/master/src/platfor...
-
The `rusttype` crate is looking for a new maintainer
The other library that does a similar thing to ab_glyph/rusttype I remember hearing about is fontdue (https://github.com/mooman219/fontdue)
simdutf8
-
simdutf: Unicode validation and transcoding at billions of characters per second
That's not enough to make it interesting. There's already a porting of it in rust (https://github.com/rusticstuff/simdutf8), and inclusion in the stdlib has already been discussed: the problem is that you can't use simd in all supported targets and conditional compilation/detection is also very tricky.
-
Making Rust Float Parsing Fast: libcore Edition
No, libcore uses simple branching code at the moment, see https://github.com/rust-lang/rust/issues/68455. The issue is still actively being worked on. Note, it's not a simple drop in, and there seem to be even faster algorithms. For now there is https://github.com/rusticstuff/simdutf8.
-
What's everyone working on this week (19/2021)?
I will work on simdutf8, either
- simdutf8 v0.1.2 - Apple Silicon can get very fast UTF-8 validation too
-
simdutf v0.1.1 - A small step for semver, one giant leap for performance.
Now I have to benchmark again, it might be negligable. See also the discussion for this pull request.
-
Show HN: High-speed UTF-8 validation in Rust
Check the benchmarks section (https://github.com/rusticstuff/simdutf8#Benchmarks), second table. simdutf8 is up to 28 % faster on my Comet Lake CPU. However with pure ASCII clang does something magical with simdjson and it beats my implementation by a lot. GCC-compiled simdjson is slower all around except for a few outliers with short byte sequences.
The algorithm is the one from simdjson, the main difference is that it uses an extra step in the beginning to align reads to the SIMD block size.
- High-speed UTF-8 validation in Rust
What are some alternatives?
ab-glyph - Rust API for loading, scaling, positioning and rasterizing OpenType font glyphs
sqloxide - Python bindings for sqlparser-rs
rustybuzz - A complete harfbuzz's shaping algorithm port to Rust
simdutf - Unicode routines (UTF8, UTF16, UTF32) and Base64: billions of characters per second using SSE2, AVX2, NEON, AVX-512, RISC-V Vector Extension. Part of Node.js and Bun.
tiny-skia - A tiny Skia subset ported to Rust
cxx - Safe interop between Rust and C++
wgpu-text - 📜A simple 2D text renderer for wgpu📜 > is a wrapper over glyph-brush for easier text rendering in wgpu > inspired by similar to wgpu_glyph
encoding_rs - A Gecko-oriented implementation of the Encoding Standard in Rust
rusttype - Mirror of https://gitlab.redox-os.org/redox-os/rusttype
bumpalo - A fast bump allocation arena for Rust
swash - Font introspection, complex text shaping and glyph rendering.
fast_float - Fast and exact implementation of the C++ from_chars functions for number types: 4x to 10x faster than strtod, part of GCC 12 and WebKit/Safari