Skip to content

v0.7.0 - HTTPS, datatypes, clib4 userland

Latest

Choose a tag to compare

@derfsss derfsss released this 11 Jun 20:21
· 3 commits to main since this release

The post-1.0 improvement waves, validated on QEMU (-M amigaone) and real X5000 hardware.

Highlights (0.6.0 + 0.7.0)

Soundness & correctness

  • amstr!("text") compile-time OS strings; every wrapper validates the \0 terminator at the FFI boundary (a missing terminator used to be an out-of-bounds read from safe code)
  • Every ReAction gadget tag value corrected against the SDK 54.16 headers (the old constants were silently ignored by BOOPSI); gadget IDs now read from IAddress->GadgetID. GUI harness 5/5 on QEMU and X5000.

New capability

  • HTTPS: amigaos4::https over the clib4-built OpenSSL (tls feature) - TlsStream with SNI + opt-in CA verification, https::get() with redirects and chunked decoding
  • Menus (menuclass MenuBuilder), ASL file requester, listbrowser/chooser/slider gadgets, application.library registration
  • Async integration: awaitable timer delays and IDCMP window events - one executor selects over sockets, timers, and GUI input
  • Driver story: examples/ram-device is a complete exec .device in Rust (BeginIO/AbortIO, quick I/O); DmaBuffer pairs MEMF_SHARED with cache maintenance
  • datatypes: DtPicture RAII picture loading
  • clib4 userland pattern: sqlite3-demo and json-config show how to use the SDK clib4 static libs (sqlite, jansson, libpng, SDL2, ...) with plain extern FFI
  • Dogfood app: examples/aminet-browser - application.library + menus + listbrowser + ASL + HTTP in one program

Validation

  • ~370 tests; target harnesses pass 51/51 (main) + 5/5 (GUI) on QEMU and on a real AmigaOne X5000 (P5020, Kickstart 54.57)

Artifacts

rust-for-amigaos4-examples-v0.7.0.zip - 16 prebuilt native binaries + clib4.library 2.1 + INSTALL.txt. Application-mode examples need clib4 2.1 in LIBS: (see INSTALL.txt).

Full changelog: amigaos4/CHANGELOG.md.

🤖 Generated with Claude Code