back to home

marc2332 / freya

Cross-platform and non-web GUI library for 🦀 Rust powered by 🎨 Skia.

2,605 stars
104 forks
29 issues
RustCSSAstro

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing marc2332/freya in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/marc2332/freya)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Freya 🦀 Website | Stable Documentation | Discord | Contact **Freya** is a **cross-platform, native, declarative** GUI library for Rust 🦀. > :warning: I recently rewrote a huge percentage of Freya in https://github.com/marc2332/freya/pull/1351, so the branch differs a lot from the latest stable release. Components & State Freya’s component model lets you create reusable UI elements that automatically re-render when the state they depend on changes. Components can hold their own internal state or subscribe to shared state, and they produce UI as their output. Any type that implements the trait can be a component, while the root ( ) component can simply be a function. Built-in examples include components like and . Out of the box components Freya comes with a set of components out of the box, from simple like , , to more complex like , , , etc. You can check all the examples that start with in the examples folder. Example of : Smooth Animations Create transitions for colors, sizes, positions, and other visual properties. The animation API gives you full control over timing, easing functions, and animation sequences. Code Portal example Component Portal Rich Text Editing Freya provides text editing capabilities that go beyond simple input fields. You can create rich text editors with cursor management, text selection, keyboard shortcuts, custom formatting, virtulization and more. Code Code Editor Create and control text Code Editors. It is state agnostic so as long as it can be turned into a it will work. Uses Rope for text editing and tree-sitter for syntax highlighting. Enable with the feature. Code Routing & Navigation Define routes, manage navigation state, and transition between different views. Enable with the feature. Code Global State Management Freya's state management system provides efficient global state management through a channels system. Components subscribe to specific "channels" and only receive updates when data is mutated and notified through their channel. Enable with the feature. Code Icon Library Easily integrate icons into your applications, only supports Lucide at the moment. Code Headless Testing Using you can test your Freya components in a no-window (headless) environment. You can decide to render the app at any moment to a file though. is actually used by Freya itself to test all the out of the box components and other APIs. Code Advanced Plotting & Charts Using the Plotters library, you can create charts, graphs, and data visualizations directly within your application. Enable with the feature. Code Plots Internationalization (i18n) Freya supports internationalization with built-in support for the Fluent localization system. Easily manage translations, pluralization, and locale-specific formatting. Enable with the feature. Code Material Design Components Freya provides Material Design-inspired style modifiers. Enable with the feature. Code WebView Integration Integrate web content into your native applications with Freya's WebView support. Embed web applications, or simply display web-based content alongside your native UI components. Enable with the feature. Code Terminal Emulation Freya includes terminal emulation capabilities with full PTY (pseudo-terminal) support. Create integrated terminal applications, SSH clients, or development tools. Enable with the feature. Code `rust use freya::prelude::*; use freya::terminal::*; fn app() -> impl IntoElement { let mut handle = use_state(|| { let mut cmd = CommandBuilder::new("bash"); cmd.env("TERM", "xterm-256color"); cmd.env("COLORTERM", "truecolor"); TerminalHandle::new(TerminalId::new(), cmd, None).ok() }); rect() .expanded() .center() .background((30, 30, 30)) .color((245, 245, 245)) .padding(6.) .child(if let Some(handle) = handle.read().clone() { Terminal::new(handle.clone()) .a11y_id(focus.a11y_id()) .on_key_down(move |e: Event | { _...truncated for preview_