Skip to content

Releases: turlamai/keel

keel v0.3.1

Choose a tag to compare

@turlamai turlamai released this 12 Oct 00:37
b1ca156

Schema names are now treated as transport identities rather than ASCII source-language identifiers.

  • Preserves idiomatic Racket names such as signed-in?, save!, and string->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

Choose a tag to compare

@turlamai turlamai released this 11 Oct 12:40

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

Choose a tag to compare

@turlamai turlamai released this 11 Oct 09:59
1101d11

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

Choose a tag to compare

@turlamai turlamai released this 11 Oct 09:09

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.