Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

API Documentation

Kael has two complementary documentation surfaces:

  • This guide explains architecture, workflows, platform choices, and complete application concerns.
  • docs.rs renders the public Rust API for every Kael crate release, including searchable modules, types, traits, methods, and source links.

Start with the guide when deciding how a feature should fit into an application. Use rustdoc while implementing it.

Primary API references

NeedAPI reference
Runtime, entities, elements, windows, input, text, layout, renderingkael
Ready-made controls and product UIkael_ui
Procedural macroskael_macros
Storage and migrationskael_storage
HTTP and connected application patternskael_http_client and kael_net
Diagnostics and crash datakael_diagnostics
Documents, Office/PDF bytes, and sharingkael_document, kael_office, kael_pdf, and kael_share
Audio and mediakael_audio, kael_media, and kael_media_engines
Application engineskael_engines

Core module map

The kael crate re-exports its most common types at the crate root. These modules provide focused entry points for larger systems:

ModulePurpose
preludeTraits and types most views import
animation, interpolateTimelines, easing, keyframes, and value interpolation
app_runtime, runtime, worker_apiApplication lifecycle and background execution
virtual_dataVirtualized lists, tables, and tree data
text_engineEditing, selection, composition, and document text behavior
platform_capsRuntime capability truth for platform-dependent workflows
securityPermissions, policies, validation, and safe handoffs
process_model, ipc_transport, supervisorMulti-process applications and worker supervision
plugin, extension_host, extension_rpcIn-process and external extension systems
headless_render, golden, benchmarkRendering tests and performance evidence
scene_graph, graphics_capabilities, gpuCreative surfaces and GPU control
dev_toolsInspector, metrics, and development-time tooling

The Core Concepts, Platform APIs, and Testing chapters explain how these pieces cooperate.

Feature flags

The core crate keeps costly or specialized integrations optional:

FeatureAdds
auto-updateSigned update feeds, checked download queues, and platform installers
lottieNative Lottie and dotLottie decoding and playback
webviewExplicit hosted web surfaces
mediaNative media playback integration
storageStorage primitives through kael_storage
iconsCompact embedded icon catalog with application-asset overrides
diagnosticsMetrics, breadcrumbs, and crash-report integration
documentDocument lifecycle helpers
audioAudio integration
pdfPDF services
officePortable DOCX/XLSX/PPTX OPC parsing, extraction, and deterministic export
notifications-fullNotification services
sharePlatform sharing workflows
screen-captureScreen-capture backend support
agent-toolsStructured capability-planning metadata
runtime_shadersRuntime shader compilation for development

kael_ui separately gates Markdown, native HTML rendering, audio, media, and additional editor grammars. Feature-gated APIs appear in the relevant crate documentation when that documentation profile enables the feature.

Build API docs locally

Build the two primary references without documenting dependencies:

RUSTDOCFLAGS="-D warnings" \
  cargo doc -p kael -p kael_ui --all-features --no-deps

Open target/doc/kael/index.html or run cargo doc -p kael --open for a faster default-feature build. The production-readiness workflow also documents every public library crate with all features enabled, so broken intra-doc links and other rustdoc warnings anywhere in that crate set block a release candidate.

Documentation guarantees

  • kael and kael_ui provide crate-level landing pages with dependency and usage guidance.
  • docs.rs profiles are explicit so documentation builds do not depend on an accidental feature set or unsupported cross-compilation target.
  • Public API links are checked with rustdoc warnings treated as errors.
  • The mdBook guide is built independently, so conceptual documentation cannot hide API-documentation failures.
  • Platform-specific support is described through CapabilityReport; the existence of a type alone is never presented as proof that every backend implements it.