[package]
edition = "2024"
name = "oxivgl"
version = "0.1.2"
authors = ["emobotics-dev"]
build = "build.rs"
exclude = [
".devcontainer/",
".github/",
"CLAUDE.md",
"docs/",
"examples/doc/screenshots/",
"examples/common/",
"run_*.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Safe no_std Rust bindings for LVGL — embedded GUI on ESP32 and host SDL2"
homepage = "https://github.com/emobotics-dev/oxivgl"
documentation = "https://docs.rs/oxivgl"
readme = "README.md"
keywords = [
"lvgl",
"embedded-gui",
"esp32",
"no-std",
"ui",
]
categories = [
"embedded",
"no-std",
"gui",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/emobotics-dev/oxivgl"
[package.metadata.docs.rs]
features = [
"log-04",
"png",
]
targets = ["x86_64-unknown-linux-gnu"]
no-default-features = true
[features]
default = []
defmt = ["dep:defmt"]
esp-hal = ["dep:esp-hal"]
esp32 = ["esp-hal/esp32"]
log-04 = ["dep:log-04"]
png = ["dep:png"]
[lib]
name = "oxivgl"
path = "src/lib.rs"
[[example]]
name = "anim1"
path = "examples/anim1.rs"
[[example]]
name = "anim2"
path = "examples/anim2.rs"
[[example]]
name = "anim3"
path = "examples/anim3.rs"
[[example]]
name = "anim4"
path = "examples/anim4.rs"
[[example]]
name = "anim_timeline1"
path = "examples/anim_timeline1.rs"
[[example]]
name = "animimg_1"
path = "examples/animimg_1.rs"
[[example]]
name = "calendar_1"
path = "examples/calendar_1.rs"
[[example]]
name = "calendar_2"
path = "examples/calendar_2.rs"
[[example]]
name = "canvas_1"
path = "examples/canvas_1.rs"
[[example]]
name = "canvas_10"
path = "examples/canvas_10.rs"
[[example]]
name = "canvas_11"
path = "examples/canvas_11.rs"
[[example]]
name = "canvas_12"
path = "examples/canvas_12.rs"
[[example]]
name = "canvas_2"
path = "examples/canvas_2.rs"
[[example]]
name = "canvas_3"
path = "examples/canvas_3.rs"
[[example]]
name = "canvas_4"
path = "examples/canvas_4.rs"
[[example]]
name = "canvas_5"
path = "examples/canvas_5.rs"
[[example]]
name = "canvas_6"
path = "examples/canvas_6.rs"
[[example]]
name = "canvas_7"
path = "examples/canvas_7.rs"
[[example]]
name = "canvas_9"
path = "examples/canvas_9.rs"
[[example]]
name = "event_bubble"
path = "examples/event_bubble.rs"
[[example]]
name = "event_button"
path = "examples/event_button.rs"
[[example]]
name = "event_click"
path = "examples/event_click.rs"
[[example]]
name = "event_draw"
path = "examples/event_draw.rs"
[[example]]
name = "event_streak"
path = "examples/event_streak.rs"
[[example]]
name = "event_trickle"
path = "examples/event_trickle.rs"
[[example]]
name = "flex1"
path = "examples/flex1.rs"
[[example]]
name = "flex2"
path = "examples/flex2.rs"
[[example]]
name = "flex3"
path = "examples/flex3.rs"
[[example]]
name = "flex4"
path = "examples/flex4.rs"
[[example]]
name = "flex5"
path = "examples/flex5.rs"
[[example]]
name = "flex6"
path = "examples/flex6.rs"
[[example]]
name = "getting_started1"
path = "examples/getting_started1.rs"
[[example]]
name = "getting_started2"
path = "examples/getting_started2.rs"
[[example]]
name = "getting_started3"
path = "examples/getting_started3.rs"
[[example]]
name = "getting_started4"
path = "examples/getting_started4.rs"
[[example]]
name = "getting_started5"
path = "examples/getting_started5.rs"
[[example]]
name = "getting_started6"
path = "examples/getting_started6.rs"
[[example]]
name = "getting_started7"
path = "examples/getting_started7.rs"
[[example]]
name = "getting_started8"
path = "examples/getting_started8.rs"
[[example]]
name = "grad_1"
path = "examples/grad_1.rs"
[[example]]
name = "grad_2"
path = "examples/grad_2.rs"
[[example]]
name = "grad_3"
path = "examples/grad_3.rs"
[[example]]
name = "grad_4"
path = "examples/grad_4.rs"
[[example]]
name = "grid1"
path = "examples/grid1.rs"
[[example]]
name = "grid2"
path = "examples/grid2.rs"
[[example]]
name = "grid3"
path = "examples/grid3.rs"
[[example]]
name = "grid4"
path = "examples/grid4.rs"
[[example]]
name = "grid5"
path = "examples/grid5.rs"
[[example]]
name = "grid6"
path = "examples/grid6.rs"
[[example]]
name = "gridnav_1"
path = "examples/gridnav_1.rs"
[[example]]
name = "gridnav_2"
path = "examples/gridnav_2.rs"
[[example]]
name = "gridnav_3"
path = "examples/gridnav_3.rs"
[[example]]
name = "gridnav_4"
path = "examples/gridnav_4.rs"
[[example]]
name = "gridnav_5"
path = "examples/gridnav_5.rs"
[[example]]
name = "image1"
path = "examples/image1.rs"
[[example]]
name = "imagebutton_1"
path = "examples/imagebutton_1.rs"
[[example]]
name = "list_2"
path = "examples/list_2.rs"
[[example]]
name = "nav1"
path = "examples/nav1.rs"
[[example]]
name = "observer1"
path = "examples/observer1.rs"
[[example]]
name = "observer2"
path = "examples/observer2.rs"
[[example]]
name = "observer3"
path = "examples/observer3.rs"
[[example]]
name = "observer4"
path = "examples/observer4.rs"
[[example]]
name = "observer5"
path = "examples/observer5.rs"
[[example]]
name = "observer6"
path = "examples/observer6.rs"
[[example]]
name = "observer7"
path = "examples/observer7.rs"
[[example]]
name = "scroll1"
path = "examples/scroll1.rs"
[[example]]
name = "scroll2"
path = "examples/scroll2.rs"
[[example]]
name = "scroll3"
path = "examples/scroll3.rs"
[[example]]
name = "scroll4"
path = "examples/scroll4.rs"
[[example]]
name = "scroll5"
path = "examples/scroll5.rs"
[[example]]
name = "scroll6"
path = "examples/scroll6.rs"
[[example]]
name = "scroll7"
path = "examples/scroll7.rs"
[[example]]
name = "scroll8"
path = "examples/scroll8.rs"
[[example]]
name = "scroll9"
path = "examples/scroll9.rs"
[[example]]
name = "snapshot_1"
path = "examples/snapshot_1.rs"
[[example]]
name = "span_1"
path = "examples/span_1.rs"
[[example]]
name = "spinbox_1"
path = "examples/spinbox_1.rs"
[[example]]
name = "spinner_1"
path = "examples/spinner_1.rs"
[[example]]
name = "style1"
path = "examples/style1.rs"
[[example]]
name = "style10"
path = "examples/style10.rs"
[[example]]
name = "style11"
path = "examples/style11.rs"
[[example]]
name = "style12"
path = "examples/style12.rs"
[[example]]
name = "style13"
path = "examples/style13.rs"
[[example]]
name = "style14"
path = "examples/style14.rs"
[[example]]
name = "style15"
path = "examples/style15.rs"
[[example]]
name = "style16"
path = "examples/style16.rs"
[[example]]
name = "style17"
path = "examples/style17.rs"
[[example]]
name = "style18"
path = "examples/style18.rs"
[[example]]
name = "style2"
path = "examples/style2.rs"
[[example]]
name = "style20"
path = "examples/style20.rs"
[[example]]
name = "style21"
path = "examples/style21.rs"
[[example]]
name = "style3"
path = "examples/style3.rs"
[[example]]
name = "style4"
path = "examples/style4.rs"
[[example]]
name = "style5"
path = "examples/style5.rs"
[[example]]
name = "style6"
path = "examples/style6.rs"
[[example]]
name = "style7"
path = "examples/style7.rs"
[[example]]
name = "style8"
path = "examples/style8.rs"
[[example]]
name = "style9"
path = "examples/style9.rs"
[[example]]
name = "table_1"
path = "examples/table_1.rs"
[[example]]
name = "table_2"
path = "examples/table_2.rs"
[[example]]
name = "tabview_1"
path = "examples/tabview_1.rs"
[[example]]
name = "tabview_2"
path = "examples/tabview_2.rs"
[[example]]
name = "tileview_1"
path = "examples/tileview_1.rs"
[[example]]
name = "translation_1"
path = "examples/translation_1.rs"
[[example]]
name = "translation_2"
path = "examples/translation_2.rs"
[[example]]
name = "widget_arc1"
path = "examples/widget_arc1.rs"
[[example]]
name = "widget_arc2"
path = "examples/widget_arc2.rs"
[[example]]
name = "widget_arc3"
path = "examples/widget_arc3.rs"
[[example]]
name = "widget_arclabel1"
path = "examples/widget_arclabel1.rs"
[[example]]
name = "widget_bar1"
path = "examples/widget_bar1.rs"
[[example]]
name = "widget_bar2"
path = "examples/widget_bar2.rs"
[[example]]
name = "widget_bar3"
path = "examples/widget_bar3.rs"
[[example]]
name = "widget_bar4"
path = "examples/widget_bar4.rs"
[[example]]
name = "widget_bar5"
path = "examples/widget_bar5.rs"
[[example]]
name = "widget_bar6"
path = "examples/widget_bar6.rs"
[[example]]
name = "widget_bar7"
path = "examples/widget_bar7.rs"
[[example]]
name = "widget_button1"
path = "examples/widget_button1.rs"
[[example]]
name = "widget_button2"
path = "examples/widget_button2.rs"
[[example]]
name = "widget_button3"
path = "examples/widget_button3.rs"
[[example]]
name = "widget_buttonmatrix1"
path = "examples/widget_buttonmatrix1.rs"
[[example]]
name = "widget_buttonmatrix2"
path = "examples/widget_buttonmatrix2.rs"
[[example]]
name = "widget_buttonmatrix3"
path = "examples/widget_buttonmatrix3.rs"
[[example]]
name = "widget_chart1"
path = "examples/widget_chart1.rs"
[[example]]
name = "widget_chart2"
path = "examples/widget_chart2.rs"
[[example]]
name = "widget_chart3"
path = "examples/widget_chart3.rs"
[[example]]
name = "widget_chart4"
path = "examples/widget_chart4.rs"
[[example]]
name = "widget_chart6"
path = "examples/widget_chart6.rs"
[[example]]
name = "widget_chart7"
path = "examples/widget_chart7.rs"
[[example]]
name = "widget_chart8"
path = "examples/widget_chart8.rs"
[[example]]
name = "widget_checkbox1"
path = "examples/widget_checkbox1.rs"
[[example]]
name = "widget_checkbox2"
path = "examples/widget_checkbox2.rs"
[[example]]
name = "widget_dropdown1"
path = "examples/widget_dropdown1.rs"
[[example]]
name = "widget_dropdown2"
path = "examples/widget_dropdown2.rs"
[[example]]
name = "widget_dropdown3"
path = "examples/widget_dropdown3.rs"
[[example]]
name = "widget_image2"
path = "examples/widget_image2.rs"
[[example]]
name = "widget_image3"
path = "examples/widget_image3.rs"
[[example]]
name = "widget_image4"
path = "examples/widget_image4.rs"
[[example]]
name = "widget_image5"
path = "examples/widget_image5.rs"
[[example]]
name = "widget_keyboard1"
path = "examples/widget_keyboard1.rs"
[[example]]
name = "widget_keyboard2"
path = "examples/widget_keyboard2.rs"
[[example]]
name = "widget_keyboard3"
path = "examples/widget_keyboard3.rs"
[[example]]
name = "widget_label1"
path = "examples/widget_label1.rs"
[[example]]
name = "widget_label2"
path = "examples/widget_label2.rs"
[[example]]
name = "widget_label3"
path = "examples/widget_label3.rs"
[[example]]
name = "widget_label4"
path = "examples/widget_label4.rs"
[[example]]
name = "widget_label5"
path = "examples/widget_label5.rs"
[[example]]
name = "widget_label6"
path = "examples/widget_label6.rs"
[[example]]
name = "widget_label7"
path = "examples/widget_label7.rs"
[[example]]
name = "widget_led1"
path = "examples/widget_led1.rs"
[[example]]
name = "widget_line1"
path = "examples/widget_line1.rs"
[[example]]
name = "widget_list1"
path = "examples/widget_list1.rs"
[[example]]
name = "widget_list2"
path = "examples/widget_list2.rs"
[[example]]
name = "widget_menu1"
path = "examples/widget_menu1.rs"
[[example]]
name = "widget_menu2"
path = "examples/widget_menu2.rs"
[[example]]
name = "widget_menu3"
path = "examples/widget_menu3.rs"
[[example]]
name = "widget_menu4"
path = "examples/widget_menu4.rs"
[[example]]
name = "widget_menu5"
path = "examples/widget_menu5.rs"
[[example]]
name = "widget_msgbox1"
path = "examples/widget_msgbox1.rs"
[[example]]
name = "widget_msgbox2"
path = "examples/widget_msgbox2.rs"
[[example]]
name = "widget_msgbox3"
path = "examples/widget_msgbox3.rs"
[[example]]
name = "widget_obj1"
path = "examples/widget_obj1.rs"
[[example]]
name = "widget_obj2"
path = "examples/widget_obj2.rs"
[[example]]
name = "widget_obj3"
path = "examples/widget_obj3.rs"
[[example]]
name = "widget_roller1"
path = "examples/widget_roller1.rs"
[[example]]
name = "widget_roller2"
path = "examples/widget_roller2.rs"
[[example]]
name = "widget_roller3"
path = "examples/widget_roller3.rs"
[[example]]
name = "widget_scale1"
path = "examples/widget_scale1.rs"
[[example]]
name = "widget_scale10"
path = "examples/widget_scale10.rs"
[[example]]
name = "widget_scale11"
path = "examples/widget_scale11.rs"
[[example]]
name = "widget_scale12"
path = "examples/widget_scale12.rs"
[[example]]
name = "widget_scale2"
path = "examples/widget_scale2.rs"
[[example]]
name = "widget_scale3"
path = "examples/widget_scale3.rs"
[[example]]
name = "widget_scale4"
path = "examples/widget_scale4.rs"
[[example]]
name = "widget_scale5"
path = "examples/widget_scale5.rs"
[[example]]
name = "widget_scale6"
path = "examples/widget_scale6.rs"
[[example]]
name = "widget_scale7"
path = "examples/widget_scale7.rs"
[[example]]
name = "widget_scale8"
path = "examples/widget_scale8.rs"
[[example]]
name = "widget_scale9"
path = "examples/widget_scale9.rs"
[[example]]
name = "widget_slider1"
path = "examples/widget_slider1.rs"
[[example]]
name = "widget_slider2"
path = "examples/widget_slider2.rs"
[[example]]
name = "widget_slider3"
path = "examples/widget_slider3.rs"
[[example]]
name = "widget_slider4"
path = "examples/widget_slider4.rs"
[[example]]
name = "widget_switch1"
path = "examples/widget_switch1.rs"
[[example]]
name = "widget_switch2"
path = "examples/widget_switch2.rs"
[[example]]
name = "widget_textarea1"
path = "examples/widget_textarea1.rs"
[[example]]
name = "widget_textarea2"
path = "examples/widget_textarea2.rs"
[[example]]
name = "widget_textarea3"
path = "examples/widget_textarea3.rs"
[[example]]
name = "widget_textarea4"
path = "examples/widget_textarea4.rs"
[[example]]
name = "win_1"
path = "examples/win_1.rs"
[[test]]
name = "integration"
path = "tests/integration/main.rs"
[[test]]
name = "leak_check"
path = "tests/leak_check.rs"
[dependencies.cfg-if]
version = "1"
[dependencies.critical-section]
version = "1"
[dependencies.defmt]
version = "1.0.1"
optional = true
[dependencies.embassy-sync]
version = "0.7.2"
[dependencies.embassy-time]
version = "0.5.0"
[dependencies.esp-hal]
version = "1.0.0"
features = ["unstable"]
optional = true
[dependencies.heapless]
version = "0.9.1"
features = ["nightly"]
[dependencies.log-04]
version = "0.4"
optional = true
package = "log"
[dependencies.oxivgl_sys]
version = "0.1.2"
default-features = false
package = "oxivgl-sys"
[dependencies.png]
version = "0.17"
optional = true
[dependencies.thiserror-no-std]
version = "2.0.2"
[dev-dependencies.oxivgl_sys]
version = "0.1.2"
default-features = false
package = "oxivgl-sys"
[build-dependencies.oxivgl-build]
version = "0.1.0"
[target.'cfg(target_arch = "xtensa")'.dev-dependencies.embassy-executor]
version = "0.9.1"
features = ["nightly"]
[target.'cfg(target_arch = "xtensa")'.dev-dependencies.esp-bootloader-esp-idf]
version = "0.4.0"
features = ["esp32"]
[target.'cfg(target_arch = "xtensa")'.dev-dependencies.esp-hal]
version = "=1.0.0"
features = [
"esp32",
"unstable",
]
[target.'cfg(target_arch = "xtensa")'.dev-dependencies.esp-rtos]
version = "0.2.0"
features = [
"esp32",
"embassy",
]
[profile.dev]
opt-level = "s"
[profile.release]
opt-level = "s"
lto = "fat"
codegen-units = 1
debug = 2
debug-assertions = false
overflow-checks = true
incremental = false