Repository navigation
Releases: turlamai/keel
Release list
keel v0.3.1
Schema names are now treated as transport identities rather than ASCII source-language identifiers.
- Preserves idiomatic Racket names such as
signed-in?,save!, andstring->bytes, plus spaces and Unicode. - Enforces a 255-byte UTF-8 bound and rejects control, format, and surrogate code points.
- Keeps consumer code generators responsible for collision-checked local identifiers.
- Adds the missing schema API reference to the Scribble manual.
2,307 tests pass on Racket 9.0 and 9.3 across Linux, macOS, and Windows.
keel v0.3.0
Rename release: the package and collection are now keel (repository renamed from racket-app-core; GitHub redirects the old URL).
(require app-core)→(require keel)- Package name:
keel· collection:keel - The value contract, wire tags (0x00–0x09), golden corpus, lifecycle and schema vocabularies are unchanged — this is a pure rename, cut now while the package has zero consumers and catalog submission is still pending.
2302 tests green on Racket 9.0/9.3 across Linux, macOS, and Windows.
racket-app-core v0.2.0
Transport-neutral schema contracts for native and WebView Racket application stacks.
- Adds validated scalar, List, String-key Map, Optional, and named-reference type descriptors.
- Adds canonical records, enums, commands, events, and observable states.
- Validates names, duplicates, error codes, Unit placement, and cross-definition references.
- Encodes the complete introspection shape deterministically through the App Core v1 value codec.
- Keeps RVT1, GLZ1, native rendering, HTTP, embedding, and distribution policy outside the package boundary.
Compatibility is enforced by 2,301 tests and required CI on Racket 9.0/9.3 across Linux, macOS, and Windows.
racket-app-core v0.1.0
First public contract baseline for reusable native Racket applications.
- Defines the bounded, deterministic app value model and canonical binary codec.
- Preserves Rivet's existing scalar/list wire tags byte-for-byte and adds Float64, Map, and structured Error values.
- Enforces Int64, finite-float, UTF-8, 64 MiB, depth, and node-count limits at construction and decode boundaries.
- Includes a golden compatibility corpus, malformed-input rejection tests, Scribble reference documentation, and CI on Racket 9.0/9.3 across Linux, macOS, and Windows.
This release intentionally excludes transports, UI abstractions, embedding, and update policy; those remain consumer-owned boundaries.