Cargo Features

[dependencies]
azul-layout = { version = "0.0.7", default-features = false, features = ["std", "strfmt", "widgets", "extra", "text_layout", "text_layout_hyphenation", "pdf", "font_loading", "font_loading_multithreaded", "font_parsing", "image_decoding", "gif", "jpeg", "png", "tiff", "bmp", "ico", "tga", "hdr", "webp", "pnm", "xml", "svg", "cpurender", "a11y", "icu", "icu_chrono", "fluent", "http", "zip_support", "json", "icons"] }
default = a11y, cpurender, extra, font_loading_multithreaded, icons, image_decoding, std, svg, text_layout, text_layout_hyphenation, widgets

Default: Full layout engine with text, fonts, SVG, images, accessibility Uses multithreaded font loading for faster startup on desktop

std default fluent? http? icons icu? json? strfmt? text_layout zip_support?

Standard library support

Enables std of azul-core

Affects file::file_read, file::file_read_string, file::file_write, file::file_write_string, file::file_append, file::file_copy, file::file_rename, file::file_delete, file::path_exists, file::path_is_file, file::path_is_dir, file::file_metadata, file::dir_create, file::dir_create_all, file::dir_delete, file::dir_delete_all, image::decode, image::encode, gesture::allocate_event_id, scroll_state::ScrollInputQueue

strfmt fluent? widgets = std

String formatting utilities (strfmt crate)

Enables strfmt

Affects azul-layout::fmt

widgets default = strfmt, text_layout

Widget support (button, text_input, checkbox, etc.)

Affects azul-layout::widgets

extra default

Extra APIs (native dialogs, file operations)

Enables dirs and tfd

dirs:

Platform-specific user directories (home, config, cache, etc.)

Affects azul-layout::desktop, azul-layout::extra

text_layout default pdf? text_layout_hyphenation widgets = font_loading, std

Basic text shaping (unicode support, allsorts font parsing)
Requires font_loading for font discovery (FcFontCache)
Does NOT include hyphenation (saves ~25 dependencies)

Enables allsorts, tinyvec, unicode-bidi, unicode-normalization, and unicode-segmentation

unicode-bidi:

text3 features

Affects azul-layout::managers, azul-layout::solver3, azul-layout::callbacks, azul-layout::default_actions, azul-layout::event_determination, azul-layout::font, azul-layout::hit_test, azul-layout::text3, azul-layout::thread, azul-layout::timer, azul-layout::scroll_timer, azul-layout::window, azul-layout::window_state, azul-layout::parse_font_fn, azul-layout::parsed_font_to_font_ref, azul-layout::font_ref_to_parsed_font, solver3::LayoutContext.font_manager, solver3::layout_document, paged_layout::layout_document_paged, paged_layout::layout_document_paged_with_config

text_layout_hyphenation default = text_layout

Automatic hyphenation (adds ~25 deps: bincode, fst, hyphenation_commons, pocket-resources)

Enables hyphenation

pdf = text_layout

PDF text operations (requires text_layout)

Affects window::LayoutWindow.fragmentation_context

font_loading font_loading_multithreaded font_parsing? text_layout

System font discovery (rust-fontconfig minimal, no parsing)

Enables mmapio, parsing and std of rust-fontconfig ^2.0.0

Affects font::loading, font_traits::TextLayoutCache

font_loading_multithreaded default = font_loading

Multithreading for font cache building (faster on desktop, not available on WASM)

Enables multithreading of rust-fontconfig ^2.0.0

font_parsing = font_loading

Font introspection (adds allsorts via rust-fontconfig/parsing)

Enables parsing of rust-fontconfig ^2.0.0

image_decoding default bmp? gif? hdr? ico? jpeg? png? pnm? tga? tiff? webp?

Image decoding support (image crate)

Enables image

Affects azul-layout::image

gif = image_decoding

Individual image format features (require image_decoding)

Enables gif of image

jpeg = image_decoding

Enables jpeg of image and zune-jpeg ^0.4

Explicit override to disable SIMD features that are broken on some Rust versions See: https://github.com/image-rs/image/issues/2705

Affects image::encode.encode_jpeg

png = image_decoding

Enables png of image

Affects image::encode.encode_png

tiff = image_decoding

Enables tiff of image

bmp = image_decoding

Enables bmp of image

ico = image_decoding

Enables ico of image

tga = image_decoding

Enables tga of image

hdr = image_decoding

Enables hdr of image

webp = image_decoding

Enables webp of image

pnm = image_decoding

Enables pnm of image

xml svg

XML parsing support (for SVG and font configs)

Enables roxmltree, xmlparser, and xmlwriter

Affects extra::styled_dom_from_file, extra::styled_dom_from_str, extra::styled_dom_from_parsed_xml, extra::styled_dom_from_file, extra::styled_dom_from_str, extra::styled_dom_from_parsed_xml, azul-layout::xml, xml::domxml_from_str, xml::parse_xml_string, xml::parse_xml, xml::translate_roxmltree_expandedname, xml::translate_roxmltree_error, xml::DomXmlExt, xml::domxml_from_file

svg default = xml

SVG rendering support (lyon, usvg can convert text to outlines)

Enables geo ^0.31.0, geo-booleanop, gl-context-loader, lyon, resvg ^0.45.0, tiny-skia ^0.11.4, and usvg ^0.45.0

Affects xml::svg, svg::tessellate_multi_polygon_fill, svg::tessellate_multi_shape_fill, svg::path_contains_point, svg::polygon_contains_point, svg::tessellate_multi_shape_stroke, svg::tessellate_multi_polygon_stroke, svg::tessellate_path_fill, svg::tessellate_path_stroke, svg::tessellate_circle_fill, svg::tessellate_circle_stroke, svg::tessellate_rect_fill, svg::tessellate_rect_stroke, svg::tessellate_styled_node, svg::tessellate_line_stroke, svg::tessellate_cubiccurve_stroke, svg::tessellate_quadraticcurve_stroke

cpurender default

CPU-based rendering (tiny-skia, requires allsorts for text)

Enables allsorts, gl-context-loader, and tiny-skia ^0.11.4

Affects azul-layout::cpurender

a11y default

Accessibility support (accesskit)

Enables accesskit ^0.21.1

Affects a11y::A11yManager, window::TextEditType

icu icu_chrono? = std

ICU4X internationalization support (number/date/list formatting, pluralization)

Enables icu, icu_provider_blob, and writeable

icu:

ICU4X dependencies for internationalization
compiled_data is enabled by default to include all locale data

Affects callbacks::CallbackInfoRefData.icu_localizer, azul-layout::icu, window::LayoutWindow.icu_localizer

icu_chrono = icu

Add chrono support for Date.now() style APIs (optional with ICU)

Enables chrono

Optional: chrono for getting current date/time

fluent = std, strfmt, zip_support

Fluent localization support (Project Fluent FTL files, language packs)

Enables fluent, fluent-syntax, intl-memoizer, and unic-langid

fluent:

Fluent localization (Project Fluent)

Affects azul-layout::fluent

http = std

HTTP client support for downloading resources

Enables ureq ^2.9

HTTP client for downloading language packs

and url

URL parsing

Affects http::http_get, http::http_get_with_config, http::download_bytes, http::download_bytes_with_config, http::is_url_reachable, azul-layout::url, azul-layout::http

zip_support fluent? icons = std

ZIP file manipulation (standalone, for C API)

Enables zip ^2.1

ZIP file support for language packs

Affects icon::register_icons_from_zip, azul-layout::zip, zip::zip_create, zip::zip_create_from_files, zip::zip_extract_all, zip::zip_list_contents

json = std

JSON parsing support

Enables serde_json

JSON parsing

Affects json::json_parse, json::json_parse_bytes, json::json_stringify, json::json_stringify_pretty, json::serialize_refany_to_json, json::deserialize_refany_from_json, json::refany_serialize_to_json, azul-layout::json

icons default = std, zip_support

Icon provider support (material icons, icon packs from fonts or ZIP files)

Enables material-icons

Material Icons font (embedded TTF, Apache 2.0 licensed)

Affects icon::register_material_icons, icon::register_embedded_material_icons