simdutf8
fast-float-rust
Our great sponsors
simdutf8 | fast-float-rust | |
---|---|---|
15 | 10 | |
509 | 266 | |
1.4% | - | |
1.2 | 0.0 | |
7 days ago | over 1 year ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | Apache License 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.
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
fast-float-rust
-
Good example of high performance Rust project without unsafe code?
I'd like the mention my own refactoring of fast-float-rust to remove nearly all unsafe code for merging into Rust core library which left the performance identical to the previous implementation.
- Exploring Rust performance on Graviton2 (AWS aarch64 CPUs)
-
Making Rust Float Parsing Fast: libcore Edition
JSON is an interesting example, since the syntax of valid floats is slightly different than what Rust expects. Luckily, I'm the author of a minimal, and am also the author of a PR to bring this to fast-float-rust.
-
Eisel-Lemire Algorithm
[4] https://github.com/aldanor/fast-float-rust/
-
Number Parsing at a Gigabyte per Second
It seems also dependent on the processor: https://github.com/aldanor/fast-float-rust/#intel-i7-4771
-
fast-float - a super-fast float parser in Rust
I've already done that (just pushed it - here).
What are some alternatives?
sqloxide - Python bindings for sqlparser-rs
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
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.
rand - A Rust library for random number generation.
cxx - Safe interop between Rust and C++
json - Strongly typed JSON library for Rust
encoding_rs - A Gecko-oriented implementation of the Encoding Standard in Rust
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
bumpalo - A fast bump allocation arena for Rust
rust-lexical - Fast numeric to- and from-string conversion routines.
roxmltree - Represent an XML document as a read-only tree.