llama_cpp_flutter 0.3.0
llama_cpp_flutter: ^0.3.0 copied to clipboard
On-device LLM inference for Flutter: llama.cpp with Metal on iOS/macOS, wllama on web. Streaming sessions, chat formats, model downloads, and optional agents integration.
Changelog #
0.3.0 #
- New:
generateEvents()onLlamaSession— a typedStream<LlamaGenerationEvent>(LlamaTextEvent/LlamaCompletedEvent/LlamaWarningEvent) over the same generation contract asgenerate(). A successful run always ends with a completed event carrying the engine's stats, so finish reason and token accounting cannot be missed. Non-breaking: implemented as an extension over the existing string stream. - Fixed: the native session now reports
capabilities.canSetImageTokenBudgetasfalsefor sessions loaded without a multimodal projector (previously alwaystrue, and callingsetImageTokenBudgeton a text-only session could only fail natively).
0.2.0 #
Pre-1.0 API cleanup release. Pinned upstream: llama.cpp b10069
(xcframework, sha256-verified); wllama wasm vendored as a Flutter asset.
Breaking changes #
- The bridge session type is renamed
LlamaSession→LlamaBridgeSession(bridge.dart); the neutralLlamaSessionin the main entrypoint is unchanged. LlamaChatTurnnow carries a typed role (LlamaChatRole, includingtool) and ordered content parts (LlamaContentPart:LlamaTextPart/LlamaImagePart/LlamaAudioPart) instead of a role string with separatetext/images/audiofields. The old fields remain as read-only getters derived fromparts; construct turns withparts:orLlamaChatTurn.text(...). Interleaved text/media ordering is now preserved end to end (the web runtime sends parts in author order).- The main entrypoint exports far less. Concrete chat formats, templates,
and stream decoders moved to
package:llama_cpp_flutter/chat.dart; GGUF metadata reading and artifact cache naming topackage:llama_cpp_flutter/gguf.dart; the orchestration layer topackage:llama_cpp_flutter/orchestration.dart.resolveChatFormat,detectChatFormatNameForGguf,createLlamaChatClient,ModelSpec,ModelDownloader, and the runtime API stay in the main entrypoint. - Overriding the pinned xcframework tag
(
LLAMA_CPP_TAG_OVERRIDE) now requires the matchingLLAMA_XCFRAMEWORK_ZIP_SHA256_OVERRIDE, or an explicitLLAMA_CPP_ALLOW_UNVERIFIED=1opt-out (development only); previously verification was silently skipped.
Changed #
- SDK floor lowered from Dart
^3.12.0/ Flutter>=3.44.0to Dart^3.11.5/ Flutter>=3.41.7(the floor now comes from theagentsdependency, not this package). createLlamaRuntime()gainsartifactCacheDirectoryfor download-on-load, and throws a clearUnsupportedErroron IO platforms without a native backend (Android, Windows, Linux) instead of failing later with a missing-plugin error.LlamaSessiondocuments its concurrency and lifecycle contract (one generation at a time; overlappinggeneratesupersedes;canceland dispose-during-generation semantics).- Core data classes (
ModelSpec,SamplingDefaults,LlamaGenerationStats,LlamaSessionCapabilities,ImageTiling,AgentSnapshot) gain value equality andtoString;LlamaSessionCapabilitiesandModelSpecassert their invariants.
0.1.0 #
Initial release.
- Cross-platform
LlamaRuntime/LlamaSessionAPI over llama.cpp:- iOS / macOS via a vendored Metal-enabled
llama.xcframework(downloaded from official llama.cpp releases duringpod install) with a typed Pigeon bridge. All native calls run on a dedicated worker isolate so model loading and token streaming never block the UI. - Web via
@wllama/wllama, with the matchingwllama.wasmshipped as a Flutter asset.
- iOS / macOS via a vendored Metal-enabled
ChatClientimplementations for theagentsframework, backed by local GGUF models.- Chat format layer with auto-detection from GGUF metadata: ChatML, Gemma, LFM2, Llama 3, Mistral, and Qwen templates, including streaming tool-call decoding (Hermes-style and model-specific markers).
- GGUF utilities: metadata reader, split-model (
-00001-of-0000N) support, and a resumable Hugging Face model downloader. - Memory-aware multi-agent orchestration over a single loaded model: memory estimation and budget planning, runtime memory monitoring, session snapshot store, and artifact staging.
- MTP speculative decoding on iOS/macOS via the
LlamaExtShimstaging ABI, with a CI ABI-drift check. - Prompt inspector diagnostics for examining rendered prompts.