#forms #egui #elicitor #back-end #survey #wizard

elicitor-form-egui

egui form backend for elicitor (GUI fill-in form)

2 releases

Uses new Rust 2024

0.6.1 Jan 18, 2026
0.6.0 Jan 17, 2026

#1656 in GUI

MIT/Apache

82KB
1.5K SLoC

derive-egui-form

An egui form backend for derive-survey that renders surveys as GUI forms.

This backend uses the eframe and egui crates to provide a native desktop form interface for surveys. All fields are displayed at once and can be edited in any order.

Usage

use elicitor::Survey;
use elicitor_form_egui::EguiBackend;

#[derive(Survey, Debug)]
struct UserProfile {
    #[ask("What is your name?")]
    name: String,

    #[ask("How old are you?")]
    #[min(0)]
    #[max(150)]
    age: i64,
}

fn main() -> anyhow::Result<()> {
    let backend = EguiBackend::new()
        .with_title("User Profile")
        .with_window_size([400.0, 300.0]);

    let profile: UserProfile = UserProfile::builder().run(backend)?;
    println!("{:?}", profile);
    Ok(())
}

elicitor

Derive interactive surveys from Rust types.

This workspace contains the elicitor crates:

Crate Description
elicitor Main crate with #[derive(Survey)] macro
elicitor-types Core data structures and traits
elicitor-macro Procedural macro implementation

Backends:

Crate Description
elicitor-wizard-dialoguer CLI prompts via dialoguer
elicitor-wizard-requestty CLI prompts via requestty
elicitor-wizard-ratatui Terminal UI wizard
elicitor-form-ratatui Terminal UI form
elicitor-form-egui Native GUI form

Document generators:

Crate Description
elicitor-doc-html HTML form output
elicitor-doc-latex LaTeX document output

See the elicitor README for usage documentation.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Dependencies

~14–59MB
~843K SLoC