Repository navigation
Releases: Giulio2002/bend-collections
Releases · Giulio2002/bend-collections
Release list
v0.1.0
First release of bend-collections: containers, math and hashes for Bend 2, formally verified and benchmarked against C.
Install (Bend hub)
Published as 0x9ee2e9a299991dcc089fe22c7f3ceb5f. Import any module by its path:
import 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/containers/hash_table.bend as HashMap
import 0x9ee2e9a299991dcc089fe22c7f3ceb5f/src/crypto/sha/sha256.bend as SHA256Contents
- Containers: dynamic array, deque, FIFO queue, stack, simple and priority queue, binary heap, doubly linked list and list iterator, indexed red-black tree map, bitset, String-keyed hash map, LRU cache.
- Math: 64-bit words, hashing, powers of two.
- Hashes: SHA-256, Keccak-256, BLAKE2s, BLAKE2b, BLAKE3.
Verification
At this commit, all 29 proof packages check with Bend 2.0.25 (python3 proofs/prove.py, including proofs/PROOF.bend). Each container is proved to refine an independent specification. SHA-256 is proved equal to an executable FIPS 180-4 specification, and the other hashes are checked against their specifications and fuzzed against reference implementations.
Benchmarks
See BENCHMARK.md: Bend (native C backend, one thread) against C, same algorithms and inputs. Rows marked † were measured with the quicker sampling.