{"id":47300590,"url":"https://github.com/skerkour/chacha20-blake3","last_synced_at":"2026-05-19T07:09:58.929Z","repository":{"id":308539505,"uuid":"1033093021","full_name":"skerkour/chacha20-blake3","owner":"skerkour","description":"The official implementation of the ChaCha20-BLAKE3 AEAD cipher with SIMD acceleration - https://kerkour.com/chacha20-blake3","archived":false,"fork":false,"pushed_at":"2026-01-15T09:20:43.000Z","size":134,"stargazers_count":91,"open_issues_count":7,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-31T06:43:13.833Z","etag":null,"topics":["aead","avx2","avx512","blake3","chacha12","chacha20","chacha8","crypto","cryptography","encryption","neon","rust","security","simd","wasm"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skerkour.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-06T09:35:39.000Z","updated_at":"2026-03-26T12:41:37.000Z","dependencies_parsed_at":"2025-08-06T14:27:53.523Z","dependency_job_id":"5e9f2343-b1c6-41fe-9a39-591ed6c35fd4","html_url":"https://github.com/skerkour/chacha20-blake3","commit_stats":null,"previous_names":["bloom42/chacha12-blake3","skerkour/chacha20-blake3"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skerkour/chacha20-blake3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skerkour%2Fchacha20-blake3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skerkour%2Fchacha20-blake3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skerkour%2Fchacha20-blake3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skerkour%2Fchacha20-blake3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skerkour","download_url":"https://codeload.github.com/skerkour/chacha20-blake3/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skerkour%2Fchacha20-blake3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33205681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aead","avx2","avx512","blake3","chacha12","chacha20","chacha8","crypto","cryptography","encryption","neon","rust","security","simd","wasm"],"created_at":"2026-03-17T01:38:19.993Z","updated_at":"2026-05-19T07:09:58.909Z","avatar_url":"https://github.com/skerkour.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# ChaCha20-BLAKE3\n\nSimple, Secure and Fast encryption for any CPU.\n\n\nChaCha20-BLAKE3 is a secure Authenticated Encryption with Associated Data (AEAD) algorithm that is:\n- more secure than classic AEADs by providing full context commitment\n- uses long nonces that can be safely generated randomly\n- doesn't require any specific harware instruction but instead scales with the width of the SIMD instructions of your CPU (AVX2 / AVX-512 on amd64 and NEON / SVE on arm)\n\nWhich make it a great fit for everything from microcontrollers to huge servers.\n\n\nIt has been designed to be the only encryption algorithm you will ever need.\n\n\n## Specification\n\n[https://kerkour.com/chacha20-blake3](https://kerkour.com/chacha20-blake3)\n\n\n## Performance\n\n\nIndicative single-core performance of pure-Rust, non-optimized implementations from the [official implementation](https://github.com/skerkour/chacha20-blake3) and the [Rust Crypto](https://github.com/RustCrypto) project.\n\n| Message Size | ChaCha20-BLAKE3 | XChaCha20-Poly1305 | AES-256-GCM |\n| ----- | ------------------- | ------------- | ------------- |\n| 64 B  | 103 MB/s          | 116 MB/s   | **540 MB/s** |\n| 1 KB  | 523 MB/s         | 767 MB/s   | **1,287 MB/s** |\n| 64 KB | **2,153 MB/s**   | 1,636 MB/s | 1,475 MB/s |\n| 1 MB  | **3,297 MB/s**   | 1,654 MB/s | 1,476 MB/s |\n| 10 MB | **3,353 MB/s**   | 1,664 MB/s | 1,477 MB/s |\n\n\nMachine: *AMD EPYC 9R45 (virtualized, AWS ma8.xlarge)*\n\n\n\n## Usage\n\n\u003c!-- \u003cdiv\u003e\n  \u003c!-- Version -- \u003e\n  \u003ca href=\"https://crates.io/crates/chacha12-blake3\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/v/chacha12-blake3.svg?style=flat-square\" alt=\"Crates.io version\" /\u003e\n  \u003c/a\u003e\n  \u003c!-- Docs -- \u003e\n  \u003ca href=\"https://docs.rs/chacha12-blake3\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square\" alt=\"docs.rs docs\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e --\u003e\n\n\n**Warning ⚠️: A (key, nonce) pair SHOULD NEVER be used to encrypt two messages. You can use either the same key with unique random nonces, an unique key with random or fixed nonces, or the same key with a non-repeating counter in the first X bytes of the nonce. See the specification to learn how much data you can safely encrypt.**\n\n`Cargo.toml`\n```toml\n[dependencies]\nchacha20-blake3 = { git = \"https://github.com/skerkour/chacha20-blake3\", branch = \"main\" }\n```\n\n```rust\nuse chacha20_blake3::ChaCha20Blake3;\n\nfn main() {\n    // DO NOT USE A ALL-ZERO KEY / NONCE, THIS CODE IS FOR DEMONSTRATION ONLY\n    let key = [0u8; 32];\n    let nonce = [0u8; 24];\n    // or with an u64 counter to encrypt up to 2^64 messages with a single key:\n    // let mut nonce = [0u8; 24];\n    // nonce[..8].copy_from_slice(\u0026counter.to_le_bytes());\n\n    let message = b\"Hello World!\";\n\n    let cipher = ChaCha20Blake3::new(key);\n\n    let ciphertext: Vec\u003cu8\u003e = cipher.encrypt(\u0026nonce, message, \u0026[]);\n\n    let plaintext: Vec\u003cu8\u003e = cipher.decrypt(\u0026nonce, \u0026ciphertext, \u0026[]).unwrap();\n\n    assert_eq!(plaintext, message);\n}\n```\n\n## Features\n\n| Feature | Default? | Description |\n| --------| ---------| ----------- |\n| `std` | ✓ |  Enables use of the standard library such as runtime SIMD detection. Enabling `std` automatically enables `alloc`.  |\n| `alloc` | ✓ | Enables the `encrypt` / `decrypt` APIs that allocate memory. |\n| `zeroize` | ✓ | Enables [`zeroize`](https://crates.io/crates/zeroize) to erase sensitive secrets from memory. |\n\n\n## ChaCha12-BLAKE3\n\nThe old version, ChaCha12-BLAKE3 is available on the `chacha12-blake3` branch but won't receive any further update.\n\n## License\n\nMIT. See `LICENSE.txt`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskerkour%2Fchacha20-blake3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskerkour%2Fchacha20-blake3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskerkour%2Fchacha20-blake3/lists"}