Skip to content

feat: MVP release - core runtime, macros, and CLI#1

Merged
Cassianer merged 9 commits intomainfrom
kovar/mvp
Jan 16, 2026
Merged

feat: MVP release - core runtime, macros, and CLI#1
Cassianer merged 9 commits intomainfrom
kovar/mvp

Conversation

@Cassianer
Copy link
Contributor

This PR introduces the MVP (Minimum Viable Product) of Kovar, a Rust-first GUI framework that uses HTML as the UI definition and the system browser as the renderer.

Features

kovar (runtime)

  • WebSocket server for real-time state synchronization
  • Responsive viewport wrapper that scales to fit browser window
  • HTML content serving with runtime script injection

kovar-macros

  • import_html! macro for compile-time HTML parsing
  • Auto-generated UI struct with type-safe component bindings
  • KDisplay component with .set() method for reactive updates
  • ui.spawn() helper for async tasks

kovar-cli

  • kovar new <name> - scaffold new projects
  • kovar edit [file] - launch visual editor

Demo

use kovar::import_html;

import_html!("ui/index.html");

#[tokio::main]
async fn main() {
    let ui = UI::new();

    ui.spawn(|ui| async move {
        loop {
            ui.sensor_1.set("25.0°C");
            tokio::time::sleep(Duration::from_secs(1)).await;
        }
    });

    ui.run().await;
}

Limitations (for future releases)

  • Only <k-display> component supported (read-only display)
  • No interactive components (buttons, inputs) yet
  • No event handling yet

KercyDing and others added 9 commits January 6, 2026 04:12
Editor:
- Reorder Style Manager sectors (General → Dimension → Alignment → Typography → Decorations → Extra)
- Auto-select component when dragged onto canvas
- Improve resize handle styling (smaller, rounded)
- Add default ID to Section and Text components

Runtime:
- Fix exported HTML background color (white instead of dark)
- Unify dynamic component to k-display only (remove KOVAR-TEXT)

Demo:
- Use sysinfo crate for real-time CPU and memory monitoring
@Cassianer Cassianer merged commit 071ee1a into main Jan 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants