Skip to content

v0.1.20 — Streaming Handlers, Tauri 2 Permissions, AppHandle Injection

Choose a tag to compare

@decebal decebal released this 18 Mar 14:20
· 21 commits to main since this release
7455ed1

What's New

Streaming Handler Support (#52)

Handlers can send incremental updates during execution — LLM token streaming, workflow progress, agent loops.

  • StreamSender / StreamReceiver with bounded backpressure and auto-cancel CancellationToken
  • register_streaming* (callback) and register_stream* (impl Stream) patterns
  • Tauri IPC bridge: allframe_stream / allframe_stream_cancel commands
  • TypeScript codegen: StreamObserver, StreamSubscription, toObservable() RxJS adapter
  • #[tauri_compat(streaming)] macro for migration

Tauri 2 Plugin Permissions (#53)

  • Added build.rs with tauri_plugin::Builder for auto-generated permission TOMLs
  • permissions/default.toml grants all 4 IPC commands out of the box
  • Consuming apps add "allframe:default" to their capabilities

AppHandle Injection (#51)

  • Router.with_state() can now be called multiple times with different types (multi-state HashMap<TypeId, Arc<dyn Any>>)
  • router.inject_state(state) for late injection (e.g., Tauri's AppHandle during plugin setup)
  • Handlers resolve state lazily at call time — register before state is available
  • allframe_tauri::init() auto-injects AppHandle<R> during setup

MSRV Bump (#54)

  • Minimum Supported Rust Version raised from 1.86 to 1.89 (required by async-graphql 7.2.1, darling 0.23, time 0.3.47)

Install / Upgrade

[dependencies]
allframe = "0.1.20"
allframe-tauri = "0.1.20"  # for Tauri desktop apps

Full Changelog

See CHANGELOG.md for details.