Repository navigation
Stiff 0.6.0 (experimental)
Pre-releaseStiff 0.6.0 adds proven pure route matching and selection, pinned to Bend 2.0.35.
- Matching and selection agree with an independent specification for arbitrary finite route tables, methods, patterns and paths. Full equality preserves route metadata, exact captures and the first exact method/path hit.
- The proof connects selection to pure dispatch: no path hit yields 404; path hits with no exact method yield 405 with the exact deduplicated Allow list; a selected protected route with a false caller-supplied credential Bool yields 401 and unchanged state.
make routing-mistakescatches four ordinarily typechecked mistakes with both universal proofs and concrete false laws before a mutant binary is built: case-insensitive GET, empty captures, last-match selection and duplicate Allow methods. Normal Linux/macOS CI runs the demo.
Paths are raw slash-delimited strings. Leading, repeated and trailing slashes are significant; there is no normalization or percent-decoding. Methods are case-sensitive, HEAD requires an explicit route, and repeated Allow methods retain their last occurrence's position. Parameter names and values must be nonempty; captures preserve pattern order, including repeated names.
These proofs cover pure modeled decisions. Base split/equality semantics, the compiler, Bend-to-BendTT translation, runtime/native ABI and the separate effectful Router remain trusted. HTTP parsing, credentials, serialization (including Allow), native effects and persistence remain trusted/tested. Pure dispatch laws do not prove every socket response. ALL PROOFS CHECK reports compiler checking; this release does not repeat historical independent kernel checks or establish end-to-end verification, full memory safety or new capacity measurements.
The archives contain app, notes, stiff-run, deployment examples, licenses, dependency provenance and SHA-256 checksums. They dynamically require libcurl, json-c and SQLite; patched libevent 2.2.2-alpha is included statically. They are platform-specific native examples, not a production-readiness claim.
BendHub package: 0x36c893ade1f158581b4c8c34eb3b510e. Starter and both consumer source/build-tool pins name 747a75915ad1b68bc60118e635915c9d3314a17e; tagged library and native build-tool bytes match that anchor.
Release evidence records exact revisions and separate verification scopes.
Release source: 5c76db12d98dd696c4ec8a7877e8e245c539d035. Pinned CI passed all eight Linux/macOS platform/profile jobs, including generation, setup, proof checking, native build and mutation rejection of the starter in all four normal jobs. Source-anchor CI also passed all eight jobs.
Hosted publication and Linux archive workflow published BendHub and built/verified Linux x64 and arm64 assets. Both platforms matched all 23 empty-cache package files, checked the framework proof verdict, exercised authenticated HTTPS with independent and copied clients, passed six persistent application journeys, and rejected cached native-source tampering.
All three exact clean archives passed provenance/checksum checks, supervised application health, create/read/restart and six persistent notes journeys without build tools on PATH. Only the macOS archive build and its verification ran locally, using existing pinned dependencies; full suites and sanitizer checks ran on hosted CI.
All six published archive and checksum assets were downloaded from GitHub and matched the original build bytes exactly.