google

google/highway

C++ No license Dev Tools

Performance-portable, length-agnostic SIMD with runtime dispatch

5.7k stars
448 forks
active
GitHub +10 / week

5.7k

Stars

448

Forks

64

Open issues

30

Contributors

1.4.0 23 Apr 2026

AI Analysis

Highway is a C++ library providing performance-portable SIMD/vector intrinsics with runtime dispatch across seven CPU architectures (x86, ARM, WebAssembly, etc.). It serves specialized high-performance computing domains—image processing, compression, cryptography, linear algebra, and sorting—where developers need predictable, reliable vectorization without compiler autovectorization. This is a niche tool for performance engineers and systems programmers; general application developers rarely ...

Dev Tools Library Discovery value: 4/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 7/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

simd-intrinsics performance-optimization vector-programming cross-platform c++
Actively maintained Well documented Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
2w ago

Google's Highway brings portable, runtime-dispatched SIMD to C++ across seven architectures

Highway is a C++ SIMD abstraction library that lets developers write vectorized code once and run it efficiently across x86 (SSE2 through AVX-512), ARM (NEON, SVE), RISC-V (RVV), WebAssembly SIMD, and other platforms. Its core value is predictable, compiler-independent code generation with optional runtime dispatch to the best available ISA. Used in production by Chromium, Firefox, JPEG XL, libvips, libaom, and multiple Google internal projects, it targets performance-focused C++ engineers who cannot rely on autovectorization.

Origin

Created by Google in September 2019, likely evolving from internal vectorization work. Dual-licensed Apache 2 / BSD-3. The project matured steadily with broad ISA coverage added over time, including scalable-vector support (SVE, RVV) which most competitors lack.

Growth

Growth has been steady rather than viral, driven by adoption in high-visibility projects: JPEG XL and libjxl created an early foothold, then Chromium and Firefox integration gave it significant indirect reach. The scalable-vector support (SVE/RVV) differentiates it as ARM server hardware became more common circa 2022-2024, attracting HPC and ML-adjacent workloads.

In production

Strong evidence of production usage: Chromium (and derived browsers Vivaldi, Floorp, Librewolf, Waterfox), Firefox, libjxl (JPEG XL reference implementation), libaom (AV1 codec), libvips (image processing pipeline used by many SaaS platforms), Tencent's tgfx, and multiple Google cryptography/compression projects. This represents millions of end-user touchpoints indirectly.

Code analysis
Architecture

Appears to use a header-heavy, target-compilation model where the same source file is compiled multiple times for different ISA targets via preprocessor macros (HWY_DYNAMIC_DISPATCH / HWY_STATIC_DISPATCH). Likely provides a thin abstraction layer mapping named operations to platform intrinsics without heavy template metaprogramming indirection, based on the stated design principle of avoiding extensive compiler transformations.

Tests

Not explicitly quantified in README, but the presence of structured examples, a benchmark module, and the breadth of production integrations suggests a meaningful test suite. Cannot confirm coverage percentages from available metadata.

Maintenance

Last push was June 25, 2026 — three days before the evaluation date — indicating very active maintenance. 445 forks and a well-structured README with living documentation links reinforce sustained development. No signs of stagnation.

Honest verdict

ADOPT IF: you are writing performance-critical C++ that must run efficiently across multiple CPU ISAs (especially if ARM SVE or RISC-V RVV support matters), you need runtime dispatch to avoid distributing multiple binaries, or you are building codecs, image processing, or cryptography where SIMD yield is critical. AVOID IF: your codebase is not C++17, your SIMD targets are single-platform only and you prefer raw intrinsics or simple abstractions, or the learning curve of Highway's multi-ISA compilation model would exceed the performance benefit in your context. MONITOR IF: you are evaluating Highway for ML inference or linear algebra workloads — the library covers these domains but tooling like XNNPACK or vendor BLAS may still be more optimized for those specific patterns.

Independent dimensions

Mainstream potential

6/10

Technical importance

9/10

Adoption evidence

8/10

Risks
  • The multi-target compilation model (recompiling the same TU per ISA) can significantly increase build times and binary size if many targets are enabled, which may be a friction point in large codebases.
  • The abstraction requires developers to think in SIMD-friendly data layouts (SoA, aligned allocations); projects with legacy AoS data structures may see limited gains without refactoring.
  • Despite Google backing, the core maintainer team appears small; bus-factor risk exists if internal Google priorities shift, though the open-source community is growing.
  • The C++17 requirement (language features) and complex macro-based dispatch system can be a barrier for teams on older toolchains or those unfamiliar with template-heavy compilation models.
  • Competing SIMD backends in major runtimes (ONNX Runtime, TensorFlow XLA, LLVM auto-vectorization improvements) may reduce the addressable problem space over time for inference-adjacent workloads.
Prediction

Highway is likely to remain the most production-validated portable SIMD library in C++ for the next several years, particularly as ARM server deployments grow and SVE/RVV adoption increases. Continued integration into media codecs and browsers provides a stable usage base.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

C++
97.5%
C
1.1%
CMake
0.5%
Starlark
0.5%
Meson
0.3%
Shell
0.1%
Linker Script
0%
Batchfile
0%

Information

Language
C++
License
NOASSERTION
Last updated
20h ago
Created
83mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

ermig1979

ermig1979/Simd

Simd Library is a high-performance C/C++ image processing and machine learning...

2.3k C++ AI & ML
xtensor-stack

xtensor-stack/xsimd

xsimd is a C++ library providing unified wrappers around SIMD intrinsics (SSE,...

2.7k C++ Dev Tools
halide

halide/Halide

Halide is a C++-embedded domain-specific language for writing high-performance...

6.6k C++ Dev Tools
redorav

redorav/hlslpp

HLSL++ is a header-only C++ math library that replicates HLSL shading language...

1.1k C++ Gaming
jfalcou

jfalcou/eve

EVE is a C++20 header-only SIMD library providing type-safe, expressive...

1.4k C++ Dev Tools
vs. alternatives
xsimd (xtensor-stack)

xsimd is header-only and integrates tightly with xtensor/NumPy-like workflows. Highway has broader ISA coverage (SVE, RVV, WASM) and runtime dispatch; xsimd focuses more on fixed-width batch math and is easier to adopt for data science tooling.

Halide

Halide is a domain-specific language for image/array pipelines with its own scheduling model — a fundamentally different abstraction level. Highway operates at the intrinsic level and gives finer control; Halide automates more but requires learning its pipeline model.

EVE (jfalcou)

EVE is a modern C++20 SIMD library emphasizing expressive generic programming. Highway targets C++17 and prioritizes predictability and compiler portability over expressiveness; EVE may offer more elegant APIs but with fewer supported ISAs and less production validation.

Simd (ermig1979)

Simd focuses heavily on image processing primitives with a C API. Highway is more general-purpose and offers runtime dispatch as a first-class feature; Simd may be simpler to integrate for narrow image-processing use cases.

Compiler autovectorization

Auto-vectorization is zero-effort but produces unpredictable results across compiler versions and targets. Highway sacrifices some developer convenience for reliable, inspectable SIMD code generation — the explicit tradeoff it was designed around.