Benchmarks
How rbx-cryptography compares with other Roblox cryptography libraries.
Performance benchmarks done on a RedMagic 11 Pro in the Roblox mobile client with RunBench.client.luau
Results
SHA-256
50 KB input. Throughput in MB/s, higher is better.
SHA-512
50 KB input. Throughput in MB/s, higher is better.
SHA3-512
50 KB input. Throughput in MB/s, higher is better.
BLAKE2b
50 KB input. Throughput in MB/s, higher is better.
BLAKE3
50 KB input. Throughput in MB/s, higher is better.
HMAC
50 KB input. Throughput in MB/s, higher is better.
ChaCha20
50 KB input. Throughput in MB/s, higher is better.
Poly1305
50 KB input. Throughput in MB/s, higher is better.
AES-256-GCM
50 KB input. Throughput in MB/s, higher is better.
XOR
1 MB input. Throughput in MB/s, higher is better.
Base64 encode and decode
50 KB input. Throughput in MB/s, higher is better.
SHA-256
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 500.6 MB/s | 1.0x |
| rbx-cryptography Luau | 378 MB/s | 1.3x |
| HashLib | 66.5 MB/s | 7.5x |
| Dekkonot | 66 MB/s | 7.6x |
| Gamer | 48.4 MB/s | 10.3x |
| CryptographyService | 41.4 MB/s | 12.1x |
SHA-512
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 141.8 MB/s | 1.0x |
| CryptographyService | 46 MB/s | 3.1x |
| HashLib | 43.7 MB/s | 3.2x |
| Dekkonot | 23.4 MB/s | 6.1x |
SHA3-512
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 111.7 MB/s | 1.0x |
| HashLib | 23.8 MB/s | 4.7x |
| CryptographyService | 3.5 MB/s | 31.9x |
BLAKE2b
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 1,260.8 MB/s | 1.0x |
| rbx-cryptography Luau | 268.6 MB/s | 4.7x |
| Dekkonot | 72 MB/s | 17.5x |
| CryptographyService | 21.2 MB/s | 59.5x |
BLAKE3
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 2,420.8 MB/s | 1.0x |
| rbx-cryptography Luau | 975.2 MB/s | 2.5x |
HMAC
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography BLAKE3 | 1,530.6 MB/s | 1.0x |
| rbx-cryptography SHA-256 | 442.6 MB/s | 3.5x |
| HashLib SHA-256 | 65 MB/s | 23.5x |
| Gamer SHA-256 | 47.9 MB/s | 32.0x |
| CryptographyService SHA-256 | 41.1 MB/s | 37.2x |
ChaCha20
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 754.8 MB/s | 1.0x |
| Orbit | 356.5 MB/s | 2.1x |
| CryptographyService | 87.4 MB/s | 8.6x |
| MrRoblick | 83.9 MB/s | 9.0x |
| EncryptedNet | 5 MB/s | 150.8x |
Poly1305
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 1,883.7 MB/s | 1.0x |
| Orbit | 518.7 MB/s | 3.6x |
| CryptographyService | 27.6 MB/s | 68.4x |
AES-256-GCM
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 150 MB/s | 1.0x |
| RobloxGamerPro200007 (CTR, no authentication) | 58.3 MB/s | 2.6x |
XOR
1 MB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 2,587.5 MB/s | 1.0x |
| Gamer | 84.2 MB/s | 30.7x |
Base64 encode and decode
50 KB input. Throughput in MB/s, higher is better.
| Library | Throughput | Times slower than the fastest |
|---|---|---|
| rbx-cryptography | 762.8 MB/s | 1.0x |
| Reselim | 396.5 MB/s | 1.9x |
| Lute | 214.5 MB/s | 3.6x |
| Gamer | 30.3 MB/s | 25.2x |
| HashLib | 12.2 MB/s | 62.3x |
Others
| Job | Input | Result |
|---|---|---|
| KMAC-128 | 50 KB | 243 MB/s |
| KMAC-256 | 50 KB | 200 MB/s |
| Ed25519 public key | 29.1 μs | |
| Ed25519 sign | 64 byte message | 39.3 μs |
| Ed25519 verify | 64 byte message | 158.8 μs |
| X25519 exchange | 106.0 μs | |
| ML-DSA-44 key generation | 78.2 μs | |
| ML-DSA-44 sign | 64 byte message | 138.5 μs |
| ML-DSA-44 verify | 64 byte message | 60.0 μs |
| ML-KEM-512 key generation | 28.9 μs | |
| ML-KEM-512 encapsulate | 33.0 μs | |
| ML-KEM-512 decapsulate | 51.8 μs |