1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
`rscrypto` is built around a three-tier dispatch model so the same source compiles to a portable Rust path on every target and a hardware-accelerated path on every supported CPU.
1. 2.3.
In `no_std` builds, only the compile-time tier runs.
With `std` enabled, the `portable-only` feature makes `platform::caps()` report
no runtime SIMD/ASM capabilities, so dispatchers that consult runtime caps fall
through to portable backends. It does not remove SIMD code from the binary or
override compile-time `target_feature` selection. See
[`features.md`](features.md#portable-only).
Availability of any specific backend depends on what the target CPU advertises and what `target-feature` permits. The portable Rust fallback is present on every target listed below.
ECDSA P-256/P-384 always has a portable Rust path. x86_64 and aarch64 targets
also use assembly helpers for selected scalar, field, and basepoint operations
when those helpers are compiled for the target. Other target families fall back
to the portable implementation unless a future measured backend justifies
additional code.
The following `no_std` targets are built in CI:
- -----
Other `no_std` targets in the same families (e.g. `thumbv7em-*`, larger RISC-V profiles) generally work; open an issue if a target you care about is missing.
Current geomean speedups by platform live in
[`benchmark_results/OVERVIEW.md`](../benchmark_results/OVERVIEW.md#coverage-matrix).
The current public set includes the 2026-06-12 nine-runner Linux CI matrix and
a 2026-06-12 local Apple Silicon macOS/aarch64 full run.