fast_float
rust-lexical
Our great sponsors
fast_float | rust-lexical | |
---|---|---|
15 | 2 | |
1,256 | 279 | |
2.5% | - | |
8.8 | 0.0 | |
9 days ago | 17 days ago | |
C++ | 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.
fast_float
-
Parquet: More than just “Turbo CSV”
> Google put in significant engineering effort into "Ryu", a parsing library for double-precision floating point numbers: https://github.com/ulfjack/ryu
It's not a parsing library, but a printing one, i.e., double -> string. https://github.com/fastfloat/fast_float is a parsing library, i.e., string -> double, not by Google though, but was indeed motivated by parsing JSON fast https://lemire.me/blog/2020/03/10/fast-float-parsing-in-prac...
-
Can sanitizers find the two bugs I wrote in C++?
This makes sense for integers but betware floating point from_chars - libc++ still doesn't implement it and libstdc++ implements it by wrapping locale-dependent libc functions which involves temporarily changing the thread locale and possibly memory allocation to make the passed string 0-terminated. IMO libstdc++'s checkbox "solution" is worse than not implementing it at all - user's are better off using Lemire's API-compatible fast_float implementation [0].
-
Parsing can become accidentally quadratic because of sscanf
Just above this comment is a merged PR, which references fast_float library: https://github.com/fastfloat/fast_float
-
Making Rust Float Parsing Fast: libcore Edition
Daniel Lemire @lemire (creator of the algorithm, author of the C++ implementation, and provided constant feedback to help guide the PR).
-
RapidObj v0.1 - A fast, header-only, C++17 library for parsing Wavefront .obj files.
And out of 6,000 lines in the file, at least 3000 are other people's code: earcut for polygon triangulation and fast_float because .obj files typically contain a lot of floating point numbers so it's important to parse them quickly.
This library is optimised for loading and parsing big .obj files. Optimisation techniques used are: asynchronous IO, parallel parsing, and it uses fast_float to quickly parse floating point numbers.
-
First release of dragonbox, a fast float-to-string conversion algorithm, is available
How this compares to https://github.com/fastfloat/fast_float ?
- Eisel-Lemire Algorithm
-
Ask HN: C++17/C++20 example projects with good style?
Some fun things I've figured out:
* https://github.com/fastfloat/fast_float <-- for fast float/double conversion
* from_chars() for fast integer conversion (though I benchmarked a few that were faster)
* https://github.com/simdjson/simdjson <-- apparently the fastest JSON library
It's hard to program normal anymore, for every little thing I ask myself "but I want it faster!" TypeScript was so much easier, other than O(n) and friends, I never cared xD
- Fastfloat – C++ library 4x faster than strtod
rust-lexical
-
Making Rust Float Parsing Fast: libcore Edition
If you're interested, I've basically compiled a list of all the different float formats from over 50 programming and data interchange formats.
What are some alternatives?
dragonbox - Reference implementation of Dragonbox in C++
rapidobj - A fast, header-only, C++17 library for parsing Wavefront .obj files.
C++ Format - A modern formatting library
fast-float-rust - Super-fast float parser in Rust (now part of Rust core)
tiny-utf8 - Unicode (UTF-8) capable std::string
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
simdutf8 - SIMD-accelerated UTF-8 validation for Rust.
earcut.hpp - Fast, header-only polygon triangulation
rapidyaml - Rapid YAML - a library to parse and emit YAML, and do it fast.
gammy - Adaptive screen brightness/temperature for Windows, Linux, FreeBSD
rust - Empowering everyone to build reliable and efficient software.