simdutf

Unicode routines (UTF8, UTF16, UTF32) and Base64: billions of characters per second using SSE2, AVX2, NEON, AVX-512, RISC-V Vector Extension, LoongArch64, POWER. Part of Node.js, WebKit/Safari, Ladybird, Chromium, Cloudflare Workers, Ghostty and Bun. (by simdutf)

Simdutf Alternatives

Similar projects and alternatives to simdutf

  1. papers

    Discontinued ISO/IEC JTC1 SC22 WG21 paper scheduling and management [GET https://api.github.com/repos/cplusplus/papers: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository] (by cplusplus)

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. highway

    Performance-portable, length-agnostic SIMD with runtime dispatch

  4. simdjson

    Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

  5. glibc

    Discontinued Unofficial mirror of sourceware glibc repository.

  6. Magic Enum C++

    Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code

  7. riscv-v-spec

    Discontinued Working draft of the proposed RISC-V V vector extension

  8. burn

    34 simdutf VS burn

    Discontinued Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals. [Moved to: https://github.com/Tracel-AI/burn] (by burn-rs)

  9. Code-used-on-Daniel-Lemire-s-blog

    This is a repository for the code posted on my blog

  10. simdutf8

    SIMD-accelerated UTF-8 validation for Rust.

  11. DirectXMath

    DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps

  12. cpr

    22 simdutf VS cpr

    C++ Requests: Curl for People, a spiritual port of Python Requests.

  13. heed

    18 simdutf VS heed

    Fully typed LMDB wrappers with minimum overhead 🐦

  14. nativejson-benchmark

    C/C++ JSON parser/generator benchmark

  15. tpr

    Discontinued An anonymous and decentralized routing protocol. The code will be up once it is done, but the paper is already available. [GET https://api.github.com/repos/Alonely0/tpr: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository]

  16. frozen

    10 simdutf VS frozen

    a header-only, constexpr alternative to gperf for C++14 users

  17. sqlpp11

    3 simdutf VS sqlpp11

    A type safe SQL template library for C++

  18. eve

    11 simdutf VS eve

    Expressive Vector Engine - SIMD in C++ Goes Brrrr (by jfalcou)

  19. mysql

    7 simdutf VS mysql

    MySQL C++ client based on Boost.Asio (by boostorg)

  20. Better Enums

    C++ compile-time enum to string, iteration, in a single header file

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better simdutf alternative or higher similarity.

simdutf discussion

Log in or Post with

simdutf reviews and mentions

Posts with mentions or reviews of simdutf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-12-05.
  • How fast can browsers process base64 data?
    2 projects | news.ycombinator.com | 5 Dec 2025
  • Simdutf: Fast Unicode Validation and Transcoding
    1 project | news.ycombinator.com | 5 Jun 2025
  • C Is Not Suited to SIMD
    7 projects | news.ycombinator.com | 27 Jan 2025
    Lemire and collaborators often write in C++ intrinsics, or thin platform-specific wrappers on top of them.

    I count ~8 different implementations [1], which demonstrates considerable commitment :) Personally, I prefer to write once with portable intrinsics.

    https://github.com/simdutf/simdutf/tree/1d5b5cd2b60850954df5...

  • Decoding UTF8 with Parallel Extract
    1 project | news.ycombinator.com | 5 May 2024
    IIRC all of the simdutf implementations use a lot of lookup tables except for the AVX512 and RVV backens.

    Here is e.g. the NEON code: https://github.com/simdutf/simdutf/blob/1b8ca3d1072a8e2e1026...

  • Glibc Buffer Overflow in Iconv
    1 project | news.ycombinator.com | 21 Apr 2024
  • Vectorizing Unicode conversions on real RISC-V hardware
    1 project | news.ycombinator.com | 27 Jan 2024
    The project was mostly inspired by simdutf [0] which has been around for a couple of years already, and I don't think iconv has any of its vectorized implementations for other architectures.

    [0] https://github.com/simdutf/simdutf

  • Cray-1 performance vs. modern CPUs
    4 projects | news.ycombinator.com | 25 Dec 2023
    I'm actually doing something quite similar in my, in progress, unicode conversion routines.

    For utf8 validation there is a clever algorithm that uses three 4-bit look-ups to detect utf8 errors: https://github.com/simdutf/simdutf/blob/master/src/icelake/i...

    Aside on LMUL, if you haven't encountered it yet: rvv allows you to group vector registers when configuring the vector configuration with vsetvl such that vector instruction operate on multiple vector registers at once. That is, with LMUL=1 you have v0,v1...v31. With LMUL=2 you effectively have v0,v2,...v30, where each vector register is twice as large. with LMUL=4 v0,v4,...v28, with LMUL=8 v0,v8,...v24.

    In my code, I happen to read the data with LMUL=2. The trivial implementation would just call vrgather.vv with LMUL=2, but since we only need a lookup table with 128 bits, LMUL=1 would be enough to store the lookup table (V requires a minimum VLEN of 128 bits).

    So instead I do six LMUL=1 vrgather.vv's instead of three LMUL=2 vrgather.vv's because there is no lane crossing required and this will run faster in hardware: (see [0] for a relevant mico benchmark)

            # codegen for equivalent of that function
  • What C++ library do you wish existed but hasn’t been created yet?
    18 projects | /r/cpp | 8 Jul 2023
    utf8 normalization, stemming, case insensitive comparison. https://github.com/unicode-rs example for rust What are options for C++? 1. translate to utf16 ( https://github.com/simdutf/simdutf ) and use icu -- slow 2. boost text, https://github.com/tzlaine/text , also slow (because the author doesn't care or couldn't care), we made a lot of patches to make our library faster than lucene, but still this part is slower than icu for utf16 (icu for utf16 also very slow...)
  • [Preprint] Transcoding Unicode Characters with AVX-512 Instructions
    1 project | /r/asm | 29 Mar 2023
    You can find the corresponding assembly code in this repository. The main branch only contains implementations based on C++ with intrinsics.
  • What's everyone working on this week (10/2023)?
    11 projects | /r/rust | 6 Mar 2023
    The next big thing is making it LSP-compatible. All language servers must implement UTF-16 based character offsets, which is kinda unfortunate considering that files are much more likely to be stored in UTF-8 (I think?). I don't want to do the UTF-8 -> UTF-16 transcoding, so instead I'll use the excellent simdutf library to count how much code points a UTF-8 string would take if it was transcoded into UTF-16 — which is much faster than actual transcoding. So this is what I'm going to do this week — rewriting parsers to produce UTF-16 offsets + some final benchmarking. After that is done, I'll consider the "research" part of this project completed and will start writing an actual Markdown parser.
  • A note from our sponsor - SaaSHub
    www.saashub.com | 16 Aug 2026
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic simdutf repo stats
15
1,921
9.3
8 days ago

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com